Creazione di file XML a partire da database relazionali

A volte, seguire un esempio creato da qualcun altro è un buon modo per iniziare rapidamente un progetto. Lo svantaggio è che si potrebbe perdere una soluzione migliore e più efficiente. Nel nostro recente articolo su "XML nel cloud", abbiamo utilizzato DatabaseSpy per connetterci a un database MySQL locale e al servizio Amazon Relational Database Service nel cloud. Abbiamo utilizzato la funzione Concat() in un'istruzione SQL SELECT per creare un output in formato XML a partire da dati non XML, come mostrato di seguito.

La nostra istruzione SELECT si basava su un esempio presente nella documentazione di MySQL relativo al supporto per XML. Analizziamo più approfonditamente il problema a cui questa affermazione cerca di dare una risposta. È possibile copiare una tabella dei risultati di DatabaseSpy, come quella mostrata sopra, e incollarla in una finestra di modifica in XMLSpy, ma la tabella dei risultati da sola non crea un documento XML ben formato. Per essere ben strutturato, in conformità con la definizione del W3C, Un documento XML deve contenere un elemento radice. Tutti gli altri elementi e le strutture logiche devono essere contenuti all'interno dell'elemento principale. Potete anche considerare l'elemento radice come un contenitore che racchiude l'intero contenuto XML, proprio come l'elemento racchiude ogni riga nei nostri risultati originali. Un metodo migliore per creare file XML a partire da dati relazionali Non è necessario modificare manualmente i risultati per aggiungere un elemento radice, né è necessario adattare la nostra già complessa query SQL per includere tale elemento. DatabaseSpy ci permette di esportare facilmente documenti XML ben formattati dalle tabelle del database che contengono dati comuni, come ad esempio la nostra tabella delle città. Nella finestra di dialogo di esportazione di DatabaseSpy, possiamo scegliere il formato XML come formato di output, selezionare la tabella "cities" per estrarla dalla gerarchia del database e scegliere XMLSpy come destinazione. La sezione "Anteprima" nella parte inferiore della finestra di dialogo di esportazione mostra una visualizzazione del contenuto della tabella.

Quando si preme il pulsante "Esporta", DatabaseSpy formatta i dati relazionali utilizzando nomi di elementi XML derivati dai nomi delle colonne della tabella e invia l'output risultante direttamente a XMLSpy. Lo screenshot qui sotto mostra una parte del file visualizzato in XMLSpy. La finestra "Messaggi" in basso conferma che il file è correttamente formattato.

Si noti che DatabaseSpy ha fornito l'elemento radice e ha aggiunto commenti per descrivere i tipi di dati delle colonne della tabella del database. Inoltre, non è stato necessario costruire un'istruzione SQL con una complessa funzione Concat(). Abbiamo iniziato questo articolo per affrontare la semplice esigenza di un elemento radice per completare l'output della funzione Concat() che abbiamo descritto in precedenza. Quando progetti reali richiedono la conversione da database relazionali a XML, i requisiti saranno probabilmente molto più complessi.

Altova XMLSpy si connette direttamente a tutti i database più diffusi per lavorare con le tecnologie XML e i dati relazionali. XMLSpy consente di creare facilmente uno schema XML a partire dalla struttura di un database, oppure di creare uno schema di database a partire da uno schema XML. XMLSpy include anche editor e debugger avanzati per XQuery e XPath, per i dati XML memorizzati direttamente nei database, oltre a un supporto specializzato per le funzionalità XML in Microsoft SQL Server, IBM DB2 e database Oracle. Man mano che sempre più settori adottano e sviluppano standard basati su XML per lo scambio di informazioni, una necessità comune è quella di convertire i dati memorizzati in database legacy in formato XML. Altova MapForce si connette ai database e consente di mappare e trasformare i dati relazionali per renderli compatibili con uno o più schemi XML.

È possibile utilizzare la mappatura per eseguire una conversione dei dati una sola volta, oppure salvare e riaprire la mappatura per eseguire un'altra conversione in un momento successivo. In alternativa, è possibile istruire MapForce per generare codice sorgente privo di royalty a partire dalla mappatura, da includere nel proprio progetto quando sono necessarie conversioni ripetute.

Se desiderate vedere di persona come gli strumenti Altova possono generare file XML ben formattati a partire da database relazionali, scaricate una versione di prova gratuita del Altova MissionKit.