- From: Niko Matsakis <niko@alum.mit.edu>
- Date: Thu, 30 Jan 2003 12:22:12 -0500 (EST)
- To: xmlschema-dev@w3.org
I have a question about qname interpretation in included files. In short, my question is: What namespace bindings are in effect when we interpret the qnames in an attribute, such as the type attribute of xs:element. It doesn't seem to be the same as the bindings that are on the node, for the reasons I will explain below. Suppose I have a generic schema with no target namespace that I am attempting to reuse in a number of contexts. Suppose it declares a complex type 'flight-plan', and an abstract element of that type with the same name. (I am just making up these type names, so don't try to read any meaning in them) 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> Now I try to use that schema from this other 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. It is clear that the complexType flight-plan will be instantiated as {my-namespace}flight-plan due to the targetNamespace. Furthermore, I assume that the type which "flight" is extending is {my-namespace}flight-plan due to the xmlns="". However, it is not clear to me what type the abstract element "flight-plan" in the included file is suppoesd to be extending. The intention would seem to be {my-namespace}flight-plan, however, it seems like the type attribute on the 'flight-plan' element has no default namespace binding on it, so it would in fact be interpreted as {}flight-plan. So my question again is: what namespace bindings apply on the interpretation of qname attributes? It can't be the bindings on the node that the attribute is on, it seems, because that would lead to {}flight-plan. But it isn't targetNamespace, I don't think, as the schemas I have seen use both xmlns="my-namespace" and targetNamespace="my-namespace" as quite independent entities. Thank you! niko
Received on Thursday, 30 January 2003 12:16:58 UTC