- From: Alessandro Triglia <sandro@mclink.it>
- Date: Wed, 27 Oct 2004 15:35:00 -0400
- To: "'Paul Spencer'" <paul.spencer@boynings.co.uk>, <xmlschema-dev@w3.org>
> -----Original Message----- > From: xmlschema-dev-request@w3.org > [mailto:xmlschema-dev-request@w3.org] On Behalf Of Paul Spencer > Sent: Wednesday, October 27, 2004 05:10 > To: xmlschema-dev@w3.org > Subject: Including Chameleon Schemas > > > > XML Schema part 1 says that: > > The ·XML Schema· corresponding to <schema> contains not only > the components > corresponding to its definition and declaration [children], > but also all the > components of all the ·XML Schemas· corresponding to any > <include>d schema > documents. Such included schema documents must either (a) > have the same > targetNamespace as the <include>ing schema document, or (b) no > targetNamespace at all, in which case the <include>d schema > document is > converted to the <include>ing schema document's targetNamespace. > > My question relates to the meaning of "converted" in the last > line. Does > this mean just that the definitions and declarations in the <include>d > schema document belong in the targetNamespace of the > <include>ing schema > document The answer is in clause 3.2 under "Schema Representation Constraint: Inclusion Constraints and Semantics": ----------------------- 3.2 [...] the schema corresponding to the <include>d item's parent <schema> must include not only definitions or declarations corresponding to the appropriate members of its own [children], but also components identical to all the ·schema components· of I, except that anywhere the ·absent· target namespace name would have appeared, the ·actual value· of the targetNamespace [attribute] of SII’ is used. In particular, it replaces ·absent· in the following places: 3.2.1 The {target namespace} of named schema components, both at the top level and (in the case of nested type definitions and nested attribute and element declarations whose code was qualified) nested within definitions; 3.2.2 The {namespace constraint} of a wildcard, whether negated or not; ----------------------- > , or that references to these definitions and > declarations in the > <include>d schema document also change to reference the new > namespace? The references you mention are a characteristic of the XML representation of the Schema. In the language of "schema components" used all over the Rec, there are no "references" - schema components have properties, and a property of a schema component can be a schema component. See, for example: -------------------- 3.8.1 The Model Group Schema Component The model group schema component has the following properties: Schema Component: Model Group {compositor} One of all, choice or sequence. {particles} A list of particles {annotation} Optional. An annotation. -------------------- Here, the "particles" property is a list of particles, which are schema components. The text does not say that the model group schema component contains references to particles. Alessandro Triglia OSS Nokalva > In > other words, the <include>d schema document behaves as though > there were a > targetNamespace declaration *and a defaultNamespace > declaration with the > same URI*. I suspect just the former, in which case the > <include>d schema > document cannot reference it's own definitions and declarations. > > I have noticed that the MS .NET parser seems to interpret this by the > stricter definition, but that others do not. I have been > arguing on and off > with others about this for years, but have never had a > definitive answer and > cannot find anything in the archives. > > Regards > > Paul Spencer > > > >
Received on Wednesday, 27 October 2004 19:38:26 UTC