- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 30 Jan 2003 18:18:31 +0000
- To: Niko Matsakis <niko@alum.mit.edu>
- Cc: xmlschema-dev@w3.org
Two basic facts are relevant: 1) The schema composition process always combines _components_, not documents. It follows that all conversion of QNames to namespace,local-name pairs on the basis of namespace declarations during initial mapping from XML to components takes place uniformly and regardless of where the components "are headed". 2) Chameleon-include, that is, the inclusion of components w/o target namespaces into a context with a target namespace, calls for the changing of component names from names w/o namespaces to names with namespaces (see Schema Representation Constraint: Inclusion Constraints and Semantics [1] in section 4.2.1 of part 1 of the W3C XML Schema REC. So, to answer your specific question, given > flight-plan.xsd: > <xs:schema > xmlns:xs="http://www.w3.org/2001/XMLSchema" > elementFormDefault="qualified" > attributeFormDefault="unqualified"> > > <xs:complexType name="flight-plan"/> > <xs:element name="flight-plan" type="flight-plan" abstract="true"/> > > </xs:schema> > > airplane.xsd: > <xs:schema > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns="my-namespace" > targetNamespace="my-namespace" > elementFormDefault="qualified" > attributeFormDefault="unqualified"> > > <xs:include schemaLocation="flight-plan.xsd"/> > > <xs:complexType name="flight"> > <xs:complexContent> > <xs:extension base="flight-plan"> > <xs:attribute name="number" type="xsd:double"/> > </xs:extension> > </xs:complexContent> > </xs:complexType> > > </xs:schema> > > Now here is my question. <snip/> > However, it is not clear to me what type the abstract element > "flight-plan" in the included file is suppoesd to be extending. First of all, there is no extension involved wrt the abstract element flight-plan. Presuming that is just a typo, I understand your question to be "What is the type definition of the {my-namespace,flight-plan} element?". The answer is {my-namespace,flight-plan}. This follows from (1) and (2) above, as follows: A component is built for the element {<None>,flight-plan} whose {type definition} is the complex type definition component whose name is {<None>,flight-plan} When those components are chameleon included, their names are changed per clause 3.2 of Inclusion Constraints and Semantics [1], to {my-namespace,flight-plan}. Hope this helps. ht [1] http://www.w3.org/TR/xmlschema-1/#src-include -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh Half-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/ [mail really from me _always_ has this .sig -- mail without it is forged spam]
Received on Thursday, 30 January 2003 13:50:35 UTC