
Peter G. Lane wrote:
Exactly - all the data types, including WSDL message types, (complexType & elements) that potentially will be generated as objects, should all go to the schema, WSDL document is only for messages and portTypes. I think that is a better organization.
You're misunderstanding me. I'm not advocating moving all the schema entities into the .xsd file. I'm still advocating keeping those schema entities that are only relevant to the WSDL (i.e. message types and elements) inside the WSDL document. No other WSDL or schema needs to import those entities. The only reason I think we need a separate .xsd file is because there are schema entities that are shared between WSDL documents (i.e. Activity port type). Also, since the WSDL has a schema section, you can't say that the WSDL is only for port types and messages. That's just a personal preference. Why would the WSDL spec creators put it in there if not to allow you to put schema entities in the WSDL document?
You both are right, actually, as both approaches are valid. However, when developing WSDL, tools often are limited in not supporting the leading edge versions like, say, SOAP 1.2, WSDL 2.0 or whatever. So, you often end up messing around by hand in those WSDL files. And then separate XML Schema files get very handy in that they allow you to validate your XML elements. So far, I haven't seen any XML hacking tool that not only validates WSDL against the WSDL XML Schema, but also all XML Schema (or any other like RelaxNG for that matter) that's inside the wsdl:types element. Finally, probably a personal preference, one should keep XML Schema documents (everything in wsdl:types) and XML instance documents separate, and not mix them into one document. Using this approach helped us a great deal in ByteIO to find some possibly treacherous bugs in the ByteIO schemas. Just my 2 cents. Cheers, Michel -- Michel <dot> Drescher <at> uk <dot> fujitsu <dot> com Fujitsu Laboratories of Europe +44 20 8606 4834