Ci sono vantaggi e svantaggi combinati con stile personale, strumenti (le loro configurazioni predefinite, limitazioni o facilità d'uso), necessità di supportare più tipi MIME da una singola rappresentazione di oggetti, ecc. Non ho intenzione di andare in tutti di quello - dal momento che ciò che funziona per alcuni potrebbe non essere una buona soluzione per gli altri - ma voglio solo sottolineare alcune cose ...
Quale sembra più naturale, gli elementi piatti o gli elementi avvolti? In che modo le persone di solito pensano a elementi ripetuti? Ad esempio, <manufature>
, <price>
e <description>
sono racchiusi in un elemento <car>
. Perché? Perché sono correlati e insieme formano una struttura. Più di <car>
s sono anche correlati e formano una struttura: una lista di <car>
s. È più espressivo nella rappresentazione e nello schema XML e più leggibile. Ma naturalmente ora entriamo nelle preferenze personali e in tutte le guerre ...
C'è un altro vantaggio dell'elemento avvolto. Come si esprime un elenco di automobili vuote rispetto a un elenco di automobili che è nulla?
Se gli elementi sono piatti e non hai auto, cosa rappresenta questo quando lo si elimina in un oggetto?
<carRequest>
</carRequest>
La vostra richiesta sono cars = null
o cars = []
? Non lo sai
Se si va con gli elementi annidati allora cars = null
è questo:
<carRequest>
</carRequest>
mentre cars = []
è questo:
<carRequest>
<cars>
</cars>
</carRequest>
E dal momento che lei ha citato SOAP, si potrebbe ad un certo punto necessario prendere in considerazione l'interoperabilità tra tecnologie e strumenti (vedere Why is it important to be WS-I Basic Profile compliant?) che contiene regole su come dovrebbe apparire XML nel messaggio SOAP. The style called document/literal wrapped pattern is preferred.
Questo è un argomento vasto e come TL; DR Posso solo pensare a "choose your poison". Spero che la mia risposta ti sia di aiuto.
Come devo anche creare un servizio web 'soap' accanto al servizio web' xml', penso che la compatibilità con WS-I sia il punto in cui posso favorire uno rispetto all'altro modello. – membersound