Xml namespaces
An XML namespace is a W3C standard for providing uniquely named elements and attributes in an XML instance. 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.
All element names within a namespace must be unique.
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". Refences 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.
A namespace is declared using the reserved XML attribute xmlns
, the value of which must be a URI (Uniform Resource Identifier) reference e.g. xmlns='http://www.w3.org/TR/REC-html40'. The declaration can also include a short prefix with which elements and attributes can be identified e.g. xmlns:html=http://www.w3.org/TR/REC-html40.
An XML namespace does not require that its vocabulary is defined, though it is fairly common practice to place either a DTD or an XML Schema defining the precise data structure at the location of the namespace's URI.