Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

XMLSpy: un ambiente integrato per XML

Presentazione di XMLSpy, l'ambiente integrato per la scrittura di documenti XML
Presentazione di XMLSpy, l'ambiente integrato per la scrittura di documenti XML
Link copiato negli appunti

Sono numerose le tecnologie che ruotano intorno ad XML: dal Document Type Definition (DTD) all'XML Schema, da XPath all'eXtensible Style Sheet Language (XSL), a XSL Formatting Objects (XSL-FO). L'insieme di queste tecnologie consente di rappresentare dati tramite documenti XML e di elaborarli per ottenere output di diverso tipo: HTML, WML, PDF, RTF e altri formati standard o proprietari.

Ancora più numerosi sono gli strumenti per lavorare con tali tecnologie: dagli editor specializzati per la creazione di uno specifico tipo di documenti ai parser che convalidano un documento XML, dai processori XSLT che generano output personalizzato ai processori FO per il rendering in PDF, PostScript, ecc.

La potenza del modello XML e lo sviluppo relativamente recente delle tecnologie ad esso correlate hanno fatto proliferare numerosissimi tool, ciascuno pensato per una specifica fase dell'elaborazione dei documenti XML. Sono disponibili, pertanto, editor per la creazione di documenti XML, di XML Schema, di documenti XSLT, ciascuno con i suoi pregi ed i suoi difetti, ma difficilmente integrabili tra di loro. Senza parlare poi della necessità di dover spesso lanciare la validazione di un parser XML o la trasformazione di un processore XSLT dall'esterno di questi strumenti di editing.

Una delle difficoltà principali per chi si avvicina per la prima volta al mondo XML non è tanto la reperibilità degli strumenti, tra l'altro buona parte disponibile in forma Open Source (www.xmlsoftware.com, www.perfectxml.com), ma il metterli insieme per poter gestire l'intero flusso di elaborazione: dalla definizione dello schema alla generazione del formato di output desiderato.

XMLSpy (www.xmlspy.com) è un ambiente integrato per lavorare con le diverse tecnologie XML utilizzando un unico strumento. Con esso possiamo gestire l'intero flusso di elaborazione dei documenti XML sfruttando le sue potenti caratteristiche che semplificano la vita dello sviluppatore, evitandogli di doversi districare nei numerosi dettagli della sintassi dei linguaggi che gravitano intorno ad XML.

Progetti XMLSpy

Il primo elemento degno di nota è l'introduzione del concetto di progetto. Un progetto XMLSpy è l'insieme dei file, organizzati per tipologia, che consentono la definizione e l'elaborazione di un insieme di documenti XML.

XMLSpy prevede la presenza di diversi tipi di documenti in un progetto, come testimonia la finestra di creazione di un nuovo documento:

Schermata XMLspy scelta del documento

Oltre ai documenti strettamente attinenti alle tecnologie XML, come XML Schema, DTD, documenti XSLT, documenti XML, ecc., è possibile inserire in un progetto documenti relativi a linguaggi XML-based, come XHTML, RDF, WML, ecc., o anche documenti che non hanno alcuna relazione con XML, come ad esempio file TXT e ASP.

Le prime due categorie di documenti vengono aperte tramite un editor intelligente che offre modalità di visualizzazione e di modifica specifiche in base al tipo di documento.

L'editor integrato

Invece di proporre diversi editor ciascuno specializzato nella gestione di un particolare tipo di documento, XMLSpy propone un unico editor con diverse modalità di visualizzazione che dipendono dal tipo di documento aperto.

Molto potente è, ad esempio, la modalità di visualizzazione e di editing grafico degli XML Schema che consente di definire uno schema senza necessariamente conoscere tutti i dettagli della sintassi. La seguente figura mostra la finestra di editing grafico di un XML Schema.

Editing degli XML Schema

L'uso di questo strumento riduce drasticamente i tempi di definizione di XML Schema anche molto complessi. È naturalmente possibile accedere direttamente al codice testuale sfruttando l'apposita modalità di visualizzazione che prevede, tra l'altro, una comoda funzionalità di suggerimento dei tag e degli attributi sensibile al contesto.

La creazione di un nuovo documento XML può essere effettuata basandosi su uno XML Schema o un DTD predefinito. In questo caso l'editor propone già una struttura di documento da completare con i dati specifici e suggerisce gli elementi che possono essere inseriti nel documento. È inoltre in grado di verificare contestualmente che il documento sia ben formato e che sia valido rispetto allo XML Schema o al DTD specificato.

I documenti XML possono essere visualizzati dall'editor secondo una modalità testuale e una modalità grafica che ne rispecchia la struttura gerarchica. Una terza modalità, chiamata Document Editor, consente la modifica di un documento XML basandosi su modelli che offrono un rendering in HTML. L'inserimento di valori in corrispondenza dei tag viene effettuato tramite form HTML visualizzate all'interno dell'editor stesso, come mostrato dalla seguente figura.

Modalità grafica editor

Trasformazioni con XSLT

Una volta definito il nostro XML Schema e creato il documento XML possiamo passare alla fase di trasformazione tramite XSLT. Per fare questa operazione ci viene incontro lo XSLT Designer, un editor specializzato nella creazione di documenti XSLT per la trasformazione di un documento XML in HTML. L'approccio utilizzato è completamente visuale, anche se non manca il solito approccio testuale.

XSLT Designer

La creazione di un documento XSLT viene realizzata a partire da uno XML Schema, trascinando sull'area di lavoro gli elementi XML e specificando il tipo di elemento HTML da generare in corrispondenza. L'editor si occuperà di generare l'opportuno codice XSLT.

Lo XSLT Designer consente, tra l'altro, di definire i modelli utilizzati dal Document Editor per l'editing grafico dei documenti XML.

Componenti esterni e funzionalità avanzate

XMLSpy ha un'architettura aperta che consente all'utente di specificare il processore da utilizzare per eseguire le trasformazioni XSLT così come consente di scegliere il processore FO preferito per il rendering in formati di stampa come PDF o PostScript.

L'ambiente di sviluppo prevede inoltre funzionalità avanzate di interfacciamento con database. È infatti possibile importare ed esportare dati tra documenti XML e database accessibili tramite ODBC e OLEDB in maniera abbastanza semplice.
Un'altra interessante funzionalità riguarda la presenza di un ambiente di debugging di messaggi SOAP. Sempre dall'interno dell'ambiente di sviluppo è possibile creare una richiesta SOAP, inviarla ad un servizio Web ed analizzarne la risposta, senza necessità di realizzare alcun programma. Caratteristica molto interessante soprattutto per chi si avvicina per la prima volta a SOAP, in quanto consente di toccare con mano l'interoperabilità promessa da questa tecnologia basata su XML.

Considerazioni finali

XMLSpy rappresenta uno strumento per XML paragonabile ai moderni ambienti di sviluppo integrati per la programmazione. Esso porta tutti i vantaggi insiti in tali ambienti rispetto all'uso di strumenti autonomi e con approcci differenti l'uno dall'altro. A ciò si aggiunga la possibilità di personalizzare l'ambiente XMLSpy tramite script JavaScript o VBScript e di realizzare programmi in grado di interfacciarsi ad esso per sfruttarne le funzionalità.

Alcuni aspetti, tuttavia, rimangono scoperti, almeno nella versione attuale (4.3), per raggiungere quella effettiva completezza come ambiente di sviluppo integrato per XML: in particolare, manca un approccio visuale per la generazione di documenti XSLT che non generino necessariamente codice HTML e l'esistenza di un editor visuale per XSL-FO.
Vedremo come evolverà nelle prossime versioni.

Andrea Chiarelli (a.chiarelli@manthys.it) si occupa di progettazione e sviluppo di applicazioni Web e di formazione professionale presso Manthys (www.manthys.it), società di formazione e consulenza informatica di cui è titolare. Collabora con diverse riviste di settore sia italiane (Computer Programming, Dev, Visual Basic Journal) che straniere (ASPToday) ed è autore di testi su JavaScript e ASP.

Ti consigliamo anche