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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   re: What is a namespace ... really?

[ Lists Home | Date Index | Thread Index ]
  • From: <david@megginson.com>
  • To: "XML Developers' List" <xml-dev@ic.ac.uk>
  • Date: Fri, 15 Jan 1999 09:15:08 -0500 (EST)

Roger L. Costello writes:

 > I thought I knew what a namespace was ... but now I think perhaps I
 > don't.

It's simpler than you think.

 > Suppose that I create a DTD (BookCatalogue.dtd).  In this DTD I
 > define some elements, attributes, entities, etc.  I define the
 > relationships between the elements, attributes, etc.  I place
 > BookCatalogue.dtd in a directory:
 > 
 > file://localhost/xml-course/xml-part1/BookCatalogue.dtd
 > 
 > Is this a namespace?  

It's a namespace URI (in this case, a URL).

 > That is, is the file itself (BookCatalogue.dtd) a namespace?

No -- it's irrelevant as far as the current namespaces REC is
concerned.

 > In all the examples that I see in the namespace spec they don't
 > refer to a specific file.  Instead, they refer to "some place",
 > such as:
 > 
 > http://www.w3.org/TR/HTML/

Not a place, just a unique URI.  The URI doesn't actually have to work 
(a URI that throws up a 404 is just fine).

 > So, perhaps the "directory" that BookCatalogue.dtd resides in is the
 > namespace? i.e.,
 > 
 > file://localhost/xml-course/xml-part1/

No.

 > I thought I knew the way, now I don't.  Help me find my way again.

A namespace is very similar to a package name in Java -- it's just a
way of disambiguating names.  Consider

  package com.megginson.xml;

  class XMLNamespace {
    // [...]
  }

This does not guarantee that if you enter the URL
http://xml.megginson.com/ into Netscape, something will happen;
however, by virtue of the fact that my company owns the megginson.com
domain, I can guarantee that no one else can (or should) be able to
use this package name, so there is no chance of my classes getting
confused with someone else's.

Likewise, consider

  <?xml version="1.0"?>

  <ph:phone-list xmlns:ph="http://www.megginson.com/ns/phone">
   <ph:entry>
    <ph:name>Megginson Technologies Ltd.</ph:name>
    <ph:number>+1 613 722 8770</ph:number>
   </ph:entry>
  </ph:phone-list>

This does not guarantee that if you enter the URL
http://www.megginson.com/ns/phone into Netscape, something useful will 
happen; however, by virtue of the fact that my company owns the
megginson.com domain, I can guarantee that no one else can (or should) 
be able to use this namespace URI, so there is no chance of my element 
type names getting confused with someone else's.


All the best,


David

-- 
David Megginson                 david@megginson.com
           http://www.megginson.com/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)





 

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

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