Hi,
sorry for this mail-spamming :D, but I'm trying to search the cause of
this problem, and I'm going more in deep in the code, so I arrived on
o.a.c.util.jxpath.DOMFactory, that was the factory passed on JXPathContext
when create a context for binding. In createObject() the node parent has
getPrefix() = null and the node name has correct prefix, now or there is a
problem in jxpath that doesn't take node in the rigth way, or I dont'
known where could be the problem.
As possible solution (delete the code on the previuos mail) I can only
suggest in DOMFactory.getNamespaceURI() somethings like this patch:

@@ -100,13 +100,19 @@

         while (tmp != null && tmp.getNodeType() == Node.ELEMENT_NODE) {
             element = (Element)tmp;
+
+            String elementPrefix = element.getPrefix();
+            int pos = element.getNodeName().indexOf(":");
+            if (elementPrefix == null && pos != -1) {
+                elementPrefix = element.getNodeName().substring(0, pos);
+            }

             // First test element prefixes
             if (prefix == null) {
-                if (element.getPrefix() == null) {
+                if (elementPrefix == null) {
                     return element.getNamespaceURI();
                 }
-            } else if(prefix.equals(element.getPrefix())) {
+            } else if(prefix.equals(elementPrefix)) {
                 return element.getNamespaceURI();
             }

WDYT?

TIA


-- 
Daniele Madama

Pro-netics s.r.l.
Via Elio Lampridio Cerva 127/c
Roma
Tel. 0651530849
http://www.pro-netics.com

Reply via email to