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),