2010-08-26 47 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方法請求或響應中使用它。