By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,313 Members | 1,113 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,313 IT Pros & Developers. It's quick & easy.

2 namespaces in 1 schema

P: n/a
Hi,
Can I have 2 namespaces in the same XML schema?
In the schema, I wish to declare elements such that some of them
belong to one namespace and others belong to a second namespace. Is
this possible? Note that both the namespaces should be in the same
schema and same xsd file. Could somebody provide a small snippet on
how to do this?

Thanks for your time.
Jul 20 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a


Zombie wrote:

Can I have 2 namespaces in the same XML schema?


You need at least one schema to define elements for each namespace but
of course a schema for one namespace can import a schema for another
namespace and then reference elements from the other namespace.


--

Martin Honnen
http://JavaScript.FAQTs.com/
Jul 20 '05 #2

P: n/a
Martin Honnen <ma*******@yahoo.de> wrote in message news:<41**********************@newsread2.arcor-online.net>...
Zombie wrote:

Can I have 2 namespaces in the same XML schema?


You need at least one schema to define elements for each namespace but
of course a schema for one namespace can import a schema for another
namespace and then reference elements from the other namespace.


Do you mean to say that 1 schema file can contain only 1 namespace?
Actually, 'import' is exactly what I want to avoid. That is why in the
OP, I explicitly mentioned that I want 1 schema in 1 xsd file
containing 2 namespaces.
Any way to do that?

Thanks much.
Jul 20 '05 #3

P: n/a
Zombie wrote:
Martin Honnen <ma*******@yahoo.de> wrote in message news:<41**********************@newsread2.arcor-online.net>...
Zombie wrote:
Can I have 2 namespaces in the same XML schema?


You need at least one schema to define elements for each namespace but
of course a schema for one namespace can import a schema for another
namespace and then reference elements from the other namespace.

Do you mean to say that 1 schema file can contain only 1 namespace?
Actually, 'import' is exactly what I want to avoid. That is why in the
OP, I explicitly mentioned that I want 1 schema in 1 xsd file
containing 2 namespaces.
Any way to do that?


Does this help ?

(This is an example given to me by Zafar Abbas at the newsgroup
microsoft.public.xml. Google for "Schema - Definition for checking part of
schema?")

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="a">
<xs:complexType>
<xs:sequence>
<xs:group ref = "allowAny"/>
<xs:element name="aa" />
<xs:group ref = "allowAny"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:group name="allowAny">
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" />
</xs:sequence>
</xs:group>

</xs:schema>

The following xml will be valid according to it:

<a xmlns:ns="ns">
<aa>
</aa>

<ns:bb></ns:bb>
<ns:cc></ns:cc>

</a>

Regards

--

Abhinav
Jul 20 '05 #4

P: n/a


Zombie wrote:
Martin Honnen <ma*******@yahoo.de> wrote in message news:<41**********************@newsread2.arcor-online.net>...
Zombie wrote:
Can I have 2 namespaces in the same XML schema?
You need at least one schema to define elements for each namespace but
of course a schema for one namespace can import a schema for another
namespace and then reference elements from the other namespace.

Do you mean to say that 1 schema file can contain only 1 namespace?


It depends on what you mean by "contain". I clearly said that you need
one schema to define the elements for one namespace but that you need to
import the definitions of the schema for a second namespace.
Actually, 'import' is exactly what I want to avoid. That is why in the
OP, I explicitly mentioned that I want 1 schema in 1 xsd file
containing 2 namespaces.
Any way to do that?


No, if you want to validate all elements and you have elements in
differerent namespaces then you need to have one schema for every
namespace you want to define elements in.

The only thing you can do is skip validation for elements in one
namespace with
<xs:any>

--

Martin Honnen
http://JavaScript.FAQTs.com/
Jul 20 '05 #5

P: n/a
Abhinav <ma************@yahoo.dot.com> wrote in message news:<P3*************@news.oracle.com>...
Zombie wrote:
Martin Honnen <ma*******@yahoo.de> wrote in message news:<41**********************@newsread2.arcor-online.net>...
Zombie wrote:

Can I have 2 namespaces in the same XML schema?

You need at least one schema to define elements for each namespace but
of course a schema for one namespace can import a schema for another
namespace and then reference elements from the other namespace.

Do you mean to say that 1 schema file can contain only 1 namespace?
Actually, 'import' is exactly what I want to avoid. That is why in the
OP, I explicitly mentioned that I want 1 schema in 1 xsd file
containing 2 namespaces.
Any way to do that?


Does this help ?

(This is an example given to me by Zafar Abbas at the newsgroup
microsoft.public.xml. Google for "Schema - Definition for checking part of
schema?")

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="a">
<xs:complexType>
<xs:sequence>
<xs:group ref = "allowAny"/>
<xs:element name="aa" />
<xs:group ref = "allowAny"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:group name="allowAny">
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" />
</xs:sequence>
</xs:group>

</xs:schema>

The following xml will be valid according to it:

<a xmlns:ns="ns">
<aa>
</aa>

<ns:bb></ns:bb>
<ns:cc></ns:cc>

</a>

Regards


Abhinav, thanks for your effort. Actually, my problem starts right
after this.
Now, I wish to come up with a second schema that will define the "bb"
and "cc" elements so that the above xml gets validated against this
new schema (bb and cc should also get validated now). As you can see,
in the xml, "bb" and "cc" are in a new namespace. So, in the new
schema too, they need to be defined in a new namespace. And that is
exactly what I am unable to do.
I hope you understand my problem.

Thanks again.
Jul 20 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.