nmukhi 2002/12/09 09:33:01 Added: java/samples/ComplexSOAP README.html Zip2Geo.wsdl Log: README file and WSDL file for sample with complex schema types using SOAP binding Revision Changes Path 1.1 xml-axis-wsif/java/samples/ComplexSOAP/README.html Index: README.html =================================================================== <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="Author" content="Nirmal Mukhi"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>Web Services Invocation Framework: Samples</title> <link rel="stylesheet" href="wsif.css" type="text/css"></head> <body alink="#0000ff" bgcolor="#ffffff" leftmargin="2" topmargin="2" marginwidth="2" marginheight="2"> <h1> Web Services Invocation Framework:<br> ComplexSOAP Sample</h1> <p>This sample aims to demonstrate the invocation of a SOAP service that uses custom type definitions. This is a little different from using service that exchange messages typed using primitive schema types, since we have to have native equivalents for the custom schema types and know how to serialize and deserialize these the representations betwenour native format and the SOAP format.</p> <p>The particular service we have chosen to demonstrate how to WSIF for such invocations is called <em>Zip2Geo</em>. This is a publicly available services hosted by <a href="http://www.cdyne.com">www.cdyne.com</a>. The service offers a single port type with one operation, called <tt>GetLatLong</tt>. This operation takes as input a zip code, and returns as output information about the corresponding location, such as the name of the city, state, its latitude, longitude, etc. The return value is a complex schema type. The service URL, where you can find details on the service implementation, etc. is <a href="http://www.xmethods.net/ve2/ViewListing.po?serviceid=175331">here</a>.</p> <p>The <a href="Zip2Geo.wsdl">WSDL file</a> in this sample directory is publicly available via the service URL and has been downloaded from there.</p> <p><a href="client/dynamic/README.html">Here's</a> how to invoke this service dynamically using WSIF's dynamic invocation interface (DII).</p> <p><a href="client/stub/README.html">Here's</a> how to invoke this service by first generating the stub interface and using this directly through WSIF's dynamic proxy, thus hiding all WSIF specifics from the client code. Note that the stub interface used is the the service interface as defined by the JAX-RPC specification.</p> <hr width="100%"> </body></html> 1.1 xml-axis-wsif/java/samples/ComplexSOAP/Zip2Geo.wsdl Index: Zip2Geo.wsdl =================================================================== <?xml version="1.0" encoding="utf-8"?> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://ws.cdyne.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://ws.cdyne.com" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <s:schema elementFormDefault="qualified" targetNamespace="http://ws.cdyne.com"> <s:element name="GetLatLong"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="zipcode" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LicenseKey" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetLatLongResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="GetLatLongResult" type="s0:LatLongReturn" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="LatLongReturn"> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="ServiceError" type="s:boolean" /> <s:element minOccurs="1" maxOccurs="1" name="AddressError" type="s:boolean" /> <s:element minOccurs="0" maxOccurs="1" name="City" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="StateAbbrev" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="ZipCode" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="County" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="FromLongitude" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="FromLatitude" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="ToLongitude" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="ToLatitude" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="AvgLongitude" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="AvgLatitude" type="s:decimal" /> <s:element minOccurs="0" maxOccurs="1" name="CMSA" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="PMSA" type="s:string" /> </s:sequence> </s:complexType> <s:element name="LatLongReturn" type="s0:LatLongReturn" /> </s:schema> </types> <message name="GetLatLongSoapIn"> <part name="parameters" element="s0:GetLatLong" /> </message> <message name="GetLatLongSoapOut"> <part name="parameters" element="s0:GetLatLongResponse" /> </message> <message name="GetLatLongHttpGetIn"> <part name="zipcode" type="s:string" /> <part name="LicenseKey" type="s:string" /> </message> <message name="GetLatLongHttpGetOut"> <part name="Body" element="s0:LatLongReturn" /> </message> <message name="GetLatLongHttpPostIn"> <part name="zipcode" type="s:string" /> <part name="LicenseKey" type="s:string" /> </message> <message name="GetLatLongHttpPostOut"> <part name="Body" element="s0:LatLongReturn" /> </message> <portType name="Zip2GeoSoap"> <operation name="GetLatLong"> <documentation>This method will convert a zip code to Longitude and Latitude. You will get better accuracy with the plus 4 added to the zipcode. Use a license key of 0 for testing.</documentation> <input message="s0:GetLatLongSoapIn" /> <output message="s0:GetLatLongSoapOut" /> </operation> </portType> <portType name="Zip2GeoHttpGet"> <operation name="GetLatLong"> <documentation>This method will convert a zip code to Longitude and Latitude. You will get better accuracy with the plus 4 added to the zipcode. Use a license key of 0 for testing.</documentation> <input message="s0:GetLatLongHttpGetIn" /> <output message="s0:GetLatLongHttpGetOut" /> </operation> </portType> <portType name="Zip2GeoHttpPost"> <operation name="GetLatLong"> <documentation>This method will convert a zip code to Longitude and Latitude. You will get better accuracy with the plus 4 added to the zipcode. Use a license key of 0 for testing.</documentation> <input message="s0:GetLatLongHttpPostIn" /> <output message="s0:GetLatLongHttpPostOut" /> </operation> </portType> <binding name="Zip2GeoSoap" type="s0:Zip2GeoSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <operation name="GetLatLong"> <soap:operation soapAction="http://ws.cdyne.com/GetLatLong" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <service name="Zip2Geo"> <port name="Zip2GeoSoap" binding="s0:Zip2GeoSoap"> <soap:address location="http://ws.cdyne.com/ziptogeo/zip2geo.asmx" /> </port> </service> </definitions>