org.xml.sax.SAXParseException: The prefix "xmlns" cannot be bound to any 
namespace explicitly; neither can the namespace for "xmlns" be bound to any 
prefix explicitly.

I am trying to use the Apache xml security libraries together with JAXB and 
with JBoss's SAAJ implimentation, and I am frequently running into the 'xmlns' 
exception mentioned above. The full stack trace varies a great deal, so my 
including it wouldn't be of much help.

However, none of my xml is defining a prefix with the 'xmlns' URI as its value, 
and I am not trying to use anything starting with 'xml' as a namespace prefix 
name. 

I am using JBoss 4.0.2, and I found the following items in source code that may 
be errors:

Item 1:
I ran into this when using SOAPMessage.writeTo to dump a document which I had 
added using SOAPBody.addDocument to System.out.

In org.jboss.axis.encoding.SerializationContextImpl.java, Line 1082

                  if (uri.equals(Constants.NS_URI_XMLNS))
  |                   {
  |                      prefix = "xmlns";
  |                   }
  | 

The code is iterating over attributes, and if their namespace URI was equal to 
the default URI, then it was adding the prefix 'xmlns'.

My XML had something that looked like

  | <MyTagName xmlns="myURI"/>
  | 

So when it processed the attribute 'xmlns', it would go in with no prefix, and 
come out with the prefix 'xmlns', so that when it was finally output it looked 
like "xmlns:xmlns="myURI". Since namespace prefix names begginning with 'xml' 
are illegal, this caused me problems with every parser thereafter.

Item 2:
I ran into this when trying to parse a byte array containing my document into a 
Document object.

In org.jboss.axis.message.SOAPElementAxisImpl.java, Line 721


  | if (qname.startsWith("xmlns:") == false && qname.startsWith("xsi:") == 
false)
  |                   qname = "xmlns:" + qname;
  | 

The method is trying to convert SAX attributes to DOM attributes. If the 
attribute does not start with xmlns:, it gets padded with xmlns:.
My attribute was, again, "xmlns='myURI'", which did not begin with 'xmlns:', so 
it was padded with a prefix. Again, the output looked like 
'xmlns:xmlns="myURI"'. And again I had validation issues afterwards.

After modifying these two items to no longer pad the default namespace 
attribute, I went without seeing that exception for a while... until now. I'm 
hitting a similar problem in a third place, and I haven't yet tracked down the 
root cause.

Looking around online I find very little mention of the exception I keep 
hitting, and it's got me wondering if I'm doing something that's causing this?

I generate a JAXB class based on a schema, I populate the required fields of 
the JAXB object and marshal it to a document. I then use Apache's xml security 
libraries to create the signature. I take that as a Document and add it to a 
SOAPBody in order to obtain a SOAPElement, which I pass from a client to a 
server via a webservice. There I reverse the whole operation. My latest 
encounter with this error has been during transforms while verifying the 
signature, and I'm still working on tracking the cause. 

JAXB has no problem with the schema. And most of the time parsers are having no 
problems with the XML it produces. But if I go through a conversion or two, say 
from JAXB to Document to SOAPElement, I frequently find problems.

Has anyone else run into problems with their default namespace declaration 
getting mangled?

Even if the issues I'm hitting really are bugs in other people's source rather 
than in mine (which might not be the case), I seem to be tripping every single 
one of the bugs, and there's no traffic about it online so somehow no one else 
is. Any hints regarding what might be causing me to trip these problems would 
be great- it's wasting days of development time, a few hours here, a few hours 
there.

thanks.

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3933911#3933911

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3933911


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to