You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2005/07/11 21:38:52 UTC

svn commit: r210189 - /webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXBuilder.java

Author: dims
Date: Mon Jul 11 12:38:51 2005
New Revision: 210189

URL: http://svn.apache.org/viewcvs?rev=210189&view=rev
Log:
do the right thing for built-in namespaces.


Modified:
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXBuilder.java

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXBuilder.java?rev=210189&r1=210188&r2=210189&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXBuilder.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXBuilder.java Mon Jul 11 12:38:51 2005
@@ -25,6 +25,7 @@
 import org.apache.axis2.om.OMXMLParserWrapper;
 import org.apache.axis2.om.impl.llom.OMElementImpl;
 import org.apache.axis2.om.impl.llom.OMNodeImpl;
+import org.apache.axis2.om.impl.llom.OMNamespaceImpl;
 
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamReader;
@@ -35,6 +36,12 @@
  */
 public abstract class StAXBuilder implements OMXMLParserWrapper {
 
+    private static final String XMLNS_URI =
+        "http://www.w3.org/XML/1998/namespace";
+
+    private static final String XMLNS_PREFIX =
+        "xml";
+
     /**
      * Field parser
      */
@@ -123,11 +130,16 @@
         for (int i = 0; i < attribCount; i++) {
             OMNamespace ns = null;
             String uri = parser.getAttributeNamespace(i);
+            String prefix = parser.getAttributePrefix(i);
             if (uri.hashCode() != 0) {
-                ns = node.findNamespace(uri,
-                        parser.getAttributePrefix(i));
+                ns = node.findNamespace(uri, prefix);
+            }
+            if (ns == null && prefix != null && uri != null
+                    && prefix.equals(XMLNS_PREFIX)
+                    && uri.equals(XMLNS_URI)) {
+                node.declareNamespace(XMLNS_URI, XMLNS_PREFIX);
+                ns = node.findNamespace(uri, prefix);
             }
-
             // todo if the attributes are supposed to namespace qualified all the time
             // todo then this should throw an exception here
             node.addAttribute(parser.getAttributeLocalName(i),