The Namespace Conundrum
XML namespaces represent a different tack on referencing markup definitions. They rely on the existence of a unique Uniform Reference Identifier (URI, which unlike a URL does not have to point to an actual resource online somewhere, but only has to be unique) to define a special vocabulary for XML markup that can be referenced inside an XML document. In fact, namespaces can be combined and used in all kinds of creative ways and don't carry the freight or the learning curve associated with DTDs. Best of all, namespaces provide an unambiguous way to define multiple sets of markup definitions that avoids conflict or collisions, even when such namespaces use identical names for elements and attributes.
Only one small problem, thoughright now, using a namespace in an XML document makes it impossible to validate that document, because current validation tools don't know what to do with namespaces (documents based on DTDs can be mechanically validated, and most worthy XML editors perform such validations as part of their document creation support).
Nevertheless, namespaces are worth working with because they make XML so compact and permit you to incorporate all kinds of standard, predefined markup.
My favorite namespace resources include:
- XML.com maintains a list of namespace resources that's worth checking from time to time (http://www.xml.com/pub/Guide/XML_Namespaces);
- The W3C specification "Namespaces in XML" remains the bible for this somewhat esoteric and controversial element of the XML universe. (http://www.w3.org/TR/REC-xml-names/);
- Jon Bosak, a demigod in XML circles, posted a wonderful explanation and discussion of namespaces in the xml-dev mailing list recently. It's worth reading. (http://www.lists.ic.ac.uk/hypermail/xml-dev/xml-dev-Sep-1999/0385.html);
- James Clark, an outright SGML/XML god, wrote a description called "XML Namespaces" early in the discussion of this topic. This is still the best place to start learning about it. (http://www.jclark.com/xml/xmlns.htm)
Ed Tittel is a principal at LANWrights, Inc.: a wholly owned subsidiary of LeapIt.com. LANwrights offers training, writing and consulting services on Internet, networking, and Web topics, plus various IT certifications (Microsoft, Sun/Java, Prosoft/CIW).