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/08/29 04:02:25 UTC

svn commit: r263992 - in /webservices/axis/trunk/java/modules/xml/src/org/apache/axis2: om/impl/llom/ om/impl/llom/builder/ soap/impl/llom/ soap/impl/llom/builder/

Author: dims
Date: Sun Aug 28 19:02:21 2005
New Revision: 263992

URL: http://svn.apache.org/viewcvs?rev=263992&view=rev
Log:
- Better handling for the pre-defined "xml" namespace.
- Better handling of nulls returned by getNamespaceURI in sjsxp parser.

NOTE: there are still a few more failures in sjsxp, am working on it.


Modified:
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/builder/StAXBuilder.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/SOAPConstants.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/SOAPBuilderHelper.java

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java?rev=263992&r1=263991&r2=263992&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java Sun Aug 28 19:02:21 2005
@@ -20,6 +20,7 @@
 import org.apache.axis2.om.impl.llom.traverse.OMChildrenIterator;
 import org.apache.axis2.om.impl.llom.traverse.OMChildrenQNameIterator;
 import org.apache.axis2.om.impl.llom.util.EmptyIterator;
+import org.apache.axis2.soap.impl.llom.SOAPConstants;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
@@ -288,7 +289,7 @@
      *
      * @throws OMException
      */
-    public OMNamespace findNamespace(String uri, String prefix)
+    public OMNamespace  findNamespace(String uri, String prefix)
             throws OMException {
 
         // check in the current element
@@ -303,10 +304,17 @@
             //declarations, so going up the parent chain till the document
             //element should be enough.
             if (parent instanceof OMElement) {
-                return ((OMElementImpl) parent).findNamespace(uri, prefix);
+                namespace = ((OMElementImpl) parent).findNamespace(uri, prefix);
             }
         }
-        return null;
+
+        if (namespace == null && uri != null && prefix != null
+                && prefix.equals(SOAPConstants.XMLNS_PREFIX)
+                && uri.equals(SOAPConstants.XMLNS_URI)) {
+            declareNamespace(SOAPConstants.XMLNS_URI, SOAPConstants.XMLNS_PREFIX);
+            namespace = findNamespace(uri, prefix);
+        }
+        return namespace;
     }
 
     /**

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java?rev=263992&r1=263991&r2=263992&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMSerializerUtil.java Sun Aug 28 19:02:21 2005
@@ -118,27 +118,19 @@
                     writer.writeStartElement(nameSpaceName,
                             element.getLocalName());
                 } else {
-                    if (prefix != null) {
-                        writer.writeStartElement(prefix, element.getLocalName(),
-                                nameSpaceName);
-                        writer.writeNamespace(prefix, nameSpaceName);
-                        writer.setPrefix(prefix, nameSpaceName);
-                    } else {
-                        writer.writeStartElement(nameSpaceName,
-                                element.getLocalName());
-                        writer.writeDefaultNamespace(nameSpaceName);
-                        writer.setDefaultNamespace(nameSpaceName);
+                    if (prefix == null) {
+                        prefix = "";
                     }
+                    writer.writeStartElement(prefix, element.getLocalName(),
+                            nameSpaceName);
+                    writer.writeNamespace(prefix, nameSpaceName);
+                    writer.setPrefix(prefix, nameSpaceName);
                 }
             } else {
                 writer.writeStartElement(element.getLocalName());
-//                throw new OMException(
-//                        "Non namespace qualified elements are not allowed");
             }
         } else {
             writer.writeStartElement(element.getLocalName());
-//            throw new OMException(
-//                    "Non namespace qualified elements are not allowed");
         }
 
         // add the elements attributes
@@ -209,8 +201,5 @@
             streamingOMSerializer.serialize(element.getXMLStreamReaderWithoutCaching(),
                 omOutput);
         }
-
-
-        return;
     }
 }

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=263992&r1=263991&r2=263992&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 Sun Aug 28 19:02:21 2005
@@ -16,6 +16,7 @@
 package org.apache.axis2.om.impl.llom.builder;
 
 import org.apache.axis2.om.*;
+import org.apache.axis2.soap.impl.llom.SOAPConstants;
 
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamReader;
@@ -26,12 +27,6 @@
  */
 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
      */
@@ -124,13 +119,7 @@
             OMNamespace ns = null;
             String uri = parser.getAttributeNamespace(i);
             String prefix = parser.getAttributePrefix(i);
-            if (uri.hashCode() != 0) {
-                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);
+            if (uri != null && uri.hashCode() != 0) {
                 ns = node.findNamespace(uri, prefix);
             }
             // todo if the attributes are supposed to namespace qualified all the time

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/SOAPConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/SOAPConstants.java?rev=263992&r1=263991&r2=263992&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/SOAPConstants.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/SOAPConstants.java Sun Aug 28 19:02:21 2005
@@ -83,4 +83,9 @@
     public static final String FAULT_CODE_RECEIVER = "";
 
 
+    public static final String XMLNS_URI =
+        "http://www.w3.org/XML/1998/namespace";
+
+    public static final String XMLNS_PREFIX =
+        "xml";
 }

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/SOAPBuilderHelper.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/SOAPBuilderHelper.java?rev=263992&r1=263991&r2=263992&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/SOAPBuilderHelper.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/soap/impl/llom/builder/SOAPBuilderHelper.java Sun Aug 28 19:02:21 2005
@@ -50,7 +50,7 @@
         String namespaceURI = parser.getNamespaceURI();
         String prefix = parser.getPrefix();
         OMNamespace namespace = null;
-        if (!"".equals(namespaceURI)) {
+        if (namespaceURI != null && namespaceURI.length() > 0) {
             if (prefix == null) {
                 // this means, this elements has a default namespace or it has inherited a default namespace from its parent
                 namespace = node.findNamespace(namespaceURI, "");