When you have a wsdl document with
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="knownproduct[]"/>
you can see that the arrayType attribute has no namespace. In this case the implementation in
lib/wsdl/xmlSchema/attribute.rb:109 (svn revision 1681)
uses the XSD::Namespace and not the targetnamespace.
I believe one should use the targetnamespace in this case.
The WS where I found this example is http://www.fold1.com/SOAP/foldcalc.php?wsdl
However they have a bug?! that another line states
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
with string meaning xsd:string and targetNamespace="urn:fold".
For arrayType see http://www.w3.org/TR/wsdl.
Proposal:
Replace
XSD::QName.new(XSD::Namespace, value.source)
by
XSD::QName.new(targetnamespace, value.source)