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 2005/12/09 11:16:27 UTC
svn commit: r355435 - in /webservices/axis2/trunk/java/modules/xml:
src/org/apache/axis2/om/impl/llom/OMElementImpl.java
test/org/apache/axis2/om/AttrNsTest.java
Author: ruchithf
Date: Fri Dec 9 02:16:15 2005
New Revision: 355435
URL: http://svn.apache.org/viewcvs?rev=355435&view=rev
Log:
Earlier fix to Axis2-329 didn't work with unqualified elements with qualified attrs of the xml namespace E.g. <Policy xml:base=\"uri:thisBase\"></Policy>
Fixed it and added another test method to test it
Modified:
webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java
webservices/axis2/trunk/java/modules/xml/test/org/apache/axis2/om/AttrNsTest.java
Modified: webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java?rev=355435&r1=355434&r2=355435&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java (original)
+++ webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java Fri Dec 9 02:16:15 2005
@@ -352,9 +352,21 @@
* This can also be used to retrieve the prefix of a known namespace URI
*/
private OMNamespace findDeclaredNamespace(String uri, String prefix) {
- if (namespaces == null || uri == 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 OMNamespaceImpl(uri, prefix);
+ }
+
+ if (namespaces == null) {
return null;
}
+
if (prefix == null || "".equals(prefix)) {
Iterator namespaceListIterator = namespaces.values().iterator();
while (namespaceListIterator.hasNext()) {
@@ -371,16 +383,11 @@
if (namespace != null && uri.equalsIgnoreCase(namespace.getName())) {
return namespace;
} else {
- //Check whether the given prefix and uri is XML prefix and ns
- if(prefix.equals(OMConstants.XMLNS_PREFIX) && uri.equals(OMConstants.XMLNS_URI)) {
- return new OMNamespaceImpl(uri, prefix);
- } else {
- return null;
- }
+ return null;
}
-// return (OMNamespace) namespaces.get(prefix);
}
- }
+ }
+
/**
* Method getAllDeclaredNamespaces
Modified: webservices/axis2/trunk/java/modules/xml/test/org/apache/axis2/om/AttrNsTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/xml/test/org/apache/axis2/om/AttrNsTest.java?rev=355435&r1=355434&r2=355435&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/xml/test/org/apache/axis2/om/AttrNsTest.java (original)
+++ webservices/axis2/trunk/java/modules/xml/test/org/apache/axis2/om/AttrNsTest.java Fri Dec 9 02:16:15 2005
@@ -65,5 +65,23 @@
assertEquals("Attribute namespace mismatch", OMConstants.XMLNS_URI, attr.getNamespace().getName());
}
+ /**
+ * Test method to test the XML namespace of an attr without
+ * any other ns declarations in the element
+ * @throws Exception
+ */
+ public void testAttrWithoutElementNS() throws Exception{
+ String xml = "<Policy xml:base=\"uri:thisBase\"></Policy>";
+
+ ByteArrayInputStream bais = new ByteArrayInputStream(xml.getBytes());
+ StAXOMBuilder builder = new StAXOMBuilder(bais);
+ OMElement elem = builder.getDocumentElement();
+ elem.build();
+ assertEquals("Attribute value mismatch", "uri:thisBase", elem.getAttributeValue(new QName(OMConstants.XMLNS_URI,"base")));
+
+ OMAttribute attr = elem.getAttribute(new QName(OMConstants.XMLNS_URI,"base"));
+
+ assertEquals("Attribute namespace mismatch", OMConstants.XMLNS_URI, attr.getNamespace().getName());
+ }
}