[
https://issues.apache.org/jira/browse/CXF-2468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12765409#action_12765409
]
Michael Klimiuk commented on CXF-2468:
--------------------------------------
Thanks for a quick response, Daniel. Will try to provide the testcase today.
> attribute namespace is missed in out message in case of XmlBeans data binding
> ------------------------------------------------------------------------------
>
> Key: CXF-2468
> URL: https://issues.apache.org/jira/browse/CXF-2468
> Project: CXF
> Issue Type: Bug
> Components: OtherDatabindings
> Reporter: Michael Klimiuk
> Priority: Blocker
>
> SCENARIO:
> The XmlBeans databinding is used.
> Trying to send a message with an input data like:
> <myOperation
> xmlns="http://sandbox.org/services/MyService/myOperation"
> xmlns:s1="http://sandbox.org/datatypes/one"
> xmlns:s2="http://sandbox.org/datatypes/two"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <data>
> <s1:oneElement>
> <s2:twoElement xsi:nil="true"/>
> </s1:oneElement>
> </data>
> </myOperation>
> ACTUAL RESULT:
> The out message is generated as follows:
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <myOperation xmlns="http://sandbox.org/services/MyService/myOperation">
> <data>
> <oneElement xmlns="http://sandbox.org/datatypes/one">
> <twoElement xmlns="http://sandbox.org/datatypes/two"
> xsi:nil="true"/>
> </oneElement>
> </data>
> </myOperation>
> </soap:Body>
> </soap:Envelope>
> Namespace definition for "xsi" prefix is missed. And the receiver fails to
> process the message because of validation.
> EXPECTED RESULT:
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <myOperation xmlns="http://sandbox.org/services/MyService/myOperation">
> <data>
> <oneElement xmlns="http://sandbox.org/datatypes/one">
> <twoElement xmlns="http://sandbox.org/datatypes/two"
>
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/>
> </oneElement>
> </data>
> </myOperation>
> </soap:Body>
> </soap:Envelope>
> I.e. the namespace for "xsi" prefix is present.
> ANALYSIS:
> Analysis is based on the CXF 2.2.3.
> Please have a look at the sources:
> Class: org.apache.cxf.staxutils.StaxUtils
> Method: writeStartElement(XMLStreamReader reader, XMLStreamWriter writer)
> The code under his comment -> // Write out attributes
> My guess is:
> If we have both "ns" and "nsPrefix" that are not empty then the namespace
> definition should be written.
> 506 } else {
> 507 writer.writeNamespace(nsPrefix, ns); // <-- THIS IS A
> NEW EXAMPLE LINE OF WHAT IS DESIRED
> 508 writer.writeAttribute(reader.getAttributePrefix(i),
> reader.getAttributeNamespace(i), reader
> 509 .getAttributeLocalName(i),
> reader.getAttributeValue(i));
> 510 }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.