2016-07-18 76 views
5

在設計webservice時,無論它是否爲soapxmljson:您更喜歡平面還是嵌套列表?顯示webservices公開嵌套列表還是平面列表?

例子:

嵌套:

<carRequest> 
    <cars> 
    <car> 
     <manufature /> 
     <price /> 
     <description /> 
    </car> 
    <car> 
     <manufature /> 
     <price /> 
     <description /> 
    </car> 
    </cars> 
</carRequest> 

平:

<carRequest> 
    <car> 
     <manufature /> 
     <price /> 
     <description /> 
    </car> 
    <car> 
     <manufature /> 
     <price /> 
     <description /> 
    </car> 
</carRequest> 

什麼是一個比其他的優勢?

回答

6

有個人風格,工具(默認配置下,限制或易用性)相結合的優點和缺點,需要從一個單一的對象表示支持多個MIME類型,等等。我不會進入所有那 - 因爲對於一些什麼作品可能不適合別人一個好的解決辦法 - 但我只是想指出一些東西......

哪一個看起來更自然,平坦元件或包裝的元素呢?人們通常如何思考重複的元素?例如,<manufature>,<price><description>被包裝在<car>元素中。爲什麼?因爲它們是相關的並且組成一個結構。多個<car>也是相關的並且也形成結構:列表<car> s。它在表示和XML模式中更具表現力,更具可讀性。但是,當然,現在我們進入個人喜好和整體戰...

還有就是包裹元素的另一個優勢。你如何表達一張空車列表,而不是空列車?

如果這些元素是平的,你有沒有車,然後是什麼代表,當你解組爲一個對象?

<carRequest> 
</carRequest> 

請問你的要求有cars = nullcars = []?你不知道。

如果您有嵌套元素則cars = null走的是這樣的:

<carRequest> 
</carRequest> 

cars = []是這樣的:

<carRequest> 
    <cars> 
    </cars> 
</carRequest> 

因爲你提到SOAP,你可能會在某個時候需要跨考慮互操作性技術和工具(請參見Why is it important to be WS-I Basic Profile compliant?),它規定了XML在SOAP消息內的外觀。 The style called document/literal wrapped pattern is preferred

這是一個廣泛的主題,作爲TL; DR我只能想到"choose your poison"。我希望我的回答對你有所幫助。

+0

正如我還必須創建'xml' webservice的旁邊有一個'soap' web服務,我認爲WS-I compiance是我可能有利於一個比其他模式的地步。 – membersound