XML namespace

From Wikipedia, the free encyclopedia

Jump to: navigation, search

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 Internationalized Resource Identifier (IRI), usually 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.

[edit] See also

Personal tools