[Home] [By Thread] [By Date] [Recent Entries]

  • From: Anne Thomas Manes <atmanes@g...>
  • To: REV Tamas <tamas.rev@g...>
  • 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@g...> 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]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member