- From: Niko Matsakis <niko@alum.mit.edu>
- Date: Thu, 30 Jan 2003 13:18:52 -0500 (EST)
- To: Dare Obasanjo <dareo@microsoft.com>
- cc: xmlschema-dev@w3.org
I think you are missing my point. I realize that the names of
element declarations, attribute declarations, and types are NCNames and
receive their URIs from the targetNamespace. However, when a type is
later referenced, as in
<xs:element name="surname" type="xs:string"/>
clearly the 'xs:string' is interpreted relative to some namespace
bindings, no?
So, as I said in my original e-mail, I want to know what the
set of namespace bindings that should be used to make that interpretation
are.
I read your article and it did not seem to address my question; all
examples of chameleon schemas that I have seen consist only of
type declarations, but what if a component IN the chameleon schema
tries to reference one of the types declared in itself?
Here is my example again:
flight-plan.xsd:
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:complexType name="flight-plan-type"/>
<xs:element name="flight-plan" type="flight-plan-type" abstract="true"/>
</xs:schema>
Note that the abstract element 'flight-plan' references the type
'flight-plan-type' which is declared above it.
Now, in my including 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-type">
<xs:attribute name="number" type="xsd:double"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
byincluding flight-plan.xsd, we change the name of 'flight-plan-type' to
'{my-namespace}flight-plan-type', but now the reference to 'flight-plan-type'
in the element 'flight-plan' in flight-plan.xsd is refering to a non-existent
type. So is the intention that the references in the included file are
resolved before it is included? (i.e., it is determined which type
'flight-plan-type' refers to before the file is included).
Do you see my question?
niko
> Namespace declarations have nothing to do with the qualified names of
> elements declarations, attributes declarations or types. These are all
> dependent on the target namespace of the schema they are defined in or
> the including schema if they are defined in a schema with no target
> namespace.
>
> Also you should understand how chamaleon schemas work. The article below
> goes into some detail on understanding how namespaces work in W3C XML
> Schema
>
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml
> /html/xml08192002.asp
>
>
Received on Thursday, 30 January 2003 13:11:52 UTC