XML namespace: Difference between revisions

Content deleted Content added
m linking: DTD is a disambig. - this article is using a link to Document Type Definition directly now
No edit summary
Line 5:
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.
 
A namespace is declared using the reserved XML attribute <code>xmlns</code>, the value of which must be a [[Uniform Resource Identifier|URI]] (Uniform Resource Identifier) reference, e.g., :
<pre><nowiki>xmlns="http://www.w3.org/1999/xhtml"</nowiki>. </pre>
Note, however, that the URI is not actually read, it is simply treated by an XML parser as a string. For example, [http://www.w3.org/1999/xhtml 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 <nowiki>"http://www.w3.org/1999/xhtml"</nowiki>) to identify a namespace, rather than a simple string (such as "xhtml"), reduces the possibility of different namespaces using duplicate identifiers.
 
The declaration can also include a short prefix with which elements and attributes can be identified, e.g.,: <pre><nowiki>xmlns:xhtml="''http://www.w3.org/1999/xhtml''".</nowiki></pre>
 
An XML namespace does not require that its vocabulary be defined, though it is fairly common practice to place either a [[Document Type Definition]] (DTD) or an [[XML Schema]] defining the precise data structure at the ___location of the namespace's URI.