Probably not going to help now, but I was just reading on MSDN: ---------------------------- What's New in the .NET Framework 2.0 Beta
Web Services Web services support SOAP 1.2 and the WS-I Basic Profile 1.0, which is documented at http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html. -> When consuming two or more Web services that define a shared type, the client proxies generated for those Web services share the corresponding type on the client. This allows clients to easily pass instances of shared types among Web services. You can now invoke Web methods asynchronously using an event-based programming pattern. ---------------------------- - Arent-Jan -----Original Message----- From: Anand Natrajan [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 30, 2004 3:48 PM To: [EMAIL PROTECTED] Subject: RE: .NET client accessing multiple Axis WSDLs : Re: 2. (It requires me to put out two sets of interfaces), what do you : mean by interfaces? The wsdl itself? Otherwise why different interfaces? Yes, the WSDLs themselves. The existing separate WSDLs constitute one interface and the new merged WSDL is a second, parallel interface. It so happens that I generate my WSDLs by writing Java interface classes and running java2wsdl, so my problem really boils down to two sets of Java interfaces, but that's besides the point. : We had the same problem, and decided to have the wsdl's merged into one, : containing one service and several port(types). : We use Java2WSDL to generate the wsdl's, and after generating the first : wsdl use the --input parameter to import that for creating the second : wsdl and so on. : Then the modify the namespaces of the operations in final wsdl to allow : having methods with the same signature in different porttypes. Okay, that's interesting. I'll give that a try. : When reading this wsdl with .NET, it sees every porttype as a different : service, but puts all services/classes in one reference. This allows the : services to use the same classes. But in this case, wouldn't you have a conflict if you have operations in different services with the same signature? : Axis WSDL2Java also handles the big wsdl, and generates classes/stubs : for every porttype. : : So you can have operations with the same signature in different : porttypes, and have the same interface in one wsdl as in several wsdl's. Ah, I see. Yes, this is what I was looking for. I'll try this solution out. : I agree it is not the best to have one big wsdl, but the only way I : could find to handle properly and easily in .NET. If possible it might : be a solution to only share primitive types between services. Sadly, that's not possible... I do want some complex types to be used by multiple services. Thanks! Anand : - Arent-Jan : : -----Original Message----- : From: Anand Natrajan [mailto:[EMAIL PROTECTED] : Sent: Tuesday, June 29, 2004 7:14 PM : To: [EMAIL PROTECTED] : Subject: Re: .NET client accessing multiple Axis WSDLs : : : Re: specify the same namespace, do you mean within the WSDLs itself? I : already do specify the same namespace for the common data structure, and : it doesn't work. : : Re: specify the same namespace, do you mean within VB? Tried that, but : VB won't let you do it. It's sort of like trying to specify two : variables with the same name in the same scope - malformed. : : Re: merge all the WSDLs, yes, it is possible, and I am considering it, : but the solution is a bit unpleasant. 1. It nullifies the careful : separation I have crafted of grouping related : operations in each WSDL. : 2. It requires me to put out two sets of interfaces - one consisting of : a single merged WSDL for .NET clients, the other consisting of : multiple : WSDL files for all other clients. : 3. It requires me to resolve operation names that happen to have the : same : signature but different function in different WSDLs. : 4. Because of #3, I can't simply have the Java interface class : corresponding : to the merged WSDL inherit from the Java interfaces classes : corresponding : to the separate WSDLs. Therefore, it's up to me (and future : developers) : to ensure that the two sets of interfaces stay consistent. : : Thanks for responding though! Although your suggestion isn't ideal, it's : still the best I've got, and it made me think. (: : : Anand : : On Tue, 29 Jun 2004, Vy Ho wrote: : : : Is it possible to merge all your wsdls into a same wsdl file? Or : : specify a same namespace for all of them? : : : : : : Anand Natrajan wrote: : : : : >Hello! : : > : : >As part of my .NET and Axis interoperability work, I am facing a : piquant : : >situation. I have written multiple web services using Axis. Each of : these : : >web services defines a particular complex data structure called : Principal. : : >The definition, XML namespace and package name for this structure are : : >identical in each WSDL generated for my services. I have written : Axis-based : : >Java clients and SOAP::Lite-based Perl clients that invoke operations : from : : >multiple WSDLs within the same program. Call these clients : "cross-WSDL : : >clients" - they work perfectly, especially when I have to pass the : same : : >instance of Principal to different operations. : : > : : >Now, I'd like to write cross-WSDL .NET clients. I am using Visual : Studio : : >.NET, and using Visual Basic to write such a client. Here, I face a : : >namespace issue in the client. In order to invoke operations in a : WSDL from : : >a VB client, I have to import the WSDL as a web reference. When I do : so, : : >.NET gives the WSDL a name, somewhat similar to a package name in : Java. : : >Different WSDLs get different names. However, because of this : practice, I : : >end up with multiple definitions of Principal viz., WSDL1.Principal : and : : >WSDL2.Principal. Now, I find I cannot use a single instance of : Principal to : : >invoke operations from different WSDLs. VB's type-checking system : forces me : : >to use WSDL1.Principal when invoking operations defined in WSDL1 and : : >WSDL2.Principal when invoking operations defined in WSDL2. : : > : : >Recall, these multiple definitions are actually identical. Because of : the : : >way .NET imports and names WSDLs, I am forced to create multiple : instances : : >for the same principal and keep them consistent. How can I avoid : doing so? : : > : : >I have tried defining Principal in a common schema file and : : >importing/including it into each WSDL - that has no effect. Thinking : through : : >it, I realise that it cannot have any effect because .NET will : continue to : : >give different names to each WSDL, whether or not the WSDLs happen to : import : : >other schema files. I also tried tinkering with the namespace of : Principal, : : >to no avail. : : > : : >I have tried adding the schema file as a web reference, but that : fails : : >because .NET wants a WSDL, not an XSD file. Backing off from the : schema : : >approach, I tried casting WSDL1.Principal into a WSDL2.Principal, but : .NET : : >refused to sanction that. Is there anything else I can try? Has : anyone : : >encountered this situation before? : : > : : >Thank you for any help, and for even reading this. I will peruse this : group : : >regularly for any response, but I'd also appreciate a copy sent to : : >[EMAIL PROTECTED] : : > : : >Anand Natrajan : :