You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Alain Pannetier (JIRA)" <ji...@apache.org> on 2013/06/07 18:38:20 UTC

[jira] [Commented] (CXF-5070) CDATA sections are not taken into account by wsdl2java but are by xjc

    [ https://issues.apache.org/jira/browse/CXF-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13678131#comment-13678131 ] 

Alain Pannetier commented on CXF-5070:
--------------------------------------

I think I've found it:

This is due to WoodStox having changed the default for the property "IS_COALESCING".

I've rebuild a 2.7.5 which works well if you add:

        setProperty(factory, XMLInputFactory.IS_COALESCING, Boolean.TRUE);

in org.apache.cxf.staxutils.StaxUtils#createXMLInputFactory.

Since this is standard stax property it can probably stay at this place (you guys decide of course ;-).

I followed under debug a wsdl2java session with my test wsdl (above) and could go little by little

1 => Definition, 
2 => Schema collections, 
3 => XmlSchemaAppInfo  => was not what I expected.

Eventually ended up in createXMLInputFactory, saw it was woodstox and looked up Jira. 
Stumbled upon jira.codehaus.org/browse/WSTX-274. Title:

"If a request contains <FieldA>outside cdata <![CDATA[inside <data> cdata]]></FieldA>, the transformed string will become <FieldA>outside cdata </FieldA>. I.e. the CDATA segment is completely missing in the result."
 
With comments pointing at "Now, the reason why this behaved differently in 3.2 is simply that the default settings for IS_COALESCING was 'true', which is incorrect as per specification, and 4.0 changed this to 'false' as per spec."
                
> CDATA sections are not taken into account by wsdl2java but are by xjc
> ---------------------------------------------------------------------
>
>                 Key: CXF-5070
>                 URL: https://issues.apache.org/jira/browse/CXF-5070
>             Project: CXF
>          Issue Type: Bug
>          Components: Tooling
>    Affects Versions: 2.7.4
>         Environment: Java 1.7 (Sun JDK, Linux Mint 14)
>            Reporter: Alain Pannetier
>            Priority: Minor
>              Labels: newbie
>
> When generating javadoc comments in emitted java classes from xsd:documentation/xsd:annotation, CDATA are systematically disregarded by wsdl2java.
> Narrowed down to a simple test
> 1/ wsdl2java -d src stuff.wsdl
> 2/ xjc -wsdl -d src stuff.wsdl
> Simple wsdl:
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <wsdl:definitions
>     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>     xmlns:tns="http:/com.example/"
>     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>     xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
>     targetNamespace="http:/com.example/"
>     jaxb:version="1.0"
>     >
>   <wsdl:types>
>     <xsd:schema
>     targetNamespace="http:/com.example/">
>       <xsd:element name="doStuff">
>          <xsd:complexType >
>            <xsd:annotation>
>               <xsd:documentation>
>                  This does show up
>                  <![CDATA[This doesn't]]>
>               </xsd:documentation>
>               <xsd:appinfo>
>                   <jaxb:class name="DoStuff">
>                       <jaxb:javadoc>This does show up
>                           <![CDATA[This doesn't]]>
>                       </jaxb:javadoc>
>                   </jaxb:class>
>               </xsd:appinfo>
>            </xsd:annotation>
>            <xsd:sequence/>
>          </xsd:complexType>
>       </xsd:element>
>       <xsd:element name="doStuffResponse">
>         <xsd:complexType>
>             <xsd:sequence/>
>         </xsd:complexType>
>       </xsd:element>
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="doStuffRequest">
>     <wsdl:part name="input" element="tns:doStuff"/>
>   </wsdl:message>
>   <wsdl:message name="doStuffResponse">
>     <wsdl:part name="result" element="tns:doStuffResponse"/>
>   </wsdl:message>
>   <wsdl:portType name="stuffPortType">
>     <wsdl:operation name="doStuff">
>         <wsdl:input message="tns:doStuffRequest"/>
>         <wsdl:output message="tns:doStuffResponse"/>
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="stuffBinding" type="tns:stuffPortType">
>     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="doStuff">
>         <soap:operation soapAction="http:/com.example/doStuff" />
>         <wsdl:input>
>             <soap:body use="literal" />
>         </wsdl:input>
>         <wsdl:output>
>             <soap:body use="literal" />
>         </wsdl:output>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="stuffService">
>     <wsdl:port binding="tns:stuffBinding" name="stuffPort">
>       <soap:address location="http://localhost:8080/stuff/stuffService"/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira