cxf-issues mailing list archives

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

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

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

Looks like the workaround should also be added in one or two other places.

I discovered because my WSDL imports a bunch of additional XSDs (shared among various WSDLs).

So I had to add your workaround in 2 other places (both in org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding#addSchemas)

{code:java|title=JAXBDataBinding#addSchemas line 660}
                InputSource is = new InputSource((InputStream)null);
                //key = key.replaceFirst("#types[0-9]+$", "");
                is.setSystemId(key);
                is.setPublicId(key);
                opts.addGrammar(is);
                try {
                    XMLStreamReader reader = new StreamReaderDelegate(StaxUtils.createXMLStreamReader(ele,
key)) {
                        public int next() throws XMLStreamException {
                            int i = super.next();
                            return i == XMLStreamReader.CDATA ? XMLStreamReader.CHARACTERS
: i;
                        }
                    };
                    schemaCompiler.parseSchema(key, reader);
                } catch (XMLStreamException e) {
                    throw new ToolException(e);
                }
{code}

And just below (adapted to the desired createXMLStreamReader overload)

{code:java|title=JAXBDataBinding#addSchemas line 690}
                    XMLStreamReader reader = new StreamReaderDelegate(StaxUtils.createXMLStreamReader(key,
in)) {
                        public int next() throws XMLStreamException {
                            int i = super.next();
                            return i == XMLStreamReader.CDATA ? XMLStreamReader.CHARACTERS
: i;
                        }
                    };

                    reader = new LocationFilterReader(reader, catalog);
                    InputSource is = new InputSource(key);
                    opts.addGrammar(is);
                    schemaCompiler.parseSchema(key, reader);
                    reader.close();
{code}

I might have overlooked other places (this is a huge class).
                
> 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
>            Assignee: Daniel Kulp
>            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:
> {code:xml}
> <?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>
> {code} 

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