我正在实现一个连接到一个名为yardi的特殊数据库的soap服务的ruby接口。为了做到这一点,我使用的萨冯宝石。
许多必需的服务已经实现。然而,yardi中的一些服务需要一个与给定yardi提供的xds兼容的完整XML作为参数。我对这些服务有问题。
从根本上说,问题是savon更改了接收到的xml并更改了一些字符;例如
<
,
>
,
"
等等。
这是传递给服务的xml的真实示例:
<YsiTran xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns=""><Charges><Charge><Amount>100.0</Amount><AccountId>49610000</AccountId><ChargeCodeId>rentr</ChargeCodeId><Date>2017-01-23T00:00:00</Date><Notes>Charge with segments</Notes><PersonId>t0001306</PersonId><PostMonth>2017-04-01</PostMonth><PropertyId>385pa</PropertyId><Reference>Internet</Reference><UnitId>B3</UnitId><Segment1>collect</Segment1><Segment2>Technical</Segment2><Segment3>After due date</Segment3><Segment4>NA</Segment4><Segment5>IT</Segment5><Segment6>Owner</Segment6><Segment7>Testing</Segment7><Segment8>Testing</Segment8><Segment9>Employee</Segment9><Segment10>Sigma</Segment10><Segment11>January</Segment11><Segment12>Block 1</Segment12></Charge></Charges></YsiTran>
我非常确定这个xml是正确的,因为我已经用
SoapUI
. 也就是说,当我使用给定的xml将xml放入SoapUI时,服务会正确响应。
现在,当我将前面的xml放到savon中并看到请求时,我注意到xml被转换为
<YsiTran xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns=""><Charges><Charge><Amount>100.0</Amount><AccountId>49610000</AccountId><ChargeCodeId>rentr</ChargeCodeId><Date>2017-01-23T00:00:00</Date><Notes>Charge with segments</Notes><PersonId>t0001306</PersonId><PostMonth>2017-04-01</PostMonth><PropertyId>385pa</PropertyId><Reference>Internet</Reference><UnitId>B3</UnitId><Segment1>collect</Segment1><Segment2>Technical</Segment2><Segment3>After due date</Segment3><Segment4>NA</Segment4><Segment5>IT</Segment5><Segment6>Owner</Segment6><Segment7>Testing</Segment7><Segment8>Testing</Segment8><Segment9>Employee</Segment9><Segment10>Sigma</Segment10><Segment11>January</Segment11><Segment12>Block 1</Segment12></Charge></Charges></YsiTran>
我正在执行这样的请求:
client.call(service_name.intern,
message: { # other parameters
'TransactionXml' => transaction_xml })
client
是一个savon对象
transaction_xml
是包含xml的ruby字符串。
有什么线索吗,蒂普?提前谢谢