|
Xsl e XQuery sono due cose diverse con scopi diversi.
XML da solo è un "contenitore" di informazioni. In verità è qualcosa di più in quanto queste informazioni grazie all'utilizzo di tag semantici hanno una loro ben precisa definizione.
Non contiene però alcuna indicazione strutturale o di presentazione.
Il W3C assieme allo strumento XML mette a disposizione una serie di altri strumenti che permettono di strutturare e presentare le informazioni, nonché di ricercarle al suo interno.
1) I DTD e gli Xml Schema permettono di strutturare il documento.
2) Xsl può essere visto come l'insieme di tre elementi(XPath, XSLT e XSLFO) che utilizzati assieme permettono di presentare il documento aggiungendo stili di formattazione e impostando la visualizzazione.
In particolare XPath permette di selezionare gli elementi da formattare all'interno del file XML e XSLT permette di definire le regole di trasformazione (è un foglio di stile).
Esiste anche un altro strumento fondamentale, ossia il processore XSLT, che è un software che fonde assieme XML e XSLT e in base al target di presentazione scelto (XHTML, PDF, ecc...) genera il documento finale.
I moderni browser come Firefox e IE7 hanno implementato nativamente il processore XSLT per cui basta dare loro in pasto i vari file correttamente preparati e la trasformazione avviene real-time. E' anche possibile fare la trasformazione a priori attraverso le librerie messe a disposizione da vari linguaggi di programmazione (per .NET trovi tutto in System.XML)
In questa fase è possibile generare documenti XHTML validi e ben formati.
3) XQuery non è altro che un' evoluzione di XPath che permette di realizzare query più complesse. Praticamente con le espressioni XPath trovi gli elementi e con apposite espressioni XQuery le estrapoli.
Sinceramente io lo trovo un po' complesso e macchinoso, ma in realtà non ho approfondito molto la questione.
Secondo i creatori dovrebbe diventare lo standard per le interrogazioni su XML, cioè quello che è (standard più o meno) SQL per i database relazionali.
Ciao!
|