Currently allmost each XML document use namspaces in its contents. This prevents name conflicts in the case when multiple document types are used. DOM provides special methods for extracting XML-element and atttributes by their fully qualified names,i.e. with namespaces supplied.

During namespace processing DOM operates on vendor URL. The sample below shows an example of namespace usage:

This is a sample XML using namespaces:

<?xml version="1.0"?>

<!DOCTYPE myns:purchase-order  [
	<!ELEMENT myns:purchase-order (myns:purchased-by, myns:order-items)>
	<!ATTLIST myns:purchase-order
		myns:date   CDATA #REQUIRED
		myns:number CDATA #REQUIRED
		xmlns:myns  CDATA #REQUIRED

	<!ELEMENT pmyns:purchased-by (myns:address)>
	<!ATTLIST myns:purchased-by
	   myns:name CDATA #REQUIRED
	<!ELEMENT myns:address (#PCDATA)>

	<!ELEMENT myns:order-items (myns:item+)>
	<!ELEMENT myns:item EMPTY>
	<!ATTLIST myns:item
		myns:code  CDATA #REQUIRED
		myns:type  CDATA #REQUIRED
		myns:label CDATA #REQUIRED

<myns:purchase-order xmlns:myns="" 
	myns:date="2005-10-31" myns:number="12345">

	<myns:purchased-by myns:name="My name">
		<myns:address>My address</myns:address>

			here is an example of empty element
			i.e. containing no nested elements
		<myns:item myns:code="687" myns:type="CD" 
			myns:label="Some music" />
		<myns:item myns:code="129851" myns:type="DVD" 
			myns:label="Some video"/>


This is a Java code refering namespaces:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

 * This sample program using fully qualified names while
 * accessing the contents of DOM-document.

public class Test {
  public static void main(String[] args) {
    try {
      // load the document from a file:
      DocumentBuilderFactory factory = 

      DocumentBuilder loader = factory.newDocumentBuilder();
      Document document = loader.parse("sample.xml");

      // here is our vendor URL used in namepace-related functions:
      String docNS = "";

      Element order = document.getDocumentElement();

      // here we get the attribute with namespace defined:
      Attr date = order.getAttributeNodeNS(docNS, "date");
      // .. do something ...

      // here we get the attribute with namespace defined:
      NodeList children = order.getElementsByTagNameNS(docNS, "item");
      // .. do something ...

    } catch (Exception ex) {