java left logo
java middle logo
java right logo
 

Home arrow Java SE Tips
 
 
Main Menu
Home
Java Tutorials
Book Reviews
Java SE Tips
Java ME Tips
Java EE Tips
Other API Tips
Java Applications
Java Libraries
Java Games
Java Network
Java Forums
Java Blog




Most Visited Tips
Java SE Tips
Java ME Tips
Java EE Tips
Other API Tips
Java Applications
Java Libraries
Java Games
Book Reviews
Top Rated Tips
Java SE Tips
Java ME Tips
Java EE Tips
Other API Tips
Java Applications
Java Libraries
Java Games
Book Reviews


Statistics
Registered Users: 4084
Java SE Tips: 614
Java ME Tips: 202
Java EE Tips: 183
Other API Tips: 779
Java Applications: 298
Java Libraries: 209
Java Games: 16
Book Reviews:
 
 
 
How you access elements from document with namespaces E-mail
User Rating: / 1
PoorBest 

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="http://www.my-company.com" 
	myns:date="2005-10-31" myns:number="12345">

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

	<myns:order-items>
		<!--
			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"/>
	</myns:order-items>

</myns:purchase-order>

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 = 
        DocumentBuilderFactory.newInstance();
      factory.setNamespaceAware(true);
      factory.setValidating(true);

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

      // here is our vendor URL used in namepace-related functions:
      String docNS = "http://www.my-company.com";

      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) {
      ex.printStackTrace();
    }
  }
}


 Related Tips

 
< Prev   Next >

Page 1 of 0 ( 0 comments )

You can share your information about this topic using the form below!

Please do not post your questions with this form! Thanks.


Name (required)


E-Mail (required)

Your email will not be displayed on the site - only to our administrator
Homepage(optional)



Comment Enable HTML code : Yes No



 
       
         
     
 
 
 
   
 
 
java bottom left
java bottom middle
java bottom right
RSS 0.91 FeedRSS 1.0 FeedRSS 2.0 FeedATOM FeedOPML Feed

Home - About Us - Privacy Policy
Copyright 2005 - 2008 www.java-tips.org
Java is a trademark of Sun Microsystems, Inc.