# "undefined method in 'targetnamespace='" in wsdl/import after upgrading to Snow Leopard/1.8.7

**URL:** <https://www.ruby-forum.com/t/undefined-method-in-targetnamespace-in-wsdl-import-after-upgrading-to-snow-leopard-1-8-7/178834>\
**Category:** Ruby\
**Created:** [November 11, 2009, 10:31pm UTC](https://www.ruby-forum.com/t/undefined-method-in-targetnamespace-in-wsdl-import-after-upgrading-to-snow-leopard-1-8-7/178834 "2009-11-11T22:31:55Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![bill](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ac91a4/32.png) [@bill](https://www.ruby-forum.com/u/bill)\
**Post date:** [November 11, 2009, 10:31pm UTC](https://www.ruby-forum.com/t/undefined-method-in-targetnamespace-in-wsdl-import-after-upgrading-to-snow-leopard-1-8-7/178834/1 "2009-11-11T22:31:55Z")

</div>

I upgraded to Snow Leopard this morning and the 1.8.7 wsdlDriver suite  
doesn’t like a wsdl file that 1.8.6 processed fine.

I’m running this call:  
SOAP::WSDLDriverFactory.new(“[https://api.yieldmanager.com/api-1.30/](https://api.yieldmanager.com/api-1.30/)  
contact.php?wsdl”).create\_rpc\_driver

But when it tries to parse the 2nd line (\<wsdl:import  
namespace=“[http://api.yieldmanager.com/types](http://api.yieldmanager.com/types)” location=“xsd\_gen.php”/

> ) it throws the following error:

NoMethodError: undefined method `targetnamespace=’ for  
#WSDL::XMLSchema::Schema:0x8174b8b0  
method parse\_attr in import.rb at line 44  
method decode\_tag in parser.rb at line 143  
method each in parser.rb at line 139  
method decode\_tag in parser.rb at line 139  
method start\_element in parser.rb at line 84  
method start\_element in parser.rb at line 67  
method tag\_start in rexmlparser.rb at line 34  
method parse in streamparser.rb at line 24  
method parse\_stream in document.rb at line 201  
method do\_parse in rexmlparser.rb at line 27  
method parse in parser.rb at line 65  
method parse in importer.rb at line 29  
method import in importer.rb at line 31  
method import in importer.rb at line 18  
method import in wsdlDriver.rb at line 124  
method initialize in wsdlDriver.rb at line 28  
method new in yield\_manager.rb at line 40  
method client\_for in yield\_manager.rb at line 40  
method start\_session in yield\_manager.rb at line 56  
method session in yield\_manager.rb at line 47  
method find\_by\_description in vurl\_lookup.rb at line 15  
method test\_find\_by\_description in vurl\_lookup\_test.rb at line 12

The URL of the xsd\_gen file is  
[https://api.yieldmanager.com/api-1.30/xsd\_gen.php](https://api.yieldmanager.com/api-1.30/xsd_gen.php)

After much digging, I discovered that commenting-out this block from  
wsdl/import.rb (lines 43-45):

```
    if @content

```

@content.targetnamespace = @namespace  
end

…allows the file to parse normally and my request to complete.  
However, the files don’t appear to have changed between the 1.8.6  
release I was using and the 1.8.7 that comes with Snow Leopard, or if  
they have I can’t find the change.

Any clue as to what might have changed and how I can move this fix out  
of the library and into my client? If it’s non-standard XML, I’d like  
to point it out to their tech support team.

Thanks in advance,  
Bill
