2
我正在嘗試使用WebService,其中WSDL中的某個複雜類型具有使用Ruby保留字的字段名稱。當我調用返回這些複雜類型之一併嘗試訪問數據的方法時,出現錯誤。在Ruby中使用保留字作爲字段名稱的Web服務
如何使用這個在Ruby中使用保留字的Web服務?
的WSDL的相關部分是:
<s:complexType name="someObject">
<s:sequence>
<s:element minOccurs="0" name="field1" type="s:string"/>
<s:element minOccurs="0" name="field2" type="s:boolean"/>
<s:element minOccurs="0" name="field3" type="s:string"/>
<s:element minOccurs="0" name="class" type="s:string"/>
<s:element minOccurs="0" name="field4" type="s:string"/>
</s:sequence>
<s:attribute form="unqualified" name="type" type="s:string"/>
</s:complexType>
這裏是我的方法調用回來的XML:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<MethodCallResponse>
<MethodCallResult>
<results>
<object type="someObject">
<field1>Whatever</field1>
<field2>true</field2>
<field3>TCP</field3>
<class>CLIENT</class>
</object>
</results>
</MethodCallResult>
</MethodCallResponse>
</soap:Body>
</soap:Envelope>
錯誤:
undefined method `class_eval' for "CLIENT":String
我使用紅寶石1.8.7-p302。
我相信一個好的解決方案是溝肥皂/ wsdlDriver和使用soap4r – 2010-10-29 14:23:16