cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Klimiuk (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CXF-2468) attribute namespace is missed in out message in case of XmlBeans data binding
Date Wed, 14 Oct 2009 05:49:31 GMT

    [ 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.


Mime
View raw message