- Why Namespaces Are Needed: Resolving Name Conflicts
- Qualified Names, Prefixes, Local Names, and Other Terminology
- Declaring Namespaces in XML Documents
- Default Namespace
- Handling Namespaces in a DTD or XML Schema
- Validating Documents with Namespaces
- What Does a Namespace Point To?
- Namespace Support and Use
- Special Attributes: xmlns, xml:space, xml:lang, and xml:base
- Common Namespaces
- For Further Exploration
What Does a Namespace Point To?
The fact that a namespace name is identified by a URI makes many people think that a namespace points to some specific Web resource. Well, it may or it may not, so don't count on it! Furthermore, even if it does resolve to a filename, don't expect it to be a DTD or XML Schema on the other end. In fact, if you type into your browser the common namespace names listed in Table 5-1 on page 234, you'll find a wide variety of results, even among those from the W3C. In the early days of namespaces, the W3C namespace names did not resolve to pages at all and there is no reason you should expect them to do so. More recently, the W3C namespace URIs do result in a page, but they are not required to do so.
Why? Because there is absolutely no convention expressed or implied by a namespace name other than the fact that it is a unique identifier. That's all it is, even though you'll often wish it pointed to something a bit more useful, especially something that could be processed programmatically.
On the other hand, there are lots of good reasons for developers to want namespace URIs to point to something. Resource Directory Description Language (RDDL) is a clever grassroots (not W3C) solution to the problem of what a namespace should point to: a DTD, an XML Schema, an RDF schema, or simply an HTML page? (See http://www.rddl.org/. The site is also an example of the use of RDDL.) A resource directory includes a textual description of a particular class of resources, as well as resources related to that class, together with a directory of links to these related resources. This description is both human-readable and machine-processible.
As we'll see in detail in chapter 15, RDDL is an extension of XHTML Basic that adds the element rddl:resource, which is defined in terms of a simple XLink, with xlink:role indicating the nature of the resource being linked to and xlink:arcrole describing the purpose of the link.