Heya,
I'm fairly new to Axis, so hopefully I'm not missing something too
obvious or have bad search skills(I've been searching and researching and
haven't come up with an answer). I managed to get an example service using
Axis/Castor (the example from the IBM site) working using the generated jars; a
client java application using the generated client classes returns the right
information. Per the example, there is an .xsd file whose namespace is
imported into the WSDL. However, when my coworker captures the generated WSDL
from the server using XMLSpy and .Net's wsdl.exe, it cannot define the return
type (quote). Is there some way to expose the external schema file via the
generated WSDL? We've noticed that if we imbed the information from the XSD
file directly into the WSDL everything is all good, but I'm guessing that
Castor requires the use of a separate Schema file. I've included the files
below for reference.
Thanks,
Anna
XSD
===
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://w3.ibm.com/schemas/services/stockquote"
xmlns="http://w3.ibm.com/schemas/services/stockquote">
<xsd:element name="quote">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="symbol" type="xsd:string"/>
<xsd:element name="volume" type="xsd:integer"/>
<xsd:element name="lastTrade"
type="lastTradeType"/>
<xsd:element name="change" type="changeType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="changeType">
<xsd:sequence>
<xsd:element name="dollar" type="xsd:float"/>
<xsd:element name="percent" type="xsd:float"/>
<xsd:element name="positive" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="lastTradeType">
<xsd:sequence>
<xsd:element name="price" type="xsd:float"/>
<xsd:element name="date" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
<!-- Methods signatures -->
<xsd:element name="getStockQuote">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="symbol" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getStockQuoteResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="quote" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
WSDL (ORIGINAL FILE)
=====
<definitions
targetNamespace="http://w3.ibm.com/schemas/services/stockquote/wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://w3.ibm.com/schemas/services/stockquote/wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:types="http://w3.ibm.com/schemas/services/stockquote"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<types>
<xsd:schema
targetNamespace="http://w3.ibm.com/schemas/services/stockquote/wsdl"
xmlns:types="xmlns:types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import
namespace="http://w3.ibm.com/schemas/services/stockquote"
schemaLocation="../xsd/StockQuote.xsd"/>
</xsd:schema>
</types>
<message name="getStockQuoteReq">
<part name="parameters" element="types:getStockQuote" />
</message>
<message name="getStockQuoteResp">
<part name="parameters" element="types:getStockQuoteResponse" />
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="tns:getStockQuoteReq" />
<output message="tns:getStockQuoteResp" />
</operation>
</portType>
<binding name="StockQuoteSOAPBinding" type="tns:StockQuotePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="getStockQuote">
<soap:operation style="document"
soapAction="getStockQuote" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuoteSOAPPort"
binding="tns:StockQuoteSOAPBinding">
<soap:address
location="http://10.10.10.85/axis/services/StockQuoteSOAPPort" />
</port>
</service>
</definitions>
GENERATED WSLD (USING ?WSDL)
==============================
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://w3.ibm.com/schemas/services/stockquote/wsdl"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://w3.ibm.com/schemas/services/stockquote/wsdl"
xmlns:intf="http://w3.ibm.com/schemas/services/stockquote/wsdl"
xmlns:tns1="http://w3.ibm.com/schemas/services/stockquote"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.2
Built on May 03, 2005 (02:20:24 EDT)-->
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="http://w3.ibm.com/schemas/services/stockquote"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="getStockQuote">
<complexType>
<sequence>
<element name="symbol" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getStockQuoteResponse">
<complexType>
<sequence>
<element name="quote" type="tns1:quote"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="getStockQuoteResponse">
<wsdl:part element="tns1:getStockQuoteResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getStockQuoteRequest">
<wsdl:part element="tns1:getStockQuote" name="parameters"/>
</wsdl:message>
<wsdl:portType name="StockQuotePortType">
<wsdl:operation name="getStockQuote">
<wsdl:input message="impl:getStockQuoteRequest"
name="getStockQuoteRequest"/>
<wsdl:output message="impl:getStockQuoteResponse"
name="getStockQuoteResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="StockQuoteSOAPPortSoapBinding"
type="impl:StockQuotePortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getStockQuote">
<wsdlsoap:operation soapAction="getStockQuote"/>
<wsdl:input name="getStockQuoteRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getStockQuoteResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="StockQuoteService">
<wsdl:port binding="impl:StockQuoteSOAPPortSoapBinding"
name="StockQuoteSOAPPort">
<wsdlsoap:address
location="http://10.10.10.85/axis/services/StockQuoteSOAPPort"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
========================
SunGard Advisor Technologies