OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Basic namespace question

Philippe Poulard wrote:


namespace URIs are used to disambiguish names used in elements (and sometimes in attributes) ; the idea is to consider that a name has 2 parts, an ID and a local name ; 2 elements that have the same local name are distinct when the ID you choose is not the same than mine ; now what would happenned if unfortunately we have both choosen the same ID ? we would have a clash ; the solution would be :
1) to disambiguish again our elements by considering that a name has 3 parts (an ID, another ID and a local name) ; now loop again if we choose again the same IDs
2) to choose a better ID

so we must ensure that when you choose an ID, it is not the same than mine ; the idea is to use a "universal ID", an ID that is unique all over the world

candidates :
-URIs ("http://foo.com/myNs"; or "urn:isbn:9-780201-770049")
-GUIDs (they are also expressible with URN : "urn:guid:etc...")
- la Java ("com.foo.myNs")

URIs win

avoid using "that text document" : even if XML processors won't complain because it's not an URI string, it is not a unique string

so, the kind of URI you could use could be something like this :
or any other, as long as it is unique

Daniel Gresh wrote:

I have a basic question about XML Namespaces, as I just cannot seem to fully grasp the concept.

I know how to set up a namespace, and I know how they are used in the document and such; my question is mainly about the URI associated with a namespace. Let's use this as an example:

|<x xmlns:edi='http://ecommerce.org/schema'>
 <!-- the 'price' element's namespace is http://ecommerce.org/schema -->
 <edi:price units='Euro'>32.18</edi:price>

Now I'm not too sure how to phrase this question, but here goes: do I have to associate a URI with a namespace? In the above example, what would be the case if there was no xmlns declaration and the ns "edi" was used? I suppose what I am asking is: what is the benefit of declaring an xmlns in the manner xmlns:prefix='URI'? Is information from that URI being used in the XML document somehow? It's all very confusing to me.

Also, let's say I have a simple text document located somewhere on my hard drive, like C:\document.txt. If I wanted to define a namespace for that document, such as xmlns:doc='that text document', how exactly would I do so? Is it even needed?

Thanks in advance,

The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>

The list archives are at http://lists.xml.org/archives/xml-dev/

To subscribe or unsubscribe from this list use the subscription
manager: <http://www.oasis-open.org/mlmanage/index.php>

Thanks everyone for the replies, I understand it much better now.

Just one last question:

Rather than using a URL, such as http://myDomain/myNamespace, how would I use a URN? URLs are self-explanatory to get to - i.e. they're easy to determine. However, how does one find or create a URN? If I have a URI, http://myDomain/myNamespace, that is the URL. However, how could I determine a URN for that? Is it possible?

Thanks agian,

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2006 XML.org. This site is hosted by OASIS