>A namespace is a "virtual container" for the elements.
No, I don't think that's a particularly good description of the concept.
Think of the namespace as an implicit part of the element name, in the same way that "USA" (or some other country) is an implicit part of your postal address.
James Clark's tutorial at
http://www.jclark.com/xml/xmlns.htm is quite old, but it's as good as anything.
>Even though a namespace looks like an URL, it is not.
It *is* a URI (and it may be a URL). But it isn't used to fetch anything. It's a name, not a location. I can identify you by your email address, but that doesn't mean I have to send you any email.
>this namespace contains a few XSL documents
no, namespaces don't "contain" documents. They merely form part of the name of elements and attributes.
>Where are these XSL documents exactly stored?
Anywhere you like. The namespaces used in a document and the location of the document are completely independent of each other.
>If I create a new XSL document and would like to store this at the above URL, how do I do it?
You go to a domain name registrar, buy the domain foo.com, then go to a web hosting company and tell them you want them to host the domain foo.com; they give you the details of how to transfer documents to their servers using FTP or some other protocol, and you can then create documents that are accessible using a URL such as
http://www.foo.com/doc.xml
But this, as I said, has nothing to do with namespaces. Anyone can use the namespace "http://www.foo.com/" in their documents. It's considered bad form to use a domain that you don't own, but no-one can stop you doing it (as far as I know - I'm not a lawyer!)
Take SVG as an example. SVG is an XML vocabulary defined by W3C. So it uses a namespace URI of the form
http://www.w3.org/... But anyone can create SVG documents and they can store them anywhere they like.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference