所以XML请求字符串我进入萨翁client.call是如下(注意这个工程,我得到回应):萨翁消息请求
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/"
xmlns:mun="http://schemas.datacontract.org/2004/07/External.Service.Bo">
<soap:Header/>
<soap:Body>
<tem:GetInformationsForCoordinates>
<tem:coordReq>
<mun:Coordinates>
<mun:Coordinate>
<mun:Id>1</mun:Id>
<mun:QualityIndex>90</mun:QualityIndex>
<mun:X>-110.5322</mun:X>
<mun:Y>35.2108</mun:Y>
</mun:Coordinate>
</mun:Coordinates>
</tem:coordReq>
<tem:analysisTypes>
<mun:AnalysisType>Additional</mun:AnalysisType>
</tem:analysisTypes>
</tem:GetInformationsForCoordinates>
</soap:Body>
</soap:Envelope>
而不是通过在作为XML这是不确实可行我想传递一个消息,所以我可以添加多个(可能的坐标的阵列),多个分析类型容易等
Ruby代码我不得不这样做到目前为止是:
coordinate = { Id: '1', QualityIndex: 90, X: -110.5322, Y: 35.2108}
coordinates = {Coordinates: [coordinate] }
coordinateReq = {coordReq: {coordinates: coordinates} }
然后我通过coor dinateReq到client.call - 我可以在Ruby中看到下面安慰产生的请求:
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:tns="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<tns:GetInformationsForCoordinates>
<coordReq>
<coordinates>
<Coordinates>
<Id>1</Id>
<QualityIndex>90</QualityIndex>
<X>-110.5322</X>
<Y>35.2108</Y>
</Coordinates>
</coordinates>
</coordReq>
</tns:GetInformationsForCoordinates>
</env:Body>
</env:Envelope>
有几个问题 - 有没有方法可以让我的namespance门添加到类似于我弦断XML正确的属性(即Id/QualityIndex等)。在我的例子中,用Ruby代码坐标是小写,然后坐标是大写,而它应该是大写,但不是复数。最后,我需要包含分析类型(注意小写字母大写T),然后是AnalysisType,其中可能有多个请求,并且AnalysisType也需要mun命名空间。
你可以尝试通过这些选项:'element_form_default:qualified','namespace_identifier:mun'到萨翁客户端。 – Magnuss