You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by Jeremy Hughes <hu...@apache.org> on 2006/05/31 17:49:03 UTC

[converter] namespace prefixes only used within aren't propagated

I'm about to open a JIRA for this unless someone has an objection.

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