Hi, I've updated the jibx databinding code to[1] and tested the code generation with the attached StockQuoteService.wsdl. It generates the proper Java classes for the schema embedded in the WSDL, skeleton code of both client and the server and proper message exchange happens when JiBX databinding is set without any problem. At the moment I am writing some test cases and javadoc comments which I'm hoping to commit in next few days.
There are couple of improvements which I would like to do - Support '-compile' option If the option is set, JiBX databinding should compile the generated Java source files and should run the jibx-binding compiler against the generated class files using the generated binding.xml. Since the jibx-binding compiler only accepts class files (not source files) I am thinking how to compile the generated source files. Is there a standard way of programmatically compile source files in Java 5 platform.? (I found some web resources illustrating how to do it in Java 6, but couldn't find any for Java 5) If there is, then I can enhance the JiBXDatabindingTooling to programmatically compile the generated source files and run the jibx-compiler against the those class files when '-compile' option is set. - The implementation of getWrapperType() method in JiBXToolingDataBinding class looks at the only one (ValueElement) of child elements of BindingElement which contains binding/type information of generated classes. It can certainly be improved to observe other child elements namely StuctElement and CollectionElement when required (see [2]). I am looking for some schema/wsdl artifacts which will help me on that and it would be great if anyone can point me to such. Thanks & Best Regards, Nilupa [1] http://github.com/nilupa/cxf/tree/trunk/rt/databinding/jibx/ [2] http://sourceforge.net/mailarchive/message.php?msg_name=4C5CD68B.7070200%40sosnoski.com -- Nilupa Bandara
<!-- ~ Licensed to the Apache Software Foundation (ASF) under one ~ or more contributor license agreements. See the NOTICE file ~ distributed with this work for additional information ~ regarding copyright ownership. The ASF licenses this file ~ to you under the Apache License, Version 2.0 (the ~ "License"); you may not use this file except in compliance ~ with the License. You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, ~ software distributed under the License is distributed on an ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~ KIND, either express or implied. See the License for the ~ specific language governing permissions and limitations ~ under the License. --> <wsdl:definitions xmlns:ns1="http://quickstart.samples/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:ns="http://quickstart.samples/xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://quickstart.samples/"> <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://quickstart.samples/xsd"> <xs:element name="getPrice"> <xs:complexType> <xs:sequence> <xs:element name="symbol" nillable="true" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="getPriceResponse"> <xs:complexType> <xs:sequence> <xs:element name="return" nillable="true" type="xs:double" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="update"> <xs:complexType> <xs:sequence> <xs:element name="symbol" nillable="true" type="xs:string" /> <xs:element name="price" nillable="true" type="xs:double" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> </wsdl:types> <wsdl:message name="getPriceMessage"> <wsdl:part name="part1" element="ns:getPrice" /> </wsdl:message> <wsdl:message name="getPriceResponseMessage"> <wsdl:part name="part1" element="ns:getPriceResponse" /> </wsdl:message> <wsdl:message name="updateMessage"> <wsdl:part name="part1" element="ns:update" /> </wsdl:message> <wsdl:portType name="StockQuoteServicePortType"> <wsdl:operation name="getPrice"> <wsdl:input message="ns1:getPriceMessage" /> <wsdl:output message="ns1:getPriceResponseMessage" /> </wsdl:operation> <wsdl:operation name="update"> <wsdl:input message="ns1:updateMessage" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="StockQuoteServiceSOAP11Binding" type="ns1:StockQuoteServicePortType"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <wsdl:operation name="getPrice"> <soap:operation soapAction="urn:getPrice" style="document" /> <wsdl:input> <soap:body use="literal" namespace="http://quickstart.samples/" /> </wsdl:input> <wsdl:output> <soap:body use="literal" namespace="http://quickstart.samples/" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="update"> <soap:operation soapAction="urn:update" style="document" /> <wsdl:input> <soap:body use="literal" namespace="http://quickstart.samples/" /> </wsdl:input> </wsdl:operation> </wsdl:binding> <wsdl:binding name="StockQuoteServiceSOAP12Binding" type="ns1:StockQuoteServicePortType"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <wsdl:operation name="getPrice"> <soap12:operation soapAction="urn:getPrice" style="document" /> <wsdl:input> <soap12:body use="literal" namespace="http://quickstart.samples/" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" namespace="http://quickstart.samples/" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="update"> <soap12:operation soapAction="urn:update" style="document" /> <wsdl:input> <soap12:body use="literal" namespace="http://quickstart.samples/" /> </wsdl:input> </wsdl:operation> </wsdl:binding> <wsdl:service name="StockQuoteService"> <wsdl:port name="StockQuoteServiceSOAP11port" binding="ns1:StockQuoteServiceSOAP11Binding"> <soap:address location="http://localhost:9090/StockQuoteService" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
