473,394 Members | 1,879 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

Namespaces on Schemas

Hello all!

I need to build an XML file structure so a client can import data to
one of our systems. Totally new to XML, I learned about Namespaces and
DTD, and built a nice spec using them. Now I am trying to use XML
Schemas to tell more about what kind of data are allowed on each
element/attribute, but I can't understand how to mix Namespaces and
Schemas.

Can anyone give me tips, starting points, about how to specify the
Schema for the following example XML?

<library xmlns:book="book" xmlns:author="author">
<book:book>
<book:title>Example</book:title>
<book:pages>150</book:pages>
</book:book>
<author:author>
<author:title>Mr</author:title>
<author:name>Julio Nobrega</author:name>
</author:author>
</library>

I want to say that the <title> tag has different validation rules
depending on the namespace...

Thank you!

--
Julio Nobrega
http://www.inerciasensorial.com.br

Oct 13 '05 #1
6 1450
You are mis-using namespaces. Namespaces should only really be used
when you are addressing xml from different sources, say, from two
different departments, and want to keep their definitions distinct. As
someone who is producing an entire xml document, one should never use
more than one namespace. When you are aggregating documents from
different sources and are concerned about namespace clashed, you then
think about using a set of namespaces.

Here are my rules for the use of namespaces:
Rule 1 of namespace: Don't
Rule 2 of namespaces: Not yet
Rule 3 of namespaces: only when you need to

Thus your xml would look like:

<library>
<book>
<title>here</title>
<author>there</author>
</book>
<author>
<title>here</title>
<name>there</name>
</author>
</library>

xml Schema is nice because it allows you to define structure that may
be called the same, but is used in different places. e.g.:

You wanted the library/book/title element to have an ISBN attribute,
but the library/book/title element to have a number attribute (i.e.
this is the author's Nth book). Any good schema reference will tell
you how to define children element of the same name but of different
(complex/simple) types.

In conclusion, that the title element is a child of the book element
implies that it is a "book title", there's no need to define different
namespaces.

take a look at http://builder.com.com/5100-6389-1046618.html for more
on namespaces.

Oct 13 '05 #2
In article <11**********************@g44g2000cwa.googlegroups .com>,
<in****@gmail.com> wrote:
<library xmlns:book="book" xmlns:author="author">


Namespace names are supposed to be absolute URLs.

-- Richard
Oct 13 '05 #3
Actually, namespaces are designated as URI's not URL's. Taken from the W3C's recommendation on XML namepsaces: <http://www.w3.org/TR/REC-xml-names/#ns-decl>

[Definition:] The attribute's value, a URI reference, is the namespace name identifying the namespace. The namespace name, to serve its intended purpose, should have the characteristics of uniqueness and persistence. It is not a goal that it be directly usable for retrieval of a schema (if any exists). An example of a syntax that is designed with these goals in mind is that for Uniform Resource Names [RFC2141]. However, it should be noted that ordinary URLs can be managed in such a way as to achieve these same goals.

In other words, the namespace URI has to be unique and that's it. URL's, by definition, are unique (all URL's are URI's but not vice versa) therefore, acceptable as namespace names. Generally, one simply uses a URL for the namespace name, however, this URL doesn't need to point to any actual document. Convention and general usefullness suggests placing the schema or DTD of said namespace at said URL is a good idea, and I concur.

nntp://news.cis.ohio-state.edu/comp.text.xml/<di***********@pc-news.cogsci.ed.ac.uk>

In article <11**********************@g44g2000cwa.googlegroups .com>,
<in****@gmail.com> wrote:
<library xmlns:book="book" xmlns:author="author">


Namespace names are supposed to be absolute URLs.

-- Richard

[comp.text.xml]
Oct 13 '05 #4
In article <di**********@news.cis.ohio-state.edu>,
Jason Karns <karns.17@n!o!s!p!a!m.osu.edu> wrote:
Actually, namespaces are designated as URI's not URL's.


I know that. I was trying not to obscure the point with subtleties.

-- Richard
Oct 13 '05 #5
The W3C XML Schema Primer [1] has a very good introduction to this
topic which I think you will find helpful.

ht

[1] http://www.w3.org/TR/xmlschema-0/
--
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
Oct 14 '05 #6
Chris wrote:
You are mis-using namespaces. Namespaces should only really be used
when you are addressing xml from different sources, say, from two
different departments, and want to keep their definitions distinct.


Thank you Chris. I solved the problem by not using namespaces on my
own created file :)

Actually, I gave up on XML Schema and started using RELAX NG, but
that's another topic... not that I know how to use namespaces on RELAX
NG either, but following your advice I am not even looking how to do
it, for now :)

Oct 20 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Dominique | last post by:
Hi all, I am trying to create a schema (conf.xsd) that includes 2 other schemas (a.xsd, b.xsd). in my xml file, I have namespaces for each of these schemas, but my XML file doesn't validate......
3
by: tysontate | last post by:
I've been charged with updating old schemas for various files that have never actually been validated against each other. I've got the schema itself in good form at this point - I'm positive that...
3
by: Oisin Grehan | last post by:
Hi, I can't for the life of me get this to work properly. I've searched for examples, but none of the examples quite match my environment. Here is my XML (please treat this as immutable -- no...
1
by: Ryan | last post by:
I have a very complex XDR schema that uses namespaces: xmlns="urn:schemas-microsoft-com:xml-data" xmlns:b="urn:schemas-microsoft-com:BizTalkServer" xmlns:d="urn:schemas-microsoft-com:datatypes"...
2
by: Mike Morse | last post by:
What see sample that show xs:element where the xs namespace = http://www.w3.org/2001/XMLSchema However, I see another example with xsi: where xsi = http://www.w3.org/2001/XMLSchema-instance ...
0
by: Michael Jackson | last post by:
I have attempted to mark up a service and it's methods so that it doesn't require the SOAPAction HTTP header to resolve the methods being called, this is done from first element in <SOAP-ENV:Body>...
0
by: wolf_y | last post by:
I'm a newbie to XML and primarily program in SAS, so even though I've consulted documentation, I can't translate into language I understand. I hope I can explain the problem clearly. The project...
0
by: blat001 | last post by:
Hi, Not 100% sure if this is the correct group to post in but. I have a class that I want to serialize/deserialize to match the MM7 specifications, which I have done but now that we are...
0
by: theonlydavewilliams | last post by:
Hi there I'm hoping there's an easy answer to a (hopefully) not too long-winded issue... I'm building a C# web client using a proxy wsdl.exe'd from a wsdl file and six schemas, each in a different...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.