RE: [xml-dev] targetNamespace vs default namespace

From
Michael Kay <>
To
'REV Tamas' <>,
Date
2009-07-06T16:05:20Z
ID
<DF0135FA8B9F4D05BB94B3DD475ADDF3@Sealion>
Thread
RE: [xml-dev] targetNamespace vs default namespace
A customer gave us an xml schema having different default ns and
targetNamspace, like that:
	<xsd:schema xmlns="ProprietaryNamespace"
targetNamespace="AnotherProprietaryNamespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	...
	    <xsd:complexType name="complexTypeOne">
	        <xsd:sequence>
	            ...
	            <xsd:element name="SubElementWithoutPrefix"
type="ElementTypeWithoutPrefix" /> <!-- a line with a problem -->
	        </xsd:sequence>
	    </xsd:complexType>
	    ...
	</xsd:schema>
	
	Now we have problem validating values of SubElementWithoutPrefix on
different java plattforms.
	
	According to the XML schema specification, every element/attribute
without namespace prefix belongs to the default namespace.

MHK> No, that's not the case. Generally, the "name" attribute contains a
local name, which is combined with the targetNamespace of the schema
document. Attributes that refer to another schema component, such as "type",
are QNames in which no prefix means "default namespace".


	On the other hand, unqualified elements defined in an xml schema
belong to the schemas targetNamespace.

MHK> Only if form="qualified" or elementFormDefault="qualified" (which is
present in most schema documents but not, apparently, in this one). Without
this, a locally-declared element, as here, is in no namespace, it is not in
the targetNamespace.

 So, there is this contradicition
	to be resolved.
	
	When SUNs Java 6 implementation resolves it, SubElementWithoutPrefix
belongs to the default namespace. On the other hand,
	when IBMs java 5 implementation resolves it, SubElementWithoutPrefix
belongs to the targetNamespace.
	
	How is it defined in XML schema specs?

MHK> Neither of the above. SubElementWithoutPrefix should be in no
namespace.

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay