我正在尝试使用WebService,其中WSDL中的一个复杂类型具有使用Ruby保留字的字段名称。当我调用一个方法返回这些复杂类型之一并尝试访问数据时,我收到一个错误。
如何使用在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
我使用的是ruby 1.8.7-p302。