[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] targetNamespace vs default namespace
- From: "Pete Cordell" <petexmldev@codalogic.com>
- To: "REV Tamas" <tamas.rev@gmail.com>,<xml-dev@lists.xml.org>
- Date: Mon, 6 Jul 2009 17:29:32 +0100
Hi Tama,
Some of your comments are incorrect, or perhaps imprecise. For example:
> According to the XML schema specification, every element/attribute without
> namespace prefix belongs to the default namespace.
This is really specified in the XML namespaces specification. So the
sentence should read something like:
According to the XML {schema}->{namespace} specification, every element
{/attribute}->{} without namespace prefix belongs to the default namespace
{}->{if such a namespace has been defined, otherwise no they belong to no
namespace}.
Note that attributes have slightly different rules. No namespace prefix
ALWAYS means no namespace.
> On the other hand, unqualified elements defined in an xml schema belong to
> {the schemas targetNamespace}->{no namespace}. {}->{Qualified elements
> defined in an xml schema belong to the schemas targetNamespace.}
(I hope you understand my change markup notation. As change marks are a bit
difficult to do in text only e-mails I've done {ABC}->{DEF} to indicate that
the text ABC should be changed to DEF. {}->{DEF} equates to add text DEF,
{ABC}->{} equates to delete ABC.)
The correct behavior here depends on the value of the elementFormDefault
attribute in the xs:schema element. If it's absent, then by default
elements are unqualified. That means that SubElementWithoutPrefix belongs
to no namespace.
Which means that, as global elements are always qualified irrespective of
the value of elementFormDefault, your XML instance (pretty much) HAS to
define a non-default xml namespace prefix for use with the top level element
name, and then elements like SubElementWithoutPrefix can be unprefixed and
belong to no namespace. e.g.
<ns:top xmlns:ns='AnotherProprietaryNamespace'>
<SubElementWithoutPrefix>...</SubElementWithoutPrefix>
</ns:top>
HTH,
Pete Cordell
Codalogic Ltd
Interface XML to C++ the easy way using XML C++
data binding to convert XSD schemas to C++ classes.
Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com
for more info
----- Original Message -----
From: "REV Tamas" <tamas.rev@gmail.com>
To: <xml-dev@lists.xml.org>
Sent: Monday, July 06, 2009 4:35 PM
Subject: [xml-dev] targetNamespace vs default namespace
> 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]