[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] targetNamespace vs default namespace
- From: Anne Thomas Manes <atmanes@gmail.com>
- To: REV Tamas <tamas.rev@gmail.com>
- Date: Mon, 6 Jul 2009 19:03:44 -0400
Michael and Pete have already supplied answers to your question, but I
thought it might help to explicitly clarify one additional point --
which is to differentiate the default behavior between declaration and
reference. In this example:
<xsd:complexType name="complexTypeOne">
<xsd:sequence>
...
<xsd:element name="SubElementWithoutPrefix"
type="ElementTypeWithoutPrefix" /> <!-- a line with
a problem -->
</xsd:sequence>
</xsd:complexType>
"SubElementWithoutPrefix" is a local element *declaration*. Because
the <schema> declaration specifies elementFormDefault="qualified",
this element is in the targetNamespace. (If you didn't have
elementFormDefault="qualified", it would be in no namespace.)
"ElementTypeWithoutPrefix" is a type *reference*. Because no prefix is
explicitly specified, the type is from the default namespace.
Defining elements in a different namespace from their types is a
fairly common practice.
The Sun Java 6 validation is in error. The IBM Java 5 validation is correct.
Anne
On Mon, Jul 6, 2009 at 11:35 AM, REV Tamas<tamas.rev@gmail.com> wrote:
> Hello,
>
> 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.
> On the other hand, unqualified elements defined in an xml schema belong to
> the schemas 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?
>
> Best Regards,
> Tamas
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]