我需要能够从Java WebService接收这个xml数据,我不确定在我的WebMethod中公开什么,所以我可以使用它?这只是一个基本的订单和项目.在.Net中,我只是传递了一个订单对象列表.
我应该进一步扩展.这是一个Oracle BPEL流程,需要映射到这个公开的C#WebService.我需要公开OrderNumber,ItemNumber等(如XML所示).我遇到的问题是我会有1到多个项目等,所以我不能只公开基本项(string,int).
对于大多数社区来说可能相当微不足道......只是不确定该怎么做?任何建议都非常感谢.
我可以做一些事情(构建一个订单对象,它似乎像我期望的那样显示xml?)
[WebMethod]
public static List<Orders> GetOrders(List<Orders> ordersList)
{
List<Orders oList = ordersList;
return oList;
}
Run Code Online (Sandbox Code Playgroud)
XML:
<Order>
<OrderNumber>12345</OrderNumber>
<OrderDate>01/25/2010</OrderDate>
<OrderSource>Affiliate123</OrderSource>
<Items>
<ItemNumber>123478</ItemNumber>
<Qty>5</Qty>
<UOM>EA</UOM>
<Description>Test Item</Description>
</Items>
</Order>
Run Code Online (Sandbox Code Playgroud)
你已经回答了你自己的问题。.NET Web 服务框架会将 的返回类型映射List<T>到 SOAP 级别的序列T,就像您使用了T[]( 的数组T) 一样。
当我编写像您一样的快速示例服务时,这是它返回的 XML:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetOrdersResponse xmlns="http://tempuri.org/">
<GetOrdersResult>
<Order>
<OrderNumber>int</OrderNumber>
<OrderDate>dateTime</OrderDate>
<OrderSource>string</OrderSource>
<Items>
<Item xsi:nil="true" />
<Item xsi:nil="true" />
</Items>
</Order>
<Order>
<OrderNumber>int</OrderNumber>
<OrderDate>dateTime</OrderDate>
<OrderSource>string</OrderSource>
<Items>
<Item xsi:nil="true" />
<Item xsi:nil="true" />
</Items>
</Order>
</GetOrdersResult>
</GetOrdersResponse>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
您的 BPEL 层应该能够非常轻松地使用它。
| 归档时间: |
|
| 查看次数: |
1918 次 |
| 最近记录: |