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