XML namespace
From Wikipedia, the free encyclopedia
XML namespaces are used for providing uniquely named elements and attributes in an XML instance. They are defined by a W3C recommendation called Namespaces in XML. An XML instance may contain element or attribute names from more than one XML Vocabulary. If each vocabulary is given a namespace then the ambiguity between identically named elements or attributes can be resolved.
A simple example would be to consider an XML instance that contained references to a customer and an ordered product. Both the customer element and the product element could have a child element "ID_number". References to the element ID_number would therefore be ambiguous unless the two identically named but semantically different elements were brought under namespaces that would differentiate them.
[edit] Namespace declaration
A namespace is declared using the reserved XML attribute xmlns
, the value of which must be a Uniform Resource Identifier (URI) reference.
For example:
xmlns="http://www.w3.org/1999/xhtml"
Note, however, that the URI is not actually read as an online address; it is simply treated by an XML parser as a string. For example, the document at http://www.w3.org/1999/xhtml itself does not contain any code. It simply describes the XHTML namespace to human readers. Using a URI (such as "http://www.w3.org/1999/xhtml") to identify a namespace, rather than a simple string (such as "xhtml"), reduces the possibility of different namespaces using duplicate identifiers.
It is also possible to map namespaces to prefixes in namespace declarations. For example:
xmlns:xhtml="http://www.w3.org/1999/xhtml"
In this case, any element or attribute names that start with the prefix "xhtml:" are considered to be in the XHTML namespace.