hi,
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 :
"http://lle.rochester.edu/myProject/myNs"
or
"tag:dgresh@lle.rochester.edu:2006-07-17:myNs"
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>
</x>||
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,
Dan
|
-----------------------------------------------------------------
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>