This is how JAXB outputs things by default. It pretty much always outputs all the namespaces that it knows about at the "root" of the document that it is writing.
You can control it somewhat by createing a com.sun.xml.bind.marshaller.NamespacePrefixMapper and registering that with the JAXBDataBinding in CXF. It would probably return an empty list from getPreDeclaredNamespaceUris and getPreDeclaredNamespaceUris2. Dan On Friday 05 November 2010 4:41:47 pm KARR, DAVID (ATTSI) wrote: > I have an existing service client that uses JAXB, with an ad hoc Soap > infrastructure. When I marshal the envelope in the existing code, I get > xmlns attributes for all the namespaces that are actually used in the > envelope, which isn't many. It only produces one application-specific > one. > > Our WSDL defines a service with a large number of operations. Each one > of them has their own operation-specific schema. > > When I now marshal the request with CXF, I get a request that is much, > much, larger than the original code. This is because it has xmlns > attributes for EVERY schema referenced in the WSDL, even though only one > is referenced in the operation. What's worse is that that huge list of > xmlns attributes is present in two places in the envelope, both on the > body child element and in an element in the header. > > Is there some way I can get the envelope back closer to what I had > before? -- Daniel Kulp [email protected] http://dankulp.com/blog
