2016-07-18 2 views
5

webserviceを設計する場合は、soapxml、またはjsonのいずれかである必要はありません。フラットまたはネストされたリストを好むでしょうか?Webサービスを表示すると、ネストされたリストまたはフラットリストが公開されますか?

例:

ネストされた:

<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> 

他の上の1つの利点は何ですか?

答えて

6

パーソナルスタイル、ツール(デフォルト設定、制限または使いやすさ)と組み合わせた長所と短所があり、単一のオブジェクト表現などから複数のMIMEタイプをサポートする必要があります。私はすべてに行きません他の人にとっては良い解決策にはならないかもしれないから、いくつかのことを指摘したいと思っています...

フラットな要素やラップされた要素はどちらが自然ですか?人々は通常どのように繰り返し要素について考えるのですか?例えば、<manufature>,<price>および<description>は、<car>要素で囲まれています。どうして?それらは関連しており、一緒になって構造を形成しているからです。複数の<car>も関連し、構造体を形成します:<car>のリスト。あなたの表現やXMLスキーマで表現力が増し、読みやすくなります。しかしもちろん、今私たちは個人的な好みに入り、全面的に戦います...

ラップされた要素の別の利点があります。空の自動車とヌル車のリストをどのように表現していますか?

要素がフラットで車がない場合、オブジェクトをアンマーシャリングしてオブジェクトにすると、これは何を表していますか?

<carRequest> 
</carRequest> 

ご要望にcars = nullまたはcars = []がありますか?あなたは知らない。

あなたがネストされた要素で行く場合は、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として、私は"choose your poison"としか思えません。私の答えがあなたに役立つことを願っています。

+0

私は 'xml'ウェブサービスの横に' soap'ウェブサービスを作成しなければならないので、私はWS-Iコンプライアンスが他のパターンよりも好きな点だと思います。 – membersound

関連する問題