cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-5070) CDATA sections are not taken into account by wsdl2java but are by xjc
Date Fri, 07 Jun 2013 20:32:21 GMT

    [ 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

Mime
View raw message