Reporting services e XML data source
Stimolato da un post sul forum UGISS, cerco di mettere ordine e tirare le fila circa la possibilita' di utilizzare file XML come data source dei nostri report.
In realta' parliamo solo di file XML come sorgente dati, non di come poter utilizzare XML uscente da un metodo remoto di un web service.
Supponiamo di avere un file xml come il seguente:
<?xml version="1.0"?>
<vendite>
<categoria id="1" name="cat01">
<cliente id="1" name="luca">
<qta>12</qta>
</cliente>
</categoria>
<categoria id="1" name="cat02">
<cliente id="2" name="marco">
<qta>1</qta>
</cliente>
<cliente id="3" name="giovanni">
<qta>7</qta>
</cliente>
</categoria>
</vendite>
Supponiamo anche di averlo raggiungibile su un URL definito, ad esempio:
http://localhost:8081/OnlineShopping/vendite.xml
Vediamo i passi necessari e sufficienti per poter creare un dataset con i dati del nostro file.
Ci e' sufficiente definire la nostra sorgente dati con le seguenti caratteristiche:
- tipo XML
- data source: http://localhost:8081/OnlineShopping/vendite.xml
A questo punto definiamo la nostra query come: vendite / categoria / cliente
Alcune considerazioni:
- l'estensione XML ritorna data type stringa (in questo caso non posso utilizzare schema)
- non posso utilizzare sintassi XPath
Proprio per il motivo di cui sopra non saremmo in grado, immediatamente, di eseguire dei totali sui nostri dati (la voce di menu "total', infatti non e' disponibile).
Per farlo dobbiamo necessariamente, in maniera esplicita, utilizzare funzioni di conversione per trasformare le nostre stringhe, ad esempio, in formato numerico.

A questo punto possiamo aggregare i dati secondo le nostre necessita' e saremo comunque noi, a mano, che andremo ad inserire, ad esempio nel footer di una tabella, la corretta funzione di aggregazione che vogliamo utilizzare (ad esempio la SUM).