You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ru...@apache.org on 2006/01/10 08:54:32 UTC

svn commit: r367519 [3/5] - in /webservices/axis2/trunk/java/modules: doom/src/org/apache/axis2/om/impl/dom/ doom/src/org/apache/axis2/om/impl/dom/factory/ doom/src/org/apache/axis2/om/impl/dom/jaxp/ integration/test/org/apache/axis2/security/

Modified: webservices/axis2/trunk/java/modules/doom/src/org/apache/axis2/om/impl/dom/ElementImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/doom/src/org/apache/axis2/om/impl/dom/ElementImpl.java?rev=367519&r1=367518&r2=367519&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/doom/src/org/apache/axis2/om/impl/dom/ElementImpl.java (original)
+++ webservices/axis2/trunk/java/modules/doom/src/org/apache/axis2/om/impl/dom/ElementImpl.java Mon Jan  9 23:53:43 2006
@@ -52,538 +52,652 @@
  * Implementation of the org.w3c.dom.Element and org.apache.axis2.om.Element
  * interfaces.
  */
-public class ElementImpl extends ParentNode implements Element,OMElement, OMConstants {
-	
-	protected OMNamespace namespace;
-	protected String localName;
-	private AttributeMap attributes;
-	private HashMap namespaces;
-	
-	/**
-	 * @param ownerDocument
-	 */
-	public ElementImpl(DocumentImpl ownerDocument, String tagName) {
-		super(ownerDocument);
-		if(ownerDocument.firstChild == null)
-			ownerDocument.firstChild = this;
-		this.localName = tagName;
-		this.attributes = new AttributeMap(this);
-		this.done = true;
-	}
-	
-	/**
-	 * Creates a  new element with the namespace.
-	 * @param ownerDocument
-	 * @param tagName
-	 * @param ns
-	 */
-	public ElementImpl(DocumentImpl ownerDocument, String tagName, NamespaceImpl ns) {
-		super(ownerDocument);
-		this.localName = tagName;
-		this.namespace = ns;
-		this.declareNamespace(ns);
-		this.attributes = new AttributeMap(this);
-		this.done = true;
-	}
-	
-	public ElementImpl(DocumentImpl ownerDocument, String tagName, NamespaceImpl ns, OMXMLParserWrapper builder) {
-		super(ownerDocument);
-		this.localName = tagName;
-		this.namespace = ns;
-		this.builder = builder;
-		this.declareNamespace(ns);
-		this.attributes = new AttributeMap(this);
-	}
-	
-	public ElementImpl(ParentNode parentNode, String tagName, NamespaceImpl ns) {
-		this((DocumentImpl)parentNode.getOwnerDocument(), tagName, ns);
-		this.parentNode = parentNode;
-		this.parentNode.addChild(this);
-		this.done = true;
-	}
-	
-	public ElementImpl(ParentNode parentNode, String tagName, NamespaceImpl ns, OMXMLParserWrapper builder) {
-		this(tagName,ns,builder);
-		if(parentNode != null) {
-			this.ownerNode = (DocumentImpl)parentNode.getOwnerDocument();
-			this.isOwned(true);
-			this.parentNode = parentNode;
-			this.parentNode.addChild(this);
-		}
-		
-	}
-	
-	public ElementImpl(String tagName, NamespaceImpl ns, OMXMLParserWrapper builder) {
-		this.localName = tagName;
-		this.namespace = ns;
-		this.builder = builder;
-		if(ns != null) {
-			this.declareNamespace(ns);
-		}
-		this.attributes = new AttributeMap(this);
-	}
-	
-	
-	///
-	///org.w3c.dom.Node methods
-	///
-	
-	/* (non-Javadoc)
-	 * @see org.w3c.dom.Node#getNodeType()
-	 */
-	public short getNodeType() {
-		return Node.ELEMENT_NODE;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.w3c.dom.Node#getNodeName()
-	 */
-	public String getNodeName() {
-		if(this.namespace != null) {
-			if(this.namespace.getPrefix() == null || "".equals(this.namespace.getPrefix())) {
-				return this.localName;
-			} else {
-				return this.namespace.getPrefix() + ":" + this.localName;
-			}
-		} else {
-			return this.localName;
-		}
-	}
-
-	/**
-	 * Returns the value of the namespace URI.
-	 */
-	public String getNamespaceURI() {
-		return (this.namespace != null)?this.namespace.getName(): null;
-	}
-	
-	///
-	///org.apache.axis2.om.OMNode methods
-	///
-	
-	/* (non-Javadoc)
-	 * @see org.apache.axis2.om.OMNode#getType()
-	 */
-	public int getType() throws OMException {
-		return Node.ELEMENT_NODE;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.apache.axis2.om.OMNode#setType(int)
-	 */
-	public void setType(int nodeType) throws OMException {
-		//Do nothing ...
-		//This is an Eement Node...
-	}
-
-
-	///
-	/// org.w3c.dom.Element methods
-	///
-	
-	/* (non-Javadoc)
-	 * @see org.w3c.dom.Element#getTagName()
-	 */
-	public String getTagName() {
-		return this.getNodeName();
-	}
-
-	/**
-	 * Removes an attribute by name.
-	 * @param name The name of the attribute to remove
-	 * @see org.w3c.dom.Element#removeAttribute(java.lang.String)
-	 */
-	public void removeAttribute(String name) throws DOMException {
-		if(this.isReadonly()) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NO_MODIFICATION_ALLOWED_ERR", null);
-            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, msg);
-		}
-		
-		if(name.startsWith(OMConstants.XMLNS_NS_PREFIX)) {
-			String namespacePrefix = DOMUtil.getLocalName(name);
-			if(this.findNamespaceURI(namespacePrefix) != null) {
-				this.removeNamespace(namespacePrefix);
-			}
-		}
-		
-		if(this.attributes != null) {
-			this.attributes.removeNamedItem(name);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.w3c.dom.Element#removeAttributeNS(java.lang.String, java.lang.String)
-	 */
-	public void removeAttributeNS(String namespaceURI, String localName) throws DOMException {
-		if(this.isReadonly()) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NO_MODIFICATION_ALLOWED_ERR", null);
-            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, msg);
-		}
-		
-		if(this.attributes != null) {
-			this.attributes.removeNamedItemNS(namespaceURI, localName);
-		}
-	}
-
-	/**
-	 * Removes the specified attribute node.
-	 * @see org.w3c.dom.Element#removeAttributeNode(org.w3c.dom.Attr)
-	 */
-	public Attr removeAttributeNode(Attr oldAttr) throws DOMException {
-		if(isReadonly()) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NO_MODIFICATION_ALLOWED_ERR", null);
-            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, msg);
-		} 
-		if(this.attributes == null || this.attributes.getNamedItem(oldAttr.getName()) == null) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_FOUND_ERR", null);
+public class ElementImpl extends ParentNode implements Element, OMElement,
+        OMConstants {
+
+    protected OMNamespace namespace;
+
+    protected String localName;
+
+    private AttributeMap attributes;
+
+    private HashMap namespaces;
+
+    /**
+     * @param ownerDocument
+     */
+    public ElementImpl(DocumentImpl ownerDocument, String tagName) {
+        super(ownerDocument);
+        if (ownerDocument.firstChild == null)
+            ownerDocument.firstChild = this;
+        this.localName = tagName;
+        this.attributes = new AttributeMap(this);
+        this.done = true;
+    }
+
+    /**
+     * Creates a new element with the namespace.
+     * 
+     * @param ownerDocument
+     * @param tagName
+     * @param ns
+     */
+    public ElementImpl(DocumentImpl ownerDocument, String tagName,
+            NamespaceImpl ns) {
+        super(ownerDocument);
+        this.localName = tagName;
+        this.namespace = ns;
+        this.declareNamespace(ns);
+        this.attributes = new AttributeMap(this);
+        this.done = true;
+    }
+
+    public ElementImpl(DocumentImpl ownerDocument, String tagName,
+            NamespaceImpl ns, OMXMLParserWrapper builder) {
+        super(ownerDocument);
+        this.localName = tagName;
+        this.namespace = ns;
+        this.builder = builder;
+        this.declareNamespace(ns);
+        this.attributes = new AttributeMap(this);
+    }
+
+    public ElementImpl(ParentNode parentNode, String tagName, NamespaceImpl ns) {
+        this((DocumentImpl) parentNode.getOwnerDocument(), tagName, ns);
+        this.parentNode = parentNode;
+        this.parentNode.addChild(this);
+        this.done = true;
+    }
+
+    public ElementImpl(ParentNode parentNode, String tagName, NamespaceImpl ns,
+            OMXMLParserWrapper builder) {
+        this(tagName, ns, builder);
+        if (parentNode != null) {
+            this.ownerNode = (DocumentImpl) parentNode.getOwnerDocument();
+            this.isOwned(true);
+            this.parentNode = parentNode;
+            this.parentNode.addChild(this);
+        }
+
+    }
+
+    public ElementImpl(String tagName, NamespaceImpl ns,
+            OMXMLParserWrapper builder) {
+        this.localName = tagName;
+        this.namespace = ns;
+        this.builder = builder;
+        if (ns != null) {
+            this.declareNamespace(ns);
+        }
+        this.attributes = new AttributeMap(this);
+    }
+
+    // /
+    // /org.w3c.dom.Node methods
+    // /
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.w3c.dom.Node#getNodeType()
+     */
+    public short getNodeType() {
+        return Node.ELEMENT_NODE;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.w3c.dom.Node#getNodeName()
+     */
+    public String getNodeName() {
+        if (this.namespace != null) {
+            if (this.namespace.getPrefix() == null
+                    || "".equals(this.namespace.getPrefix())) {
+                return this.localName;
+            } else {
+                return this.namespace.getPrefix() + ":" + this.localName;
+            }
+        } else {
+            return this.localName;
+        }
+    }
+
+    /**
+     * Returns the value of the namespace URI.
+     */
+    public String getNamespaceURI() {
+        return (this.namespace != null) ? this.namespace.getName() : null;
+    }
+
+    // /
+    // /org.apache.axis2.om.OMNode methods
+    // /
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.axis2.om.OMNode#getType()
+     */
+    public int getType() throws OMException {
+        return Node.ELEMENT_NODE;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.axis2.om.OMNode#setType(int)
+     */
+    public void setType(int nodeType) throws OMException {
+        // Do nothing ...
+        // This is an Eement Node...
+    }
+
+    // /
+    // / org.w3c.dom.Element methods
+    // /
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.w3c.dom.Element#getTagName()
+     */
+    public String getTagName() {
+        return this.getNodeName();
+    }
+
+    /**
+     * Removes an attribute by name.
+     * 
+     * @param name
+     *            The name of the attribute to remove
+     * @see org.w3c.dom.Element#removeAttribute(java.lang.String)
+     */
+    public void removeAttribute(String name) throws DOMException {
+        if (this.isReadonly()) {
+            String msg = DOMMessageFormatter.formatMessage(
+                    DOMMessageFormatter.DOM_DOMAIN,
+                    "NO_MODIFICATION_ALLOWED_ERR", null);
+            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
+                    msg);
+        }
+
+        if (name.startsWith(OMConstants.XMLNS_NS_PREFIX)) {
+            String namespacePrefix = DOMUtil.getLocalName(name);
+            if (this.findNamespaceURI(namespacePrefix) != null) {
+                this.removeNamespace(namespacePrefix);
+            }
+        }
+
+        if (this.attributes != null) {
+            this.attributes.removeNamedItem(name);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.w3c.dom.Element#removeAttributeNS(java.lang.String,
+     *      java.lang.String)
+     */
+    public void removeAttributeNS(String namespaceURI, String localName)
+            throws DOMException {
+        if (this.isReadonly()) {
+            String msg = DOMMessageFormatter.formatMessage(
+                    DOMMessageFormatter.DOM_DOMAIN,
+                    "NO_MODIFICATION_ALLOWED_ERR", null);
+            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
+                    msg);
+        }
+
+        if (this.attributes != null) {
+            this.attributes.removeNamedItemNS(namespaceURI, localName);
+        }
+    }
+
+    /**
+     * Removes the specified attribute node.
+     * 
+     * @see org.w3c.dom.Element#removeAttributeNode(org.w3c.dom.Attr)
+     */
+    public Attr removeAttributeNode(Attr oldAttr) throws DOMException {
+        if (isReadonly()) {
+            String msg = DOMMessageFormatter.formatMessage(
+                    DOMMessageFormatter.DOM_DOMAIN,
+                    "NO_MODIFICATION_ALLOWED_ERR", null);
+            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
+                    msg);
+        }
+        if (this.attributes == null
+                || this.attributes.getNamedItem(oldAttr.getName()) == null) {
+            String msg = DOMMessageFormatter.formatMessage(
+                    DOMMessageFormatter.DOM_DOMAIN, "NOT_FOUND_ERR", null);
             throw new DOMException(DOMException.NOT_FOUND_ERR, msg);
-		}
-		AttrImpl tempAttr = (AttrImpl)this.attributes.removeNamedItem(oldAttr.getName());
-		return tempAttr;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.w3c.dom.Element#hasAttribute(java.lang.String)
-	 */
-	public boolean hasAttribute(String name) {
-		return this.getAttributeNode(name) != null;
-	}
-
-	/**
-	 * Returns whether the given attribute is available or not.
-	 * @see org.w3c.dom.Element#hasAttributeNS(java.lang.String, java.lang.String)
-	 */
-	public boolean hasAttributeNS(String namespaceURI, String localName) {
-		return this.getAttributeNodeNS(namespaceURI, localName) != null;
-	}
-	
-	/**
-	 * Looks in the local list of attributes and returns if found.
-	 * If the local list is null, returns "".
-	 * @see org.w3c.dom.Element#getAttribute(java.lang.String)
-	 */
-	public String getAttribute(String name) {
-		if(attributes == null) {
-			return "";
-		} else {
-			Attr attr = ((Attr)attributes.getNamedItem(name));
-			return (attr != null)?attr.getValue():"";
-		}
-	}
-
-	/**
-	 * Retrieves an attribute node by name. 
-	 * @see org.w3c.dom.Element#getAttributeNode(java.lang.String)
-	 */
-	public Attr getAttributeNode(String name) {
-		return (this.attributes==null)?null:(AttrImpl)this.attributes.getNamedItem(name);
-	}
-
-	/**
-	 * Retrieves an attribute value by local name and namespace URI. 
-	 * @see org.w3c.dom.Element#getAttributeNS(java.lang.String, java.lang.String)
-	 */
-	public String getAttributeNS(String namespaceURI, String localName) {
-		if(this.attributes == null) {
-			return "";
-		}
-		Attr attributeNodeNS = this.getAttributeNodeNS(namespaceURI, localName);
-		return attributeNodeNS == null? "" : attributeNodeNS.getValue();
-	}
-
-	/**
-	 * Retrieves an attribute node by local name and namespace URI. 
-	 * @see org.w3c.dom.Element#getAttributeNodeNS(java.lang.String, java.lang.String)
-	 */
-	public Attr getAttributeNodeNS(String namespaceURI, String localName) {
-
-		if(namespaceURI == OMConstants.XMLNS_NS_URI) {
-			OMNamespace ns = this.findNamespaceURI(localName);
-			AttrImpl namespaceAttr = new AttrImpl(this.ownerNode, localName, ns.getName());
-			NamespaceImpl xmlNs = new NamespaceImpl(OMConstants.XMLNS_NS_URI);
-			namespaceAttr.setOMNamespace(xmlNs);
-			return namespaceAttr;
-		}
-		
-		return (this.attributes == null) ? null : (Attr) this.attributes
-				.getNamedItemNS(namespaceURI, localName);
-
-	}
-
-	/**
-	 * Adds a new attribute node.
-	 * @see org.w3c.dom.Element#setAttributeNode(org.w3c.dom.Attr)
-	 */
-	public Attr setAttributeNode(Attr attr) throws DOMException {
-		AttrImpl attrImpl = (AttrImpl)attr;
-
-		if(attrImpl.isOwned()) {//check for ownership
-			if(!this.getOwnerDocument().equals(attr.getOwnerDocument())) {
-				String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null);
-	            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, msg);
-			}
-		}
-		
-		if(this.isReadonly()) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NO_MODIFICATION_ALLOWED_ERR", null);
-            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, msg);
-		}
-		
-		//check whether the attr is in use
-		if(attrImpl.isUsed()) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INUSE_ATTRIBUTE_ERR", null);
+        }
+        AttrImpl tempAttr = (AttrImpl) this.attributes.removeNamedItem(oldAttr
+                .getName());
+        return tempAttr;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.w3c.dom.Element#hasAttribute(java.lang.String)
+     */
+    public boolean hasAttribute(String name) {
+        return this.getAttributeNode(name) != null;
+    }
+
+    /**
+     * Returns whether the given attribute is available or not.
+     * 
+     * @see org.w3c.dom.Element#hasAttributeNS(java.lang.String,
+     *      java.lang.String)
+     */
+    public boolean hasAttributeNS(String namespaceURI, String localName) {
+        return this.getAttributeNodeNS(namespaceURI, localName) != null;
+    }
+
+    /**
+     * Looks in the local list of attributes and returns if found. If the local
+     * list is null, returns "".
+     * 
+     * @see org.w3c.dom.Element#getAttribute(java.lang.String)
+     */
+    public String getAttribute(String name) {
+        if (attributes == null) {
+            return "";
+        } else {
+            Attr attr = ((Attr) attributes.getNamedItem(name));
+            return (attr != null) ? attr.getValue() : "";
+        }
+    }
+
+    /**
+     * Retrieves an attribute node by name.
+     * 
+     * @see org.w3c.dom.Element#getAttributeNode(java.lang.String)
+     */
+    public Attr getAttributeNode(String name) {
+        return (this.attributes == null) ? null : (AttrImpl) this.attributes
+                .getNamedItem(name);
+    }
+
+    /**
+     * Retrieves an attribute value by local name and namespace URI.
+     * 
+     * @see org.w3c.dom.Element#getAttributeNS(java.lang.String,
+     *      java.lang.String)
+     */
+    public String getAttributeNS(String namespaceURI, String localName) {
+        if (this.attributes == null) {
+            return "";
+        }
+        Attr attributeNodeNS = this.getAttributeNodeNS(namespaceURI, localName);
+        return attributeNodeNS == null ? "" : attributeNodeNS.getValue();
+    }
+
+    /**
+     * Retrieves an attribute node by local name and namespace URI.
+     * 
+     * @see org.w3c.dom.Element#getAttributeNodeNS(java.lang.String,
+     *      java.lang.String)
+     */
+    public Attr getAttributeNodeNS(String namespaceURI, String localName) {
+
+        if (namespaceURI == OMConstants.XMLNS_NS_URI) {
+            OMNamespace ns = this.findNamespaceURI(localName);
+            AttrImpl namespaceAttr = new AttrImpl(this.ownerNode, localName, ns
+                    .getName());
+            NamespaceImpl xmlNs = new NamespaceImpl(OMConstants.XMLNS_NS_URI);
+            namespaceAttr.setOMNamespace(xmlNs);
+            return namespaceAttr;
+        }
+
+        return (this.attributes == null) ? null : (Attr) this.attributes
+                .getNamedItemNS(namespaceURI, localName);
+
+    }
+
+    /**
+     * Adds a new attribute node.
+     * 
+     * @see org.w3c.dom.Element#setAttributeNode(org.w3c.dom.Attr)
+     */
+    public Attr setAttributeNode(Attr attr) throws DOMException {
+        AttrImpl attrImpl = (AttrImpl) attr;
+
+        if (attrImpl.isOwned()) {// check for ownership
+            if (!this.getOwnerDocument().equals(attr.getOwnerDocument())) {
+                String msg = DOMMessageFormatter.formatMessage(
+                        DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR",
+                        null);
+                throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, msg);
+            }
+        }
+
+        if (this.isReadonly()) {
+            String msg = DOMMessageFormatter.formatMessage(
+                    DOMMessageFormatter.DOM_DOMAIN,
+                    "NO_MODIFICATION_ALLOWED_ERR", null);
+            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
+                    msg);
+        }
+
+        // check whether the attr is in use
+        if (attrImpl.isUsed()) {
+            String msg = DOMMessageFormatter
+                    .formatMessage(DOMMessageFormatter.DOM_DOMAIN,
+                            "INUSE_ATTRIBUTE_ERR", null);
             throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR, msg);
