Where a WSDL 1.1 <definitions> element contains a namespace prefix declaration which is only used within a <types> section, it is lost in conversion. e.g.
<? xml version = "1.0" encoding = "UTF-8" ?>
< wsdl:definitions targetNamespace = "http://grainsofsand.beach"
xmlns = "http://schemas.xmlsoap.org/wsdl/"
xmlns:impl = "http://grainsofsand.beach"
xmlns:intf = "http://grainsofsand.beach"
xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap = "http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd = "http://www.w3.org/2001/XMLSchema" >
< wsdl:types >
< schema elementFormDefault = "qualified"
targetNamespace = "http://grainsofsand.beach"
xmlns = "http://www.w3.org/2001/XMLSchema" >
< element name = "getGrainCount" >
< complexType >
< sequence >
< element name = "arg_0_0" nillable = "true"
type = "xsd:string" />
</ sequence >
</ complexType >
</ element >
< element name = "getGrainCountResponse" >
< complexType >
< sequence >
< element name = "getGrainCountReturn" type = "xsd:double" />
</ sequence >
</ complexType >
</ element >
</ schema >
</ wsdl:types >
when converted loses the xmlns:xsd declaration so Woden (actually Xerces) complains with:
[Error] GrainsOfSandCounter.wsdl2:12:66: UndeclaredPrefix: Cannot resolve 'xsd:string' as a QName: the prefix 'xsd' is not declared.
[Error] GrainsOfSandCounter.wsdl2:12:66: cvc-attribute.3: The value 'xsd:string' of attribute 'type' on element 'element' is not valid with respect to its type, 'QName'.
[Error] GrainsOfSandCounter.wsdl2:19:62: UndeclaredPrefix: Cannot resolve 'xsd:double' as a QName: the prefix 'xsd' is not declared.
[Error] GrainsOfSandCounter.wsdl2:19:62: cvc-attribute.3: The value 'xsd:double' of attribute 'type' on element 'element' is not valid with respect to its type, 'QName'.
When resolving which namespace prefixes to keep in the WSDL 2.0 file, the converter should consider the contents of the <types> section.
Jeremy