Strutturazione della risposta XML

2

Sto progettando una risposta XML per un'applicazione coinvolgente, e sto valutando due diversi design. Attualmente ho un progetto come segue (dove l'elemento Product può ripetere):

<Response>
    <AccountType>
    <ProductType>
    <Products>
       <Product>
           <ProductID />
           <ProductStatus />
           <ProductName />
       </Product>
       <Product>
           <ProductID />
           <ProductStatus />
           <ProductName />
       </Product>
    </Products>
</Response>

Un design alternativo è:

<Response>
    <AccountType>
    <ProductType>
    <Product>
        <ProductID />
        <ProductStatus />
        <ProductName />
    </Product>
    <Product>
        <ProductID />
        <ProductStatus />
        <ProductName />
    </Product>
</Response>

Nel primo disegno ho un elemento principale chiamato Prodotti, in base al quale ogni elemento del Prodotto esiste e può essere ripetuto all'interno dei Prodotti. Il secondo design è un po 'piatto - dove Product esiste sotto il nodo di risposta principale.

Quale dei due è più ottimale per un'applicazione che richiede di leggere e elaborare?

    
posta Ryan 05.04.2013 - 20:55
fonte

2 risposte

15

Quello che avvolge tutti i prodotti in un singolo elemento. Puoi trattarlo come una raccolta nella maggior parte dei linguaggi di programmazione che offrono serializzazione / deserializzazione.

Vedi Serializzazione XML di array e raccolte

Arrays and collections can be serialized to XML. The standard action when using the default serializer is for the name of the collection property to be added to the XML, with a contained element for each item named according to the items' data types...

    
risposta data 05.04.2013 - 20:59
fonte
2

Se lo stai processando con XPath o XSLT non fa molta differenza. Se stai utilizzando un linguaggio di programmazione meno adatto all'XML, l'elemento wrapper probabilmente renderà la vita più semplice.

    
risposta data 06.04.2013 - 11:01
fonte

Leggi altre domande sui tag