[
https://issues.apache.org/jira/browse/CXF-5070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13678399#comment-13678399
]
Daniel Kulp commented on CXF-5070:
----------------------------------
It's a bug in JAXB. :-(
If you pass in the schema via an XMLStreamReader (which is what we do so line
numbers and such can be retained), then it goes through the
com.sun.istack.XMLStreamReaderToContentHandler class to map it to what JAXB
needs internally. However, that class has a nice method:
{code}
private void handleCDATA() {
// no-op ???
// this event is listed in the javadoc, but not in the spec.
}
{code}
which is called for the CDATA stuff. Basically, CDATA is ignored. :-(
We might be able to work around it by wrappering the XMLStreamReader with one
that will map the CDATA to normal text events in the call to next().
> 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