>From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > >Can you post the entire WSDL? The types that should be generated will be different depending on whether it's RPC or Document style. > >WSDL2Java is somewhat forgiving of a common error -- using <wsdl:import> to import a schema. The fact that it does so isn't a >bug, although it would be useful if it raised a warning. > >Anne
Thanks for the reply, Anne. I just noticed that this schema is using rpc/encoded, which seems like a problem -- but it still seems odd that the two different methods of including the schema produce different results (and no warnings about using rpc/encoded): Here is my WSDL. I did some cutting and search-and-replaces on it before posting to remove some proprietary information, so hopefully I didn't break anything: <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://www.example.com/wsdl/v/router" xmlns:intf="http://www.example.com/wsdl/v/router" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:v="http://www.example.com/2004/v2.0/schemas/v" xmlns="http://schemas.xmlsoap.org/wsdl/"> <!-- Uncomment this section and comment out the wsdl:types section for a version that --> <!-- produces all the necessary classes to compile successfully, and doesn't take an OMElement <!-- as a parameter --> <!--<wsdl:import--> <!--namespace="http://www.example.com/2004/v2.0/schemas/v"--> <!--location="BrokenWsdl.xsd"/>--> <wsdl:types> <xsd:schema> <xsd:import id="IDataExchange" namespace="http://www.example.com/2004/v2.0/schemas/v" schemaLocation="BrokenWsdl.xsd"/> </xsd:schema> </wsdl:types> <wsdl:message name="reiRequest"> <wsdl:part name="I" type="v:IType"/> </wsdl:message> <wsdl:message name="reiResponse"> <wsdl:part name="return" type="soapenc:boolean"/> </wsdl:message> <wsdl:portType name="V"> <wsdl:operation name="rei" parameterOrder="I"> <wsdl:documentation> </wsdl:documentation> <wsdl:input name="reiRequest" message="intf:reiRequest"/> <wsdl:output name="reiResponse" message="intf:reiResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="VSoapBinding" type="intf:V"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="rei"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="reiRequest"> <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.example.com/wsdl/v/router"/> </wsdl:input> <wsdl:output name="reiResponse"> <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.example.com/wsdl/v/router"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="VService"> <wsdl:port name="V" binding="intf:VSoapBinding"> <wsdlsoap:address location="http://127.0.0.1:8080/axis/services/V"/> </wsdl:port> </wsdl:service> </wsdl:definitions> Here is the referenced BrokenWsdl.xsd schema: <?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://www.example.com/2004/v2.0/schemas/v" xmlns:v="http://www.example.com/2004/v2.0/schemas/v" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0" id="VEIRecord"> <xs:element name="I" type="v:IType"/> <xs:complexType name="IType"> <xs:all> <!-- various other elements go here --> </xs:all> </xs:complexType> </xs:schema> -----Original Message----- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Monday, June 19, 2006 5:09 PM To: [email protected]; [EMAIL PROTECTED] Subject: Re: [Axis2] Apparent bug in WSDL2Java re: imports Can you post the entire WSDL? The types that should be generated will be different depending on whether it's RPC or Document style. WSDL2Java is somewhat forgiving of a common error -- using <wsdl:import> to import a schema. The fact that it does so isn't a bug, although it would be useful if it raised a warning. Anne On 6/19/06, Derek <[EMAIL PROTECTED]> wrote: Hi, folks. I have been seeing an apparent bug in the Axis2 WSDL2Java code. Specifically, I have WSDL that looks like this: <wsdl:definitions targetNamespace=" http://www.example.com/wsdl/router" xmlns:schema="http://www.example.com/schemas"> <wsdl:import namespace=" http://www.example.com/schemas" location="MySchema.xsd"/> <wsdl:message name="routeEmergencyIncidentRequest"> <wsdl:part name="vehicularEmergencyIncident" type="schema:MyElement"/> </wsdl:message> which seems to correctly generate Java code for the types mentioned in MySchema.xsd, and also produces a RouteEmergencyIncidentRequest type as I would have expected. However, this code is supposedly illegal according to http://www.xml.com/pub/a/ws/2003/08/05/wsdl.html because it uses wsdl:import to import something that is not a WSDL document but is in fact an XML schema. However, if I replace it with the following, which is supposedly correct: <wsdl:definitions targetNamespace="http://www.example.com/wsdl/router " xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:schema="http://www.example.com/schemas"> <wsdl:types> <xsd:schema> <xsd:import id="Something" namespace="http://www.example.com/schemas" schemaLocation="MySchema.xsd"/> </xsd:schema> </wsdl:types> <wsdl:message name="routeEmergencyIncidentRequest"> <wsdl:part name="vehicularEmergencyIncident" type="schema:MyElement"/> </wsdl:message> then if I run WSDL2Java, it generates Java code as before for the types mentioned in MySchema.xsd, but it does NOT produce a RouteEmergencyIncident class, leaving me nothing to use to parse the OMElement that the generated server skeleton takes as a parameter. (And, for that matter, I have no idea why a server skeleton method taking an OMElement parameter is produced, rather than a MyElement parameter. This also seems like a bug.). It seems to me that which form of import I use shouldn't determine whether or not Java types are generated for each message. The biggest problem for me in this respect is that the second form of the WSDL (the one using xsd:import) is the one actually used by the WSDL that I have been given by a third party. So just changing it is not an attractive option. Is this a bug? Any advice would be appreciated. Thanks! Derek --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
