2010-08-26 49 views
0

在XML-RPC中有一个无限数组的元素而没有在数组/数据父节点中有效吗?从我与XML-RPC有限的经验,我已经看到,阵列应该被列为这样的:此结构在XML RPC中有效吗?

<member> 
    <name>Name</name> 
     <value> 
     <array> 
      <data> 
       <value> 
        <string>Red</string> 
       </value> 
       <value> 
        <string>Blue</string> 
       </value> 
      </data> 
     </array> 
     </value> 
</member> 

...与父名称生儿育女弦乐器红色和蓝色。但是,我们正在集成的第三方RPC服务发送无界元素的数组,而不将它们放在数组/元素内部,而是放置在结构中,例如,

<member> 
    <name>Name</name> 
     <value> 
     <struct> 
      <member><name>Option0</name> 
       <value><string>Red</string> 
      </member> 
      <member><name>Option1</name> 
       <value><string>Blue</string> 
      </member> 
     </struct> 
     </value> 
</member> 

...将Option1和Option2的值封装在结构体中。

我现在面临的问题是,设计将被序列化的类时,我会设计我的课,如

private string Option0 
private string Option1 

...

...而不是:

private string[] Name 

因为我不知道在结构中返回的无界字段的数量,似乎完成任务的正确方法是使用一个字符串数组来枚举。但是,resoponse XML中没有数组,只是具有动态数量字段的结构。因此,我不得不列出大量的字段以符合结构,尽管它不是一个真正的结构,而是一个数组。 XML-RPC有什么缺失吗?

+0

您确定要了解XML-RPC而不是SOAP吗?现在,XML-RPC的用途很少。 – 2010-08-26 14:50:17

+0

超出我的控制范围。这是使用XML-RPC的第三方服务,因此我们必须与其进行整合。 – 2010-08-26 14:56:57

回答

4

是的,它是非常有效的XML-RPC结构。我们也有这种情况,正在使用Cook Computings' XML-RPC.NET。它完美的作品。检查一下,有一个特殊的课程叫XmlRpcStruct。你只需要在你的XML-RPC方法请求或响应中使用它。