I have a .NET 3.0 generated contract as follows:
test.wsdl - imports test2.wsdl and then defines a portType
test2.wsdl - imports test.wsdl and the defines a binding for the portType in test.wsdl..
The following problems arise:
1) getAllXXX methods get caught in an infinite loop since they jump between the definitions endlessly
-> I've fixed this by adding private methods including a set of already handled imports.. (attached..)
2) since the binding is imported / parsed before the portType, it gets an undefined portType and undefined operation for each binding-operation
-> I work around this manually by going through all bindings after reading a definition and checking if their portType is undefined in which case I get the portType from the definition and set it on the binding (if found..). A corresponding check/set has to be done for each binding-operation.
I guess the second issue would apply to any situations where a "forward reference" could be possible, ie portType->message, port->binding, etc.. I don't know what would be the best way to solve this in the code.. If you give me some suggestions I'd be happy to fix this as well..