informatica.science.unitn.it Un esempio di architettura basata sull’uso di XML e XSL per la pubblicazione di un sito web Contesto • Analisi delle caratteristiche di una particolare architettura per la pubblicazione del sito web del corso di laurea in informatica – Integrazione con il nuovo sito dell’Ateneo, dal quale prende la veste grafica e la struttura generale delle pagine – Definizione di caratteristiche comuni per le pagine, in modo da facilitare la navigazione – Gestione separata delle informazioni contenute nel sito (programmi dei corsi, pagine docenti, …) dalla loro presentazione, per facilitarne l’aggiornamento – Sviluppo di strumenti che forniscano servizi aggiuntivi (bacheca avvisi, calendario per i seminari, doppia lingua…) Requisiti • Gestione separata del contenuto e della presentazione Gestione separata del contenuto e della presentazione • Vantaggi – presentazione dello stesso contenuto in forme differenti (diversi tipi di documento, diversa impaginazione grafica) – diversificazione del grado di dettaglio delle informazioni nelle diverse pagine – evitare la duplicazione dell’informazione • Necessità di centralizzare la gestione della grafica di tutto il sito in modo da minimizzare lo sforzo in caso di modifiche successive alla pubblicazione Presentazione dello stesso contenuto in forme differenti manifesto Avviso di seminario pagina web email Necessità di centralizzare la gestione della grafica di tutto il sito in modo da minimizzare lo sforzo in caso di modifiche successive alla pubblicazione stessi contenuti ma grafica diversa necessità di modificare il sorgente di ciascuna pagina interna per adattarla alla nuova grafica ! Tecnologie adottate • XML per l’esposizione dei contenuti • XSL per la definizione della formattazione dei contenuti • DB per la memorizzazione dei dati • Cocoon 1 per la pubblicazione sul web • Classi Java per la business logic, per la lettura dei dati dal database e per la generazione delle parti di XML dinamico Web: Scelte fondamentali • Definizione di un modello per una pagina web, che: – modelli una generica pagina del sito – descriva tutti gli elementi che la compongono – non contenga dettagli di formattazione • Traduzione del modello in un DTD per un documento XML • Scrittura di tutte le pagine statiche del sito usando fogli XML conformi al DTD definito Web: Scelte fondamentali • Scrittura di uno o più fogli di stile XSL che contengano le istruzioni di trasformazione del foglio XML in pagine HTML, PDF XSL 1 XSL 2 Pagine a contenuto fortemente caratterizzato • Alcuni tipi di pagine hanno una forte caratterizzazione in termini di contenuto informativo – pagine docenti – pagine dei corsi – pagine contenenti avvisi di seminario, … • La pubblicazione sul web tramite pagine (statiche o dinamiche) di questo tipo di informazioni è solo uno dei possibili modi di renderla disponibile all’utente • Si è scelto di non memorizzare questo tipo di informazioni in fogli XML conformi al DTD definito per le pagine del sito, ma in fogli XML conformi a DTD specifici per il tipo di informazione contenuta Esempio: pagine docenti Esempio: pagine docenti XSL XSL Bean Java Database Esempio: avvisi di seminario XSL HTML PDF Esempio: pagine docenti Bean Java Database Definizione di meccanismi di inserimento dei dati Accorgimenti • Affiancamento di un foglio di stile CSS al foglio XSL di formattazione della pagina web – migliora l’accessibilità delle pagine del sito permettendo all’utente di sostituire il foglio CSS con uno maggiormente conforme alle sue necessità – uniforma alcune scelte grafiche (colori, font, …) – permette di inserire elementi di formattazione basati sulla semantica (significato) all’interno dei tag di contenuto della pagina tradotta in foglio XML