-		}
-		
-		if(attr.getName().startsWith(OMConstants.XMLNS_NS_PREFIX + ":")) {
-			//This is a ns declaration
-			this.declareNamespace(attr.getNodeValue(), DOMUtil.getLocalName(attr.getName()));
-		}
-		if(this.attributes == null) {
-			this.attributes = new AttributeMap(this);
-		}
-
-		return (Attr)this.attributes.setNamedItem(attr);
-
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.w3c.dom.Element#setAttribute(java.lang.String, java.lang.String)
-	 */
-	public void setAttribute(String name, String value) throws DOMException {
-		//Check for invalid charaters
-		if(!DOMUtil.isValidChras(name)) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_CHARACTER_ERR", null);
+        }
+
+        if (attr.getName().startsWith(OMConstants.XMLNS_NS_PREFIX + ":")) {
+            // This is a ns declaration
+            this.declareNamespace(attr.getNodeValue(), DOMUtil
+                    .getLocalName(attr.getName()));
+        }
+        if (this.attributes == null) {
+            this.attributes = new AttributeMap(this);
+        }
+
+        return (Attr) this.attributes.setNamedItem(attr);
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.w3c.dom.Element#setAttribute(java.lang.String, java.lang.String)
+     */
+    public void setAttribute(String name, String value) throws DOMException {
+        // Check for invalid charaters
+        if (!DOMUtil.isValidChras(name)) {
+            String msg = DOMMessageFormatter.formatMessage(
+                    DOMMessageFormatter.DOM_DOMAIN, "INVALID_CHARACTER_ERR",
+                    null);
             throw new DOMException(DOMException.INVALID_CHARACTER_ERR, msg);
-		}
-		if(name.startsWith(OMConstants.XMLNS_NS_PREFIX + ":")) {
-			//This is a ns declaration
-			this.declareNamespace(value, DOMUtil.getLocalName(name));
-		} else {
-			this.setAttributeNode(new AttrImpl(this.ownerNode, name, value));			
-		}
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.w3c.dom.Element#setAttributeNodeNS(org.w3c.dom.Attr)
-	 */
-	public Attr setAttributeNodeNS(Attr attr) throws DOMException {
-
-		//Check whether the attr is a namespace declaration
-		//if so add a namespace NOT an attribute
-		if(attr.getNamespaceURI() != null && attr.getNamespaceURI().equals(OMConstants.XMLNS_NS_URI)) {
-			this.declareNamespace(attr.getName(), attr.getValue());
-			return attr;
-		} else {
-			AttrImpl attrImpl = (AttrImpl)attr;
-	
-			if(attrImpl.isOwned()) {//check for ownership
-				if(!this.getOwnerDocument().equals(attr.getOwnerDocument())) {
-					String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null);
-		            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, msg);
-				}
-			}
-			
-			if(this.isReadonly()) {
-				String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NO_MODIFICATION_ALLOWED_ERR", null);
-	            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, msg);
-			}
-			
-			//check whether the attr is in use
-			if(attrImpl.isUsed()) {
-				String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INUSE_ATTRIBUTE_ERR", null);
-	            throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR, msg);
-			}
-		
-			if(this.attributes == null) {
-				this.attributes = new AttributeMap(this);
-			}
-	
-			//handle the namespaces
-	        if (attr.getNamespaceURI() != null && findNamespace(attr.getNamespaceURI(), attr.getPrefix()) == null) {
-	        	//TODO checkwhether the same ns is declared with a different prefix and remove it
-	        	this.declareNamespace(new NamespaceImpl(attr.getNamespaceURI(),attr.getPrefix()));
-	        }
-			
-			return (Attr)this.attributes.setNamedItemNS(attr);
-		}
-	}
-	
-	/**
-	 * Adds a new attribute.
-	 * @see org.w3c.dom.Element#setAttributeNS(java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public void setAttributeNS(String namespaceURI, String qualifiedName, String value) throws DOMException {
-		
-		if(namespaceURI != null && !"".equals(namespaceURI)) {
-			if(namespaceURI.equals(OMConstants.XMLNS_NS_URI)) {
-				this.declareNamespace(value, DOMUtil.getLocalName(qualifiedName));
-			} else {
-		        AttrImpl attr = new AttrImpl(this.ownerNode, DOMUtil.getLocalName(qualifiedName), value);
-		        attr.setOMNamespace(new NamespaceImpl(namespaceURI, DOMUtil.getPrefix(qualifiedName)));
-		        
-				this.setAttributeNodeNS(attr);
-			}
-		} else {
-			//When the namespace is null, the attr name given better not be
-			//a qualified name
-			//But anyway check and set it
-			this.setAttribute(DOMUtil.getLocalName(qualifiedName), value);
-		}
-
-	}
-
-
-	private OMAttribute addAttribute(String namespaceURI, String qualifiedName, String value) throws DOMException {
-		if(!DOMUtil.isValidChras(qualifiedName)) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "INVALID_CHARACTER_ERR", null);
+        }
+        if (name.startsWith(OMConstants.XMLNS_NS_PREFIX + ":")) {
+            // This is a ns declaration
+            this.declareNamespace(value, DOMUtil.getLocalName(name));
+        } else {
+            this.setAttributeNode(new AttrImpl(this.ownerNode, name, value));
+        }
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.w3c.dom.Element#setAttributeNodeNS(org.w3c.dom.Attr)
+     */
+    public Attr setAttributeNodeNS(Attr attr) throws DOMException {
+
+        // Check whether the attr is a namespace declaration
+        // if so add a namespace NOT an attribute
+        if (attr.getNamespaceURI() != null
+                && attr.getNamespaceURI().equals(OMConstants.XMLNS_NS_URI)) {
+            this.declareNamespace(attr.getName(), attr.getValue());
+            return attr;
+        } else {
+            AttrImpl attrImpl = (AttrImpl) attr;
+
+            if (attrImpl.isOwned()) {// check for ownership
+                if (!this.getOwnerDocument().equals(attr.getOwnerDocument())) {
+                    String msg = DOMMessageFormatter.formatMessage(
+                            DOMMessageFormatter.DOM_DOMAIN,
+                            "WRONG_DOCUMENT_ERR", null);
+                    throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, msg);
+                }
+            }
+
+            if (this.isReadonly()) {
+                String msg = DOMMessageFormatter.formatMessage(
+                        DOMMessageFormatter.DOM_DOMAIN,
+                        "NO_MODIFICATION_ALLOWED_ERR", null);
+                throw new DOMException(
+                        DOMException.NO_MODIFICATION_ALLOWED_ERR, msg);
+            }
+
+            // check whether the attr is in use
+            if (attrImpl.isUsed()) {
+                String msg = DOMMessageFormatter.formatMessage(
+                        DOMMessageFormatter.DOM_DOMAIN, "INUSE_ATTRIBUTE_ERR",
+                        null);
+                throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR, msg);
+            }
+
+            if (this.attributes == null) {
+                this.attributes = new AttributeMap(this);
+            }
+
+            // handle the namespaces
+            if (attr.getNamespaceURI() != null
+                    && findNamespace(attr.getNamespaceURI(), attr.getPrefix()) 
+                    == null) {
+                // TODO checkwhether the same ns is declared with a different
+                // prefix and remove it
+                this.declareNamespace(new NamespaceImpl(attr.getNamespaceURI(),
+                        attr.getPrefix()));
+            }
+
+            return (Attr) this.attributes.setNamedItemNS(attr);
+        }
+    }
+
+    /**
+     * Adds a new attribute.
+     * 
+     * @see org.w3c.dom.Element#setAttributeNS(java.lang.String,
+     *      java.lang.String, java.lang.String)
+     */
+    public void setAttributeNS(String namespaceURI, String qualifiedName,
+            String value) throws DOMException {
+
+        if (namespaceURI != null && !"".equals(namespaceURI)) {
+            if (namespaceURI.equals(OMConstants.XMLNS_NS_URI)) {
+                this.declareNamespace(value, DOMUtil
+                        .getLocalName(qualifiedName));
+            } else {
+                AttrImpl attr = new AttrImpl(this.ownerNode, DOMUtil
+                        .getLocalName(qualifiedName), value);
+                attr.setOMNamespace(new NamespaceImpl(namespaceURI, DOMUtil
+                        .getPrefix(qualifiedName)));
+
+                this.setAttributeNodeNS(attr);
+            }
+        } else {
+            // When the namespace is null, the attr name given better not be
+            // a qualified name
+            // But anyway check and set it
+            this.setAttribute(DOMUtil.getLocalName(qualifiedName), value);
+        }
+
+    }
+
+    private OMAttribute addAttribute(String namespaceURI, String qualifiedName,
+            String value) throws DOMException {
+        if (!DOMUtil.isValidChras(qualifiedName)) {
+            String msg = DOMMessageFormatter.formatMessage(
+                    DOMMessageFormatter.DOM_DOMAIN, "INVALID_CHARACTER_ERR",
+                    null);
             throw new DOMException(DOMException.INVALID_CHARACTER_ERR, msg);
-		}
-		
-		if(this.isReadonly()) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NO_MODIFICATION_ALLOWED_ERR", null);
-            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, msg);
-		}
-		
-		if(this.attributes == null) {
-			this.attributes = new AttributeMap(this);
-		}
-		if(namespaceURI != null) {
-			if(!DOMUtil.isValidNamespace(namespaceURI, qualifiedName)) {
-				String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NAMESPACE_ERR", null);
-	            throw new DOMException(DOMException.NAMESPACE_ERR, msg);			
-			}
-			//Check whether there's an existing Attr with same local name and namespace URI
-			Attr attributeNode = this.getAttributeNodeNS(namespaceURI, DOMUtil.getLocalName(qualifiedName));
-			if(attributeNode != null) {
-				AttrImpl tempAttr = ((AttrImpl)attributeNode);
-				tempAttr.setOMNamespace(new NamespaceImpl(namespaceURI,DOMUtil.getPrefix(qualifiedName)));
-				tempAttr.setAttributeValue(value);
-				this.attributes.setNamedItem(tempAttr);
-				return tempAttr;
-			} else {
-				NamespaceImpl ns = new NamespaceImpl(namespaceURI, DOMUtil.getPrefix(qualifiedName));
-				AttrImpl attr = new AttrImpl((DocumentImpl)this.getOwnerDocument(),DOMUtil.getLocalName(qualifiedName),ns,value);
-				this.attributes.setNamedItem(attr);
-				return attr;
-			}
-		} else {
-			Attr attributeNode = this.getAttributeNode(qualifiedName);
-			if(attributeNode != null) {
-				AttrImpl tempAttr = ((AttrImpl)attributeNode);
-				tempAttr.setAttributeValue(value);
-				this.attributes.setNamedItem(tempAttr);
-				return tempAttr;
-			} else {
-				AttrImpl attr = new AttrImpl((DocumentImpl)this.getOwnerDocument(),qualifiedName,value);
-				this.attributes.setNamedItem(attr);
-				return attr;
-			}
-		}
-	}
-
-	/**
-	 * Returns whether this element contains any attribute or not.
-	 */
+        }
+
+        if (this.isReadonly()) {
+            String msg = DOMMessageFormatter.formatMessage(
+                    DOMMessageFormatter.DOM_DOMAIN,
+                    "NO_MODIFICATION_ALLOWED_ERR", null);
+            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
+                    msg);
+        }
+
+        if (this.attributes == null) {
+            this.attributes = new AttributeMap(this);
+        }
+        if (namespaceURI != null) {
+            if (!DOMUtil.isValidNamespace(namespaceURI, qualifiedName)) {
+                String msg = DOMMessageFormatter.formatMessage(
+                        DOMMessageFormatter.DOM_DOMAIN, "NAMESPACE_ERR", null);
+                throw new DOMException(DOMException.NAMESPACE_ERR, msg);
+            }
+            // Check whether there's an existing Attr with same local name and
+            // namespace URI
+            Attr attributeNode = this.getAttributeNodeNS(namespaceURI, DOMUtil
+                    .getLocalName(qualifiedName));
+            if (attributeNode != null) {
+                AttrImpl tempAttr = ((AttrImpl) attributeNode);
+                tempAttr.setOMNamespace(new NamespaceImpl(namespaceURI, DOMUtil
+                        .getPrefix(qualifiedName)));
+                tempAttr.setAttributeValue(value);
+                this.attributes.setNamedItem(tempAttr);
+                return tempAttr;
+            } else {
+                NamespaceImpl ns = new NamespaceImpl(namespaceURI, DOMUtil
+                        .getPrefix(qualifiedName));
+                AttrImpl attr = new AttrImpl((DocumentImpl) this
+                        .getOwnerDocument(), DOMUtil
+                        .getLocalName(qualifiedName), ns, value);
+                this.attributes.setNamedItem(attr);
+                return attr;
+            }
+        } else {
+            Attr attributeNode = this.getAttributeNode(qualifiedName);
+            if (attributeNode != null) {
+                AttrImpl tempAttr = ((AttrImpl) attributeNode);
+                tempAttr.setAttributeValue(value);
+                this.attributes.setNamedItem(tempAttr);
+                return tempAttr;
+            } else {
+                AttrImpl attr = new AttrImpl((DocumentImpl) this
+                        .getOwnerDocument(), qualifiedName, value);
+                this.attributes.setNamedItem(attr);
+                return attr;
+            }
+        }
+    }
+
+    /**
+     * Returns whether this element contains any attribute or not.
+     */
     public boolean hasAttributes() {
-    	
-    	boolean flag = false;
-    	if(this.attributes != null) {
-    		flag = (this.attributes.getLength() > 0);
-    	}
-    	
-    	if(!flag) {
-    		if(this.namespaces != null) {
-    			flag = !this.namespaces.isEmpty();
-    		} else if(this.namespace != null) {
-    			flag = true;
-    		}
-    	}
-    	
-    	return flag;
-    }
-
-	/* (non-Javadoc)
-	 * @see org.w3c.dom.Element#getElementsByTagNameNS(java.lang.String, java.lang.String)
-	 */
-	public NodeList getElementsByTagNameNS(String namespaceURI, String localName) {
-		return new NodeListImpl(this, namespaceURI, localName);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.w3c.dom.Element#getElementsByTagName(java.lang.String)
-	 */
-	public NodeList getElementsByTagName(String name) {
-		return new NodeListImpl(this, name);
-	}
-	
-	///
-	///OmElement methods
-	///
-
-	/**
-	 * @see org.apache.axis2.om.OMElement#addAttribute(org.apache.axis2.om.OMAttribute)
-	 */
-	public OMAttribute addAttribute(OMAttribute attr) {
+
+        boolean flag = false;
+        if (this.attributes != null) {
+            flag = (this.attributes.getLength() > 0);
+        }
+
+        if (!flag) {
+            if (this.namespaces != null) {
+                flag = !this.namespaces.isEmpty();
+            } else if (this.namespace != null) {
+                flag = true;
+            }
+        }
+
+        return flag;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.w3c.dom.Element#getElementsByTagNameNS(java.lang.String,
+     *      java.lang.String)
+     */
+    public NodeList getElementsByTagNameNS(String namespaceURI, 
+                                            String localName) {
+        return new NodeListImpl(this, namespaceURI, localName);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.w3c.dom.Element#getElementsByTagName(java.lang.String)
+     */
+    public NodeList getElementsByTagName(String name) {
+        return new NodeListImpl(this, name);
+    }
+
+    // /
+    // /OmElement methods
+    // /
+
+    /**
+     * @see org.apache.axis2.om.OMElement#addAttribute
+     * (org.apache.axis2.om.OMAttribute)
+     */
+    public OMAttribute addAttribute(OMAttribute attr) {
         OMNamespace namespace = attr.getNamespace();
-        if ( namespace != null && this.findNamespace(namespace.getName(), namespace.getPrefix()) == null) {
+        if (namespace != null
+                && this.findNamespace(namespace.getName(), namespace
+                        .getPrefix()) == null) {
             this.declareNamespace(namespace.getName(), namespace.getPrefix());
         }
-        
-		if(attr.getNamespace() != null) { //If the attr has a namespace
-			return (AttrImpl)this.setAttributeNode((Attr)attr);
-		} else {
-			return (AttrImpl)this.setAttributeNodeNS((Attr)attr);
-		}
-	}
-
-	/**
-	 * The behaviour of this is the same as org.w3c.dom.Element#setAttributeNS
-	 * @see org.apache.axis2.om.OMElement#addAttribute(java.lang.String, java.lang.String, org.apache.axis2.om.OMNamespace)
-	 */
-	public OMAttribute addAttribute(String attributeName, String value, OMNamespace ns) {
-        if (ns != null && findNamespace(ns.getName(), ns.getPrefix()) != null){
+
+        if (attr.getNamespace() != null) { // If the attr has a namespace
+            return (AttrImpl) this.setAttributeNode((Attr) attr);
+        } else {
+            return (AttrImpl) this.setAttributeNodeNS((Attr) attr);
+        }
+    }
+
+    /**
+     * The behaviour of this is the same as org.w3c.dom.Element#setAttributeNS
+     * 
+     * @see org.apache.axis2.om.OMElement#addAttribute(java.lang.String,
+     *      java.lang.String, org.apache.axis2.om.OMNamespace)
+     */
+    public OMAttribute addAttribute(String attributeName, String value,
+            OMNamespace ns) {
+        if (ns != null && findNamespace(ns.getName(), ns.getPrefix()) != null) {
             declareNamespace(ns);
         }
-        if(ns != null) {
-        	return this.addAttribute(ns.getName(), ns.getPrefix() + ":"
-					+ attributeName, value);
+        if (ns != null) {
+            return this.addAttribute(ns.getName(), ns.getPrefix() + ":"
+                    + attributeName, value);
         } else {
-        	return this.addAttribute(null,attributeName,value);
+            return this.addAttribute(null, attributeName, value);
         }
 
-	}
+    }
 
-	/**
-	 * Allows overriding an existing declaration if the same prefix was used.
-	 * @see org.apache.axis2.om.OMElement#declareNamespace(org.apache.axis2.om.OMNamespace)
-	 */
-	public OMNamespace declareNamespace(OMNamespace namespace) {
+    /**
+     * Allows overriding an existing declaration if the same prefix was used.
+     * 
+     * @see org.apache.axis2.om.OMElement#declareNamespace
+     * (org.apache.axis2.om.OMNamespace)
+     */
+    public OMNamespace declareNamespace(OMNamespace namespace) {
         if (namespaces == null) {
             this.namespaces = new HashMap(5);
         }
-        if(namespace != null && (namespace.getPrefix() != null || "".equals(namespace.getPrefix()))) {
-        	if(!namespace.getPrefix().startsWith(OMConstants.XMLNS_NS_PREFIX)) {
-        		namespaces.put(namespace.getPrefix(), namespace);
-        	}
+        if (namespace != null
+                && (namespace.getPrefix() != null || "".equals(namespace
+                        .getPrefix()))) {
+            if (!namespace.getPrefix().startsWith(OMConstants.XMLNS_NS_PREFIX)) {
+                namespaces.put(namespace.getPrefix(), namespace);
+            }
         }
         return namespace;
-	}
+    }
 
-	/**
-	 * Allows overriding an existing declaration if the same prefix was used.
-	 * @see org.apache.axis2.om.OMElement#declareNamespace(java.lang.String, java.lang.String)
-	 */
-	public OMNamespace declareNamespace(String uri, String prefix) {
+    /**
+     * Allows overriding an existing declaration if the same prefix was used.
+     * 
+     * @see org.apache.axis2.om.OMElement#declareNamespace(java.lang.String,
+     *      java.lang.String)
+     */
+    public OMNamespace declareNamespace(String uri, String prefix) {
         NamespaceImpl ns = new NamespaceImpl(uri, prefix);
         return declareNamespace(ns);
-	}
+    }
 
-	/**
-	 * @see org.apache.axis2.om.OMElement#findNamespace(java.lang.String, java.lang.String)
-	 */
-	public OMNamespace findNamespace(String uri, String prefix) {
+    /**
+     * @see org.apache.axis2.om.OMElement#findNamespace(java.lang.String,
+     *      java.lang.String)
+     */
+    public OMNamespace findNamespace(String uri, String prefix) {
 
         // check in the current element
         OMNamespace namespace = findDeclaredNamespace(uri, prefix);
@@ -593,11 +707,12 @@
 
         // go up to check with ancestors
         if (this.parentNode != null) {
-            //For the OMDocumentImpl there won't be any explicit namespace
-            //declarations, so going up the parent chain till the document
-            //element should be enough.
+            // For the OMDocumentImpl there won't be any explicit namespace
+            // declarations, so going up the parent chain till the document
+            // element should be enough.
             if (parentNode instanceof OMElement) {
-                namespace = ((ElementImpl) parentNode).findNamespace(uri, prefix);
+                namespace = ((ElementImpl) parentNode).findNamespace(uri,
+                        prefix);
             }
         }
 
@@ -608,7 +723,7 @@
             namespace = findNamespace(uri, prefix);
         }
         return namespace;
-	}
+    }
 
     public OMNamespace findNamespaceURI(String prefix) {
         OMNamespace ns = (OMNamespace) this.namespaces.get(prefix);
@@ -620,30 +735,32 @@
     }
 
     /**
-     * Checks for the namespace <B>only</B> in the current Element.
-     * This can also be used to retrieve the prefix of a known namespace URI.
+     * Checks for the namespace <B>only</B> in the current Element. This can
+     * also be used to retrieve the prefix of a known namespace URI.
      */
     private OMNamespace findDeclaredNamespace(String uri, String prefix) {
-    	
-    	if(uri == null) {
-    		return null;
-    	}
-    	//If the prefix is available and uri is available and its the xml namespace
-    	if(prefix != null && prefix.equals(OMConstants.XMLNS_PREFIX) && uri.equals(OMConstants.XMLNS_URI)) {
-    		return new NamespaceImpl(uri, prefix);
-    	}
-    	
-    	if (namespaces == null) {
+
+        if (uri == null) {
+            return null;
+        }
+        // If the prefix is available and uri is available and its the xml
+        // namespace
+        if (prefix != null && prefix.equals(OMConstants.XMLNS_PREFIX)
+                && uri.equals(OMConstants.XMLNS_URI)) {
+            return new NamespaceImpl(uri, prefix);
+        }
+
+        if (namespaces == null) {
             return null;
         }
-    	   
+
         if (prefix == null || "".equals(prefix)) {
             Iterator namespaceListIterator = namespaces.values().iterator();
             while (namespaceListIterator.hasNext()) {
-                OMNamespace omNamespace =
-                        (OMNamespace) namespaceListIterator.next();
-                if (omNamespace.getName() != null &&
-                        omNamespace.getName().equals(uri)) {
+                OMNamespace omNamespace = (OMNamespace) namespaceListIterator
+                        .next();
+                if (omNamespace.getName() != null
+                        && omNamespace.getName().equals(uri)) {
                     return omNamespace;
                 }
             }
@@ -653,49 +770,58 @@
             if (namespace != null && uri.equalsIgnoreCase(namespace.getName())) {
                 return namespace;
             } else {
-            	return null;
+                return null;
             }
         }
     }
-    
-	/**
-	 * Returns a named attribute if present.
-	 * @see org.apache.axis2.om.OMElement#getAttribute(javax.xml.namespace.QName)
-	 */
-	public OMAttribute getAttribute(QName qname) {
-		if(this.attributes == null) {
-			return null;
-		}
-		
-		if(qname.getNamespaceURI() == null || qname.getNamespaceURI().equals("")){
-			return (AttrImpl)this.getAttributeNode(qname.getLocalPart());
-		} else {
-			return (AttrImpl)this.getAttributeNodeNS(qname.getNamespaceURI(), qname.getLocalPart());
-		}
-	}
-
-   /**
-    * Returns a named attribute's value, if present.
-    *
-    * @param qname the qualified name to search for
-    * @return Returns a String containing the attribute value, or null.
-    */
-   public String getAttributeValue(QName qname) {
-       OMAttribute attr = getAttribute(qname);
+
+    /**
+     * Returns a named attribute if present.
+     * 
+     * @see org.apache.axis2.om.OMElement#getAttribute
+     * (javax.xml.namespace.QName)
+     */
+    public OMAttribute getAttribute(QName qname) {
+        if (this.attributes == null) {
+            return null;
+        }
+
+        if (qname.getNamespaceURI() == null
+                || qname.getNamespaceURI().equals("")) {
+            return (AttrImpl) this.getAttributeNode(qname.getLocalPart());
+        } else {
+            return (AttrImpl) this.getAttributeNodeNS(qname.getNamespaceURI(),
+                    qname.getLocalPart());
+        }
+    }
+
+    /**
+     * Returns a named attribute's value, if present.
+     * 
+     * @param qname
+     *            the qualified name to search for
+     * @return Returns a String containing the attribute value, or null.
+     */
+    public String getAttributeValue(QName qname) {
+        OMAttribute attr = getAttribute(qname);
         return (attr == null) ? null : attr.getAttributeValue();
     }
-   /* (non-Javadoc)
-   * @see org.apache.axis2.om.OMElement#getBuilder()
-   */
-	public OMXMLParserWrapper getBuilder() {
-		return this.builder;
-	}
-
-	/**
-	 * Returns the first Element node.
-	 * @see org.apache.axis2.om.OMElement#getFirstElement()
-	 */
-	public OMElement getFirstElement() {
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.axis2.om.OMElement#getBuilder()
+     */
+    public OMXMLParserWrapper getBuilder() {
+        return this.builder;
+    }
+
+    /**
+     * Returns the first Element node.
+     * 
+     * @see org.apache.axis2.om.OMElement#getFirstElement()
+     */
+    public OMElement getFirstElement() {
         OMNode node = getFirstOMChild();
         while (node != null) {
             if (node.getType() == Node.ELEMENT_NODE) {
@@ -705,25 +831,28 @@
             }
         }
         return null;
-	}
+    }
+
+    /**
+     * Returns the namespace of this element.
+     * 
+     * @see org.apache.axis2.om.OMElement#getNamespace()
+     */
+    public OMNamespace getNamespace() throws OMException {
+        return this.namespace;
+    }
 
-	/**
-	 * Returns the namespace of this element.
-	 * @see org.apache.axis2.om.OMElement#getNamespace()
-	 */
-	public OMNamespace getNamespace() throws OMException {
-		return this.namespace;
-	}
-
-	/**
-	 * Returns the QName of this element.
-	 * @see org.apache.axis2.om.OMElement#getQName()
-	 */
-	public QName getQName() {
+    /**
+     * Returns the QName of this element.
+     * 
+     * @see org.apache.axis2.om.OMElement#getQName()
+     */
+    public QName getQName() {
         QName qName;
         if (namespace != null) {
             if (namespace.getPrefix() != null) {
-                qName = new QName(namespace.getName(), this.localName, namespace.getPrefix());
+                qName = new QName(namespace.getName(), this.localName,
+                        namespace.getPrefix());
             } else {
                 qName = new QName(namespace.getName(), this.localName);
             }
@@ -731,108 +860,121 @@
             qName = new QName(this.localName);
         }
         return qName;
-	}
+    }
+
+    /**
+     * Gets all the text children and concatinates them to a single string.
+     * 
+     * @see org.apache.axis2.om.OMElement#getText()
+     */
+    public String getText() {
+        String childText = "";
+        OMNode child = this.getFirstOMChild();
+        OMText textNode;
+
+        while (child != null) {
+            if (child.getType() == Node.TEXT_NODE) {
+                textNode = (OMText) child;
+                if (textNode.getText() != null
+                        && !"".equals(textNode.getText())) {
+                    childText += textNode.getText();
+                }
+            }
+            child = child.getNextOMSibling();
+        }
 
+        return childText;
+    }
 
+    /**
+     * Removes an attribute from the element.
+     * 
+     * @see org.apache.axis2.om.OMElement#removeAttribute
+     * (org.apache.axis2.om.OMAttribute)
+     */
+    public void removeAttribute(OMAttribute attr) {
+        this.removeAttributeNode((AttrImpl) attr);
+    }
 
     /**
-	 * Gets all the text children and concatinates them to a single string.
-	 * @see org.apache.axis2.om.OMElement#getText()
-	 */
-	public String getText() {
-		String childText = "";
-		OMNode child = this.getFirstOMChild();
-		OMText textNode;
-
-		while (child != null) {
-			if (child.getType() == Node.TEXT_NODE) {
-				textNode = (OMText) child;
-				if (textNode.getText() != null
-						&& !"".equals(textNode.getText())) {
-					childText += textNode.getText();
-				}
-			}
-			child = child.getNextOMSibling();
-		}
-
-		return childText;
-	}
-
-	/**
-	 * Removes an attribute from the element.
-	 * 
-	 * @see org.apache.axis2.om.OMElement#removeAttribute(org.apache.axis2.om.OMAttribute)
-	 */
-	public void removeAttribute(OMAttribute attr) {
-		this.removeAttributeNode((AttrImpl)attr);
-	}
-
-	/**
-	 * Sets the OM builder.
-	 * @see org.apache.axis2.om.OMElement#setBuilder(org.apache.axis2.om.OMXMLParserWrapper)
-	 */
-	public void setBuilder(OMXMLParserWrapper wrapper) {
-		this.builder = wrapper;
-	}
-
-	/**
-	 * Sets the local name.
-	 * @see org.apache.axis2.om.OMElement#setLocalName(java.lang.String)
-	 */
-	public void setLocalName(String localName) {
-		this.localName = localName;
-	}
-
-	/**
-	 * Sets the namespace.
-	 * @see org.apache.axis2.om.OMElement#setNamespace(org.apache.axis2.om.OMNamespace)
-	 */
-	public void setNamespace(OMNamespace namespace) {
-			this.namespace = namespace;
-	}
-
-	/**
-	 * Creates a text node with the given value and adds it to the element.
-	 * @see org.apache.axis2.om.OMElement#setText(java.lang.String)
-	 */
-	public void setText(String text) {
-		if(this.isReadonly()) {
-			String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NO_MODIFICATION_ALLOWED_ERR", null);
-            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, msg);
-		}
-		
-		//if we already have other text nodes remove them
-		OMNode child = this.getFirstOMChild();
-		while (child != null) {
+     * Sets the OM builder.
+     * 
+     * @see org.apache.axis2.om.OMElement#setBuilder
+     * (org.apache.axis2.om.OMXMLParserWrapper)
+     */
+    public void setBuilder(OMXMLParserWrapper wrapper) {
+        this.builder = wrapper;
+    }
+
+    /**
+     * Sets the local name.
+     * 
+     * @see org.apache.axis2.om.OMElement#setLocalName(java.lang.String)
+     */
+    public void setLocalName(String localName) {
+        this.localName = localName;
+    }
+
+    /**
+     * Sets the namespace.
+     * 
+     * @see org.apache.axis2.om.OMElement#setNamespace
+     * (org.apache.axis2.om.OMNamespace)
+     */
+    public void setNamespace(OMNamespace namespace) {
+        this.namespace = namespace;
+    }
+
+    /**
+     * Creates a text node with the given value and adds it to the element.
+     * 
+     * @see org.apache.axis2.om.OMElement#setText(java.lang.String)
+     */
+    public void setText(String text) {
+        if (this.isReadonly()) {
+            String msg = DOMMessageFormatter.formatMessage(
+                    DOMMessageFormatter.DOM_DOMAIN,
+                    "NO_MODIFICATION_ALLOWED_ERR", null);
+            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
+                    msg);
+        }
+
+        // if we already have other text nodes remove them
+        OMNode child = this.getFirstOMChild();
+        while (child != null) {
             if (child.getType() == OMNode.TEXT_NODE) {
                 child.detach();
             }
             child = child.getNextOMSibling();
-		}
-		
-		TextImpl textNode = (TextImpl)((DocumentImpl)this.ownerNode).createTextNode(text);
-		this.addChild(textNode);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.apache.axis2.om.OMNode#serialize(org.apache.axis2.om.OMOutput)
-	 */
-	public void serialize(OMOutputImpl omOutput) throws XMLStreamException {
-		serialize(omOutput, true);
-	}
-
-	public void serializeAndConsume(OMOutputImpl omOutput) throws XMLStreamException {
-		this.serialize(omOutput, false);
-	}
-	
-	
-    protected void serialize(org.apache.axis2.om.impl.OMOutputImpl omOutput, boolean cache) throws XMLStreamException {
+        }
+
+        TextImpl textNode = (TextImpl) ((DocumentImpl) this.ownerNode)
+                .createTextNode(text);
+        this.addChild(textNode);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.axis2.om.OMNode#serialize(org.apache.axis2.om.OMOutput)
+     */
+    public void serialize(OMOutputImpl omOutput) throws XMLStreamException {
+        serialize(omOutput, true);
+    }
+
+    public void serializeAndConsume(OMOutputImpl omOutput)
+            throws XMLStreamException {
+        this.serialize(omOutput, false);
+    }
+
+    protected void serialize(org.apache.axis2.om.impl.OMOutputImpl omOutput,
+            boolean cache) throws XMLStreamException {
 
         if (cache) {
-            //in this case we don't care whether the elements are built or not
-            //we just call the serializeAndConsume methods
+            // in this case we don't care whether the elements are built or not
+            // we just call the serializeAndConsume methods
             OMSerializerUtil.serializeStartpart(this, omOutput);
-            //serilize children
+            // serilize children
             Iterator children = this.getChildren();
             while (children.hasNext()) {
                 ((OMNodeEx) children.next()).serialize(omOutput);
@@ -840,50 +982,56 @@
             OMSerializerUtil.serializeEndpart(omOutput);
 
         } else {
-            //Now the caching is supposed to be off. However caching been switched off
-            //has nothing to do if the element is already built!
+            // Now the caching is supposed to be off. However caching been
+            // switched off
+            // has nothing to do if the element is already built!
             if (this.done) {
                 OMSerializerUtil.serializeStartpart(this, omOutput);
                 ChildNode child = this.firstChild;
-                while(child != null && ((!(child instanceof OMElement)) || child.isComplete())) {
+                while (child != null
+                        && ((!(child instanceof OMElement)) || child
+                                .isComplete())) {
                     child.serializeAndConsume(omOutput);
                     child = child.nextSibling;
                 }
-                if(child != null) {
+                if (child != null) {
                     OMElement element = (OMElement) child;
                     element.getBuilder().setCache(false);
-                    OMSerializerUtil.serializeByPullStream(element, omOutput, cache);
+                    OMSerializerUtil.serializeByPullStream(element, omOutput,
+                            cache);
                 }
                 OMSerializerUtil.serializeEndpart(omOutput);
             } else {
-                //take the XMLStream reader and feed it to the stream serilizer.
-                //todo is this right ?????
+                // take the XMLStream reader and feed it to the stream
+                // serilizer.
+                // todo is this right ?????
                 OMSerializerUtil.serializeByPullStream(this, omOutput, cache);
             }
 
-
         }
     }
-	
-	
-	/* (non-Javadoc)
-	 * @see org.apache.axis2.om.OMElement#getXMLStreamReaderWithoutCaching()
-	 */
-	public XMLStreamReader getXMLStreamReaderWithoutCaching() {
-		return getXMLStreamReader(false);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.apache.axis2.om.OMElement#getXMLStreamReader()
-	 */
-	public XMLStreamReader getXMLStreamReader() {
-		return getXMLStreamReader(true);
-	}
-	
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.axis2.om.OMElement#getXMLStreamReaderWithoutCaching()
+     */
+    public XMLStreamReader getXMLStreamReaderWithoutCaching() {
+        return getXMLStreamReader(false);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.axis2.om.OMElement#getXMLStreamReader()
+     */
+    public XMLStreamReader getXMLStreamReader() {
+        return getXMLStreamReader(true);
+    }
 
     /**
      * getXMLStreamReader
-     *
+     * 
      * @return Returns reader.
      */
     private XMLStreamReader getXMLStreamReader(boolean cache) {
@@ -897,87 +1045,93 @@
         }
         return new DOMStAXWrapper(builder, this, cache);
     }
-    
-	
+
     public String toStringWithConsume() throws XMLStreamException {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         this.serializeAndConsume(baos);
         return new String(baos.toByteArray());
     }
-    
+
     /**
      * Overridden toString() for ease of debugging.
+     * 
      * @see java.lang.Object#toString()
      */
     public String toString() {
-    	return (this.namespace != null)? namespace.getPrefix() + ":" + this.localName :"" + this.localName;
+        return (this.namespace != null) ? namespace.getPrefix() + ":"
+                + this.localName : "" + this.localName;
     }
-	/* (non-Javadoc)
-	 * @see org.apache.axis2.om.OMElement#getChildElements()
-	 */
-	public Iterator getChildElements() {
-		return new OMChildElementIterator(getFirstElement());
-	}
-	
-	/**
-	 * @see org.apache.axis2.om.OMElement#getAllDeclaredNamespaces()
-	 */
-	public Iterator getAllDeclaredNamespaces() throws OMException {
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.axis2.om.OMElement#getChildElements()
+     */
+    public Iterator getChildElements() {
+        return new OMChildElementIterator(getFirstElement());
+    }
+
+    /**
+     * @see org.apache.axis2.om.OMElement#getAllDeclaredNamespaces()
+     */
+    public Iterator getAllDeclaredNamespaces() throws OMException {
         if (namespaces == null) {
             return null;
         }
         return namespaces.values().iterator();
-	}
-	
-	/**
-	 * @see org.apache.axis2.om.OMElement#getAllAttributes()
-	 */
-	public Iterator getAllAttributes() {
+    }
+
+    /**
+     * @see org.apache.axis2.om.OMElement#getAllAttributes()
+     */
+    public Iterator getAllAttributes() {
         if (attributes == null) {
             return new EmptyIterator();
         }
         ArrayList list = new ArrayList();
         for (int i = 0; i < attributes.getLength(); i++) {
-        	list.add(attributes.getItem(i));
+            list.add(attributes.getItem(i));
         }
-        
+
         return list.iterator();
-	}
-	
-	/**
-	 * Returns the local name of this element node
-	 * @see org.w3c.dom.Node#getLocalName()
-	 */
-    public String getLocalName()
-    {
-    	return this.localName;
     }
-    
+
+    /**
+     * Returns the local name of this element node
+     * 
+     * @see org.w3c.dom.Node#getLocalName()
+     */
+    public String getLocalName() {
+        return this.localName;
+    }
+
     /**
      * Returns the namespace prefix of this element node
+     * 
      * @see org.w3c.dom.Node#getPrefix()
      */
-    public String getPrefix()
-    {
-    	//TODO Error checking
-        return (this.namespace == null)?null:this.namespace.getPrefix();
-    }
-
-	/**
-	 * @see org.apache.axis2.om.impl.dom.NodeImpl#setOwnerDocument(org.apache.axis2.om.impl.dom.DocumentImpl)
-	 */
-	protected void setOwnerDocument(DocumentImpl document) {
-		this.ownerNode = document;
-		this.isOwned(true);
-		if(document.firstChild == null)
-			document.firstChild = this;
-	}
-
-    /**
-     * Turn a prefix:local qname string into a proper QName, evaluating it in the OMElement context
-     * unprefixed qnames resolve to the local namespace
-     *
-     * @param qname prefixed qname string to resolve
+    public String getPrefix() {
+        // TODO Error checking
+        return (this.namespace == null) ? null : this.namespace.getPrefix();
+    }
+
+    /**
+     * @see org.apache.axis2.om.impl.dom.NodeImpl#setOwnerDocument
+     * (org.apache.axis2.om.impl.dom.DocumentImpl)
+     */
+    protected void setOwnerDocument(DocumentImpl document) {
+        this.ownerNode = document;
+        this.isOwned(true);
+        if (document.firstChild == null)
+            document.firstChild = this;
+    }
+
+    /**
+     * Turn a prefix:local qname string into a proper QName, evaluating it in
+     * the OMElement context unprefixed qnames resolve to the local namespace
+     * 
+     * @param qname
+     *            prefixed qname string to resolve
      * @return Returns null for any failure to extract a qname.
      */
     public QName resolveQName(String qname) {
@@ -987,138 +1141,143 @@
 
     /**
      * Creates a clone which belongs to a new document.
+     * 
      * @see org.apache.axis2.om.OMElement#cloneOMElement()
      */
     public OMElement cloneOMElement() {
-		ElementImpl elem = (ElementImpl)(new StAXOMBuilder(new OMDOMFactory(), this.getXMLStreamReader(true))).getDocumentElement();
-		return elem;
+        ElementImpl elem = (ElementImpl) (new StAXOMBuilder(new OMDOMFactory(),
+                this.getXMLStreamReader(true))).getDocumentElement();
+        return elem;
     }
 
     public Node cloneNode(boolean deep) {
 
-    	ElementImpl newnode = (ElementImpl) super.cloneNode(deep);
-    	// Replicate NamedNodeMap rather than sharing it.
+        ElementImpl newnode = (ElementImpl) super.cloneNode(deep);
+        // Replicate NamedNodeMap rather than sharing it.
         if (attributes != null) {
             newnode.attributes = (AttributeMap) attributes.cloneMap(newnode);
         }
-    	return newnode;
+        return newnode;
 
     }
-    
+
     /**
-     * Returns the set of attributes of this node and the namespace 
-     * declarations available.
+     * Returns the set of attributes of this node and the namespace declarations
+     * available.
      */
     public NamedNodeMap getAttributes() {
-    	AttributeMap attributeMap =  new AttributeMap(this);
-    	
-    	//Add the set of existing attrs
-    	for(int i = 0; i < this.attributes.getLength(); i++) {
-        	attributeMap.addItem((Attr)this.attributes.getItem(i));
-    	}
-    	
-    	//Add the NS declarations
-    	if(this.namespaces != null) {
-	    	Iterator nsDecls = this.namespaces.keySet().iterator();
-			while (nsDecls.hasNext()) {
-				String prefix = (String) nsDecls.next();
-				if(prefix != null && !"".equals(prefix) && !prefix.equals(OMConstants.XMLNS_NS_PREFIX)){
-					OMNamespace ns = (OMNamespace) this.namespaces.get(prefix);
-					AttrImpl attr = new AttrImpl(this.ownerNode, prefix, ns
-							.getName());
-					attr.setOMNamespace(new NamespaceImpl(
-							OMConstants.XMLNS_NS_URI,
-							OMConstants.XMLNS_NS_PREFIX));
-					attributeMap.addItem(attr);
-				}
-			}
-			
-			//Set the default NS attr if any
-			if (this.namespace != null
-					&& (this.namespace.getPrefix() == null || ""
-							.equals(this.namespace.getPrefix()))
-					&& this.namespace.getName() != null) {
-
-				//check if the parent of this element has the same namespace
-				// as the default and if NOT add the attr
-				if(this.parentNode.getNamespaceURI() != this.getNamespaceURI()) {
-					AttrImpl attr = new AttrImpl(this.ownerNode, "xmlns",
-							this.namespace.getName());
-					attributeMap.addItem(attr);
-				}
-			}
-    	}
-    	
-    	return attributeMap;
+        AttributeMap attributeMap = new AttributeMap(this);
+
+        // Add the set of existing attrs
+        for (int i = 0; i < this.attributes.getLength(); i++) {
+            attributeMap.addItem((Attr) this.attributes.getItem(i));
+        }
+
+        // Add the NS declarations
+        if (this.namespaces != null) {
+            Iterator nsDecls = this.namespaces.keySet().iterator();
+            while (nsDecls.hasNext()) {
+                String prefix = (String) nsDecls.next();
+                if (prefix != null && !"".equals(prefix)
+                        && !prefix.equals(OMConstants.XMLNS_NS_PREFIX)) {
+                    OMNamespace ns = (OMNamespace) this.namespaces.get(prefix);
+                    AttrImpl attr = new AttrImpl(this.ownerNode, prefix, ns
+                            .getName());
+                    attr.setOMNamespace(new NamespaceImpl(
+                            OMConstants.XMLNS_NS_URI,
+                            OMConstants.XMLNS_NS_PREFIX));
+                    attributeMap.addItem(attr);
+                }
+            }
+
+            // Set the default NS attr if any
+            if (this.namespace != null
+                    && (this.namespace.getPrefix() == null || ""
+                            .equals(this.namespace.getPrefix()))
+                    && this.namespace.getName() != null) {
+
+                // check if the parent of this element has the same namespace
+                // as the default and if NOT add the attr
+                if (this.parentNode.getNamespaceURI() != this.getNamespaceURI()) {
+                    AttrImpl attr = new AttrImpl(this.ownerNode, "xmlns",
+                            this.namespace.getName());
+                    attributeMap.addItem(attr);
+                }
+            }
+        }
+
+        return attributeMap;
     }
-    
+
     /**
-     * Returns the namespace uri, given the prefix. If it is not found at this 
+     * Returns the namespace uri, given the prefix. If it is not found at this
      * element, searches the parent.
+     * 
      * @param prefix
      * @return Returns namespace.
      */
     public String getNamespaceURI(String prefix) {
-    	OMNamespace ns = this.findNamespaceURI(prefix);
-    	return (ns != null) ? ns.getName() : null;
+        OMNamespace ns = this.findNamespaceURI(prefix);
+        return (ns != null) ? ns.getName() : null;
     }
-    
+
     /**
      * Removes a declared namespace given its prefix.
+     * 
      * @param prefix
-     * @return Returns whether the namespace relevant to the 
-     * given prefix was removed or not
+     * @return Returns whether the namespace relevant to the given prefix was
+     *         removed or not
      */
     public boolean removeNamespace(String prefix) {
-    	Object ns = this.namespaces.get(prefix);
-    	if(ns != null) {
-    		this.namespaces.remove(ns);
-    		return true;
-    	} else {
-    		return false;
-    	}
+        Object ns = this.namespaces.get(prefix);
+        if (ns != null) {
+            this.namespaces.remove(ns);
+            return true;
+        } else {
+            return false;
+        }
     }
-    
-    
+
     public OMNode getNextOMSibling() throws OMException {
         while (!done) {
             int token = builder.next();
-            if(token == XMLStreamConstants.END_DOCUMENT) {
+            if (token == XMLStreamConstants.END_DOCUMENT) {
                 throw new OMException();
             }
         }
         return super.getNextOMSibling();
     }
-    
-	public void discard() throws OMException {
+
+    public void discard() throws OMException {
         if (done) {
             this.detach();
         } else {
             builder.discard(this);
         }
-	}    
-	
-	/*
-	 * DOM-Level 3 methods
-	 */
-
-	public TypeInfo getSchemaTypeInfo() {
-		// TODO TODO
-		throw new UnsupportedOperationException("TODO");
-	}
-
-	public void setIdAttribute(String arg0, boolean arg1) throws DOMException {
-		// TODO TODO
-		throw new UnsupportedOperationException("TODO");
-	}
-
-	public void setIdAttributeNode(Attr arg0, boolean arg1) throws DOMException {
-		// TODO TODO
-		throw new UnsupportedOperationException("TODO");
-	}
-
-	public void setIdAttributeNS(String arg0, String arg1, boolean arg2) throws DOMException {
-		// TODO TODO
-		throw new UnsupportedOperationException("TODO");
-	}
+    }
+
+    /*
+     * DOM-Level 3 methods
+     */
+
+    public TypeInfo getSchemaTypeInfo() {
+        // TODO TODO
+        throw new UnsupportedOperationException("TODO");
+    }
+
+    public void setIdAttribute(String arg0, boolean arg1) throws DOMException {
+        // TODO TODO
+        throw new UnsupportedOperationException("TODO");
+    }
+
+    public void setIdAttributeNode(Attr arg0, boolean arg1) throws DOMException {
+        // TODO TODO
+        throw new UnsupportedOperationException("TODO");
+    }
+
+    public void setIdAttributeNS(String arg0, String arg1, boolean arg2)
+            throws DOMException {
+        // TODO TODO
+        throw new UnsupportedOperationException("TODO");
+    }
 }