Gazzetta n. 102 del 3 maggio 2002 (vai al sommario) |
AUTORITA' PER L' INFORMATICA NELLA PUBBLICA AMMINISTRAZIONE |
CIRCOLARE 22 aprile 2002, n. 40 |
Formato per la rappresentazione elettronica dei provvedimenti normativi tramite il linguaggio di marcatura XML. |
|
|
A tutte le amministrazioni pubbliche
1. Premessa. L'impulso istituzionale sui temi del riordino normativo e della qualita' della regolazione persegue l'obiettivo di semplificazione del corpus normativo, attraverso azioni mirate a ridurre il numero delle norme e a favorirne la chiarezza. A tale scopo, la circolare del Presidente del Consiglio dei Ministri del 20 aprile 2001, pubblicata nella Gazzetta Ufficiale del 27 aprile 2001, n. 97 (in seguito riferita come circolare 2001), ha riformato le regole alle quali le amministrazioni sono invitate ad attenersi nella redazione dei provvedimenti (cosiddetta attivita' di drafting). Tali regole sono state riformulate in maniera piu' analitica, ed integrate con riferimento alla redazione dei testi regolamentari, nella ""Guida alla redazione dei testi normativi"", pubblicata nel supplemento ordinario alla Gazzetta Ufficiale n. 101 del 3 maggio 2001. Per rendere effettiva la conoscibilita' delle norme da parte dei cittadini e' necessario che, accanto agli interventi di semplificazione, siano intraprese iniziative idonee a consentire l'accessibilita' telematica alle norme, risolvendo i problemi di carattere giuridico e tecnologico che ne ostacolano l'attuazione. La necessita' di prevedere azioni finalizzate a consentire l'accessibilita' telematica del corpus normativo trova una sua affermazione nel programma e-Europe, che colloca i dati giuridici tra i dati pubblici essenziali, classificati come prioritari, l'accessibilita' dei quali e' riconosciuta come diritto dei cittadini che gli Stati membri dell'Unione europea devono impegnarsi a garantire. 2. Standard per la rappresentazione dei provvedimenti normativi. La diffusione di strumenti informatici per la produzione, il trattamento e la pubblicazione dei testi costituisce un fattore abilitante per perseguire gli obiettivi citati, ma va accompagnata dalla definizione di regole e criteri volti ad accrescere l'efficacia e l'interoperabilita' degli strumenti automatici di elaborazione e dei servizi connessi nel contesto specifico della produzione e pubblicazione di documenti a carattere normativo. Il progetto intersettoriale dell'Aipa "Norme in rete" ha affrontato, nella sua prima fase, i problemi relativi all'uniformita' delle funzioni di ricerca delle norme attraverso internet, indipendentemente dai formati di rappresentazione dei provvedimenti. E' stato, quindi, realizzato un portale per l'accesso unificato ai documenti di interesse normativo pubblicati sui siti web istituzionali, ricorrendo alle tecnologie di indicizzazione e ricerca dei documenti in base alle parole presenti nel testo. Parallelamente sono state avviate attivita' di standardizzazione finalizzate a favorire l'interoperabilita' tra sistemi diversi e a consentire la realizzazione di funzionalita' piu' specifiche. In particolare, sono state definite le regole per l'assegnazione di un nome identificativo univoco ai provvedimenti normativi, allo scopo di semplificare la realizzazione di funzionalita' di navigazione ipertestuale tra basi documentali normative distinte e di migliorare l'efficacia delle funzioni di ricerca. Tale standard e' stato divulgato attraverso la circolare 6 novembre 2001, n. AIPA/CR/35 "Assegnazione dei nomi uniformi ai documenti giuridici" (pubblicata nella Gazzetta Ufficiale n. 262 del 10 novembre 2001). Un altro elemento determinante per la realizzazione di sistemi di elaborazione piu' efficaci e' rappresentato dalla possibilita' di identificare gli elementi costitutivi dei documenti appartenenti ad una stessa classe (come, ad esempio, gli elementi che costituiscono la struttura dei provvedimenti normativi quali: titolo, parti, articoli, commi e altro) e di associare ad essi altre informazioni che ne arricchiscano o qualifichino il contenuto. Tale integrazione del contenuto informativo di un testo puo' essere attuata con i linguaggi di marcatura (o mark-up) che forniscono le tecniche per associare ai documenti testuali, o a loro specifiche parti, informazioni aggiuntive. La condivisione di un medesimo formalismo di marcatura dei testi normativi resi accessibili da organismi differenti, anche se dotati di sistemi informatici tecnologicamente eterogenei, consente di costruire un sistema di ricerca unitario, in grado di offrire funzionalita' piu' efficaci ed un livello di precisione superiore a quello ottenibile con la semplice ricerca per parole. Inoltre, la marcatura dei provvedimenti normativi in base a regole definite consente di rappresentare informazioni relative anche a quelle specifiche parti del testo che contengono riferimenti ad altri provvedimenti e - soprattutto se attuata gia' a partire dalle fasi di drafting - rende possibile la realizzazione di sistemi informatici di supporto alle azioni di riordino normativo e di costruzione dei testi vigenti. 3. Formalismo di rappresentazione adottato. Il linguaggio di marcatura che offre la possibilita' di definire strutture per classi omogenee di documenti e che si sta progressivamente affermando come standard nell'ambito della rete internet e' l'extensible markup language (XML), gia' adottato dall'Aipa nella circolare 7 maggio 2001, n. AIPA/CR/28 (Gazzetta Ufficiale n. 113 del 17 maggio 2001) per rappresentare le informazioni da associare ai documenti scambiati attraverso i sistemi di protocollo informatico. Il linguaggio XML consente di specificare vincoli di correttezza strutturale su una classe di documenti attraverso un formalismo di definizione di regole, denominato document type definition (DTD): ogni insieme di documenti che presenta caratteristiche uniformi puo' essere descritto con uno specifico DTD. Nell'ambito delle attivita' svolte dai gruppi di lavoro del progetto "Norme in rete", tale formalismo e' stato adottato per rappresentare i principali tipi di atti normativi. La necessita' di fornire regole di rappresentazione valide per diverse tipologie di provvedimenti e di affiancare ad esse una modalita' di marcatura semplificata ha dato luogo alla definizione di tre DTD tra di loro compatibili in quanto adottano le medesime definizioni per gli elementi comuni. Essi, pur descrivendo all'incirca lo stesso insieme di provvedimenti, si differenziano per la rigidita' dei vincoli imposti alla struttura del documento, come illustrato nel seguito: a) il DTD base descrive documenti che hanno una struttura molto semplice e regolare, non presentano eccezioni e rispettano le regole per la redazione dei documenti normativi espresse nella circolare 2001. L'attuazione della marcatura secondo le regole specificate in questo DTD risulta semplice e copre una casistica sufficientemente ampia. La sua maggiore semplicita' facilita, inoltre, le fasi di sperimentazione; b) il DTD completo e' in grado di descrivere documenti di struttura piu' complessa, ma anch'essi conformi alle prescrizioni della circolare 2001, rappresentando i vincoli nella numerazione e nella composizione delle parti della struttura previsti per ciascun tipo di atto. Dal momento che il DTD completo consente la gestione di una piu' estesa varieta' di informazioni e strutture, esso risulta necessariamente piu' complesso; c) il DTD flessibile si adegua alle possibili strutture irregolari dei documenti normativi esistenti, permettendo di descriverne le caratteristiche, anche se difformi dalle regole di tecnica legislativa previste per le norme piu' recenti, e permette di descrivere documenti che presentino eccezioni o particolarita'. 4. I provvedimenti descritti. I provvedimenti normativi descritti dai tre DTD possono essere raggruppati, in funzione della loro struttura, in due categorie di documenti: a) il documento articolato, che prevede una struttura costituita da intestazione, formula iniziale (che puo' contenere un preambolo), articolato, formula finale, conclusione, eventuali annessi. L'articolato e' in genere strutturato secondo una rigida gerarchia nella quale ciascun componente ha una numerazione e una rubrica. I provvedimenti che riflettono la struttura del documento articolato sono: leggi, leggi costituzionali, decreti-legge, decreti legislativi, decreti del Presidente della Repubblica, decreti del Presidente del Consiglio dei Ministri, regi decreti, leggi regionali; b) il documento semi-articolato, in cui sono previsti gli stessi elementi che compongono la struttura del documento articolato, ma senza vincoli sull'obbligatorieta' della loro presenza e sull'ordine in cui compaiono. Oltre agli elementi previsti nella struttura, possono essere presenti elementi testuali arbitrari, non strutturati gerarchicamente. A questa categoria di documenti appartengono, ad esempio, gli atti di Autorita', i decreti ministeriali non numerati, i decreti del Presidente della Repubblica non numerati e i decreti del Presidente del Consiglio dei Ministri non numerati. 5. La rappresentazione della struttura degli atti. Gli elementi della struttura formale di un atto normativo, che vengono identificati attraverso specifiche modalita' secondo le regole di marcatura proposte, sono: a) intestazione: ogni documento normativo possiede un'intestazione composta da un tipo di documento, una data, un numero d'ordine ed un titolo; b) formula iniziale: le formule di rito iniziali sono obbligate e ripetute tra tutti i documenti di uno stesso tipo e vengono opportunamente marcate. Essa contiene l'eventuale preambolo; c) articolato: l'articolato si compone di libro, parte, titolo, capo, sezione, paragrafo ed articolo secondo le regole di composizione relative a ciascun tipo di provvedimento. Ogni elemento della gerarchia puo' avere una rubrica testuale ed un numero d'ordine; d) elementi interni all'articolo: un articolo e' composto da commi, che contengono o un corpo di testo o elenchi composti di elementi lettera o di elementi numero, eventualmente tra loro nidificati. Articoli e commi possono presentare la cosiddetta decorazione, che consente di specificare l'origine normativa dell'articolo stesso, aggiungendosi alla rubrica; e) formula finale: le formule di rito finali sono strutturate ed appositamente marcate; f) conclusione: in essa viene identificata la parte in cui si specificano la data e il luogo in cui e' stato firmato l'atto normativo. Il blocco di sottoscrizioni e' composto dai sottoscriventi e dal visto; g) annessi: un documento normativo puo' prevedere uno o piu' annessi, che possono essere semplici elementi testuali, grafici, tabelle o interi documenti strutturati. Le regole di marcatura prevedono sia la possibilita' di porre il corpo dell'annesso all'interno del documento ospite, sia di rappresentarlo esternamente, in un documento autonomo. Oltre agli elementi che rappresentano aspetti legati alla struttura degli atti normativi, i criteri di marcatura proposti permettono anche di identificare e di integrare informazioni che possono presentarsi ovunque all'interno del testo e che, nel contesto dei documenti normativi, rivestono un ruolo specifico. Tra questi, di notevole importanza sono i riferimenti normativi che contengono richiami ad altre norme. Tali riferimenti possono consistere in semplici citazioni o costituire lo strumento attraverso il quale hanno luogo interventi modificativi o abrogazioni. Una corretta e completa marcatura di queste parti consente la realizzazione di funzionalita' di navigazione ipertestuale e di supporto alla costruzione dei testi vigenti. 6. Meta-informazioni. Le meta-informazioni rappresentano informazioni che non fanno parte integrante del testo stesso, ma possono essere di interesse per gli utenti o utili ai fini delle elaborazioni automatiche. I DTD di Normeinrete forniscono una sintassi per la rappresentazione delle meta-informazioni, prevedendone cinque tipi: a) descrittori: sono alcune meta-informazioni fondamentali per descrivere il documento, come gli estremi della pubblicazione ufficiale, eventuali ripubblicazioni, il nome uniforme (secondo lo standard URN emanato con la citata circolare n. AIPA/CR/35), gli eventuali nomi alternativi usati nel linguaggio corrente (alias) con cui il documento e' noto (ad esempio: "legge Merloni"), le vigenze, eventuali relazioni con altri documenti normativi e una lista di parole chiave per descrivere il documento; b) lavori preparatori: in questa sezione e' possibile includere, a testo libero, informazioni e documenti connessi ai lavori preparatori relativi al provvedimento; c) proprietario: uno schema libero di meta-informazioni che ciascuna organizzazione che produce, gestisce o pubblica testi di provvedimenti normativi puo' liberamente definire per il raggiungimento di scopi applicativi specifici; d) redazionale: in questa sezione la redazione che si occupa di pubblicare un documento ha la possibilita' di inserire informazioni libere sulla pubblicazione. Ad esempio, note di redazione o avvertenze; e) disposizioni: in questa sezione si possono inserire disposizioni caratterizzanti o analitiche per descrivere il contenuto normativo di un documento. Le meta-informazioni rilevanti possono essere tante e di vario tipo e la definizione dei DTD fin qui messa a punto ne comprende solo alcune. Pertanto, e' possibile che le evoluzioni future degli standard qui illustrati, a seguito di ulteriori approfondimenti o di nuovi contributi, diano luogo ad estensioni delle meta-informazioni. 7. La rappresentazione della vigenza. I DTD di Normeinrete prevedono la rappresentazione di provvedimenti sia nel testo originale, sia in quello vigente ad una certa data ovvero in una forma redazionale in cui le modifiche intervenute fino alla specifica data stabilita sono riportate nel testo. E' inoltre possibile rappresentare provvedimenti multivigenti, che riportano tutte le modifiche che si sono succedute nel tempo, con le corrispondenti date di validita'. La rappresentazione del testo multivigente consente la realizzazione di applicazioni in grado di ricostruire dinamicamente il testo vigente in funzione di una data richiesta, non prestabilita. 8. Documentazione di supporto. Il formalismo di rappresentazione adottato per lo standard qui proposto si integra con le regole per l'associazione del nome uniforme a ciascun provvedimento definite nella citata circolare n. AIPA/CR/35. L'adozione di entrambi gli standard da parte delle pubbliche amministrazioni, consentendo l'interoperabilita' tra le diverse basi documentali e la realizzazione di funzionalita' di ricerca e di elaborazione piu' efficaci, contribuira' a favorire l'esercizio del diritto di accesso all'insieme dei dati pubblici costituito dai provvedimenti normativi. L'allegato tecnico alla presente circolare introduce i fondamenti del linguaggio di marcatura adottato, costituisce una guida alla marcatura dei testi normativi secondo i DTD di Normeinrete e fornisce alcune indicazioni sugli strumenti software di supporto alle tecnologie adottate. Sui siti www.aipa.it e www.normeinrete.it sono pubblicati i DTD con i necessari commenti esplicativi al loro interno, un glossario degli elementi e degli attributi adottati ed alcuni riferimenti tecnici. Si invitano, pertanto, le amministrazioni a valutare l'opportunita' di adottare lo standard proposto, eventualmente graduando nel tempo le conseguenti attivita' e definendo opportuni criteri di priorita'. Qualora le amministrazioni aderissero al progetto Normeinrete, le stesse potranno usufruire del supporto offerto al suo interno. Roma, 22 aprile 2002 Il presidente f.f.: Batini |
| Allegato tecnico alla Circolare 22 aprile 2002, n. AIPA/CR/40
FORMATO PER LA RAPPRESENTAZIONE ELETTRONICA DEI PROVVEDIMENTI NORMATIVI TRAMITE IL LINGUAGGIO DI MARCATURA XML.
Introduzione. Il presente allegato tecnico introduce le cognizioni fondamentali sul linguaggio XML allo scopo di fornire gli strumenti di base necessari alla comprensione e all'utilizzo dei DTD proposti nell'ambito del progetto "Norme in rete". Il documento e' articolato in quattro parti: la prima contiene un'introduzione ai linguaggi di marcatura e ai costrutti fondamentali di XML; la seconda illustra i DTD di Normeinrete e fornisce le indicazioni fondamentali per attuare la marcatura dei provvedimenti normativi conformemente alle regole contenute nei DTD; la terza fornisce indicazioni sugli strumenti software di supporto all'utilizzo di XML; la quarta, infine, riporta un esempio di testo normativo con la marcatura conforme alle regole qui esposte. L'esposizione che segue e' incentrata sui documenti testuali, che costituiscono la tipologia di dati in cui ricadono i provvedimenti normativi, e tralascia gli aspetti non indispensabili alla comprensione dei DTD o non rilevanti in relazione alla tipologia di documenti trattati, quali, ad esempio, i sistemi di codifica dei caratteri. Il proficuo utilizzo del linguaggio XML e l'avvio di iniziative mirate all'attuazione della marcatura dei provvedimenti normativi secondo gli standard qui proposti richiede, comunque, approfondimenti di natura tecnica per i quali si rimanda all'ampia letteratura disponibile sulla materia ed ai riferimenti pubblicati sui siti www.aipa.it e www.normeinrete.it, ove compaiono anche i DTD con i necessari commenti esplicativi al loro interno ed un glossario degli elementi e degli attributi adottati. Si segnala, inoltre, che sul sito www.normeinrete.it e' disponibile un sistema on-line introduttivo di autoistruzione su XML e i DTD di Normeinrete. 1. I linguaggi di marcatura ed XML. 1.1. I linguaggi di marcatura: generalita'. I linguaggi di marcatura (o mark-up) permettono di arricchire la conoscenza sul contenuto dei dati associando ad essi ulteriori informazioni. La marcatura di un documento testuale avviene associando un'etichetta a ciascuna parte del testo che risulta rilevante o in virtu' del suo significato, oppure in quanto rappresentativa della struttura del documento stesso. Tali etichette, dette tag, vengono rappresentate con un nome delimitato da simboli caratteristici ed inserite in maniera da racchiudere la parte di testo a cui si riferiscono. Cosi', ad esempio, il titolo di un documento puo' essere identificato includendolo tra due tag, <titoloDoc> e </titoloDoc>, che ne individuano rispettivamente l'inizio e la fine, come nell'esempio seguente: <titoloDoc>Interventi correttivi di finanza pubblica</titoloDoc> La marcatura di un insieme di provvedimenti attuata identificando il titolo di ciascun documento consente di realizzare, ad esempio, funzioni di ricerca per parole presenti nei titoli, oppure funzioni di visualizzazione o stampa che associno ai titoli un determinato formato. Un linguaggio di marcatura specifico prevede un insieme di tag che descrivono unicamente le caratteristiche rilevanti per gli scopi per cui il linguaggio e' stato concepito. Ad esempio, HTML (HyperText Markup Language), il linguaggio piu' diffuso per la predisposizione di pagine web, contiene un vocabolario prefissato di tag, che hanno lo scopo principale di descrivere le caratteristiche tipografiche con cui rendere la visualizzazione di una pagina web: ad esempio, il tag <i> esprime il fatto che il testo cui e' associato deve essere visualizzato in corsivo (i sta per italic); pertanto, la marcatura di un testo con questo tag: <i> Interventi correttivi di finanza pubblica </i> viene interpretata dal programma di visualizzazione (browser) in modo da produrre il seguente formato di presentazione: Interventi correttivi di finanza pubblica In genere, i sistemi di ricerca e i programmi per il trattamento e l'elaborazione dei testi (word processor) utilizzano propri linguaggi di marcatura per realizzare funzioni che agiscano su specifiche parti del testo. In molti casi, pero', si determina uno stretto vincolo di dipendenza tra i documenti ed i programmi in grado di elaborarli, generando una commistione tra i dati veri e propri - con le loro caratteristiche strutturali e semantiche - e le applicazioni finalizzate ad elaborazioni specifiche, rendendo a volte necessarie conversioni di formato per effettuare elaborazioni diverse sullo stesso testo. Pertanto, il diffondersi di linguaggi di marcatura specifici che siano divulgati ed aggiornati da organismi indipendenti di standardizzazione (come e' avvenuto per HTML con il W3C) costituisce un fattore determinante per assicurare l'interoperabilita' tra sistemi diversi e l'indipendenza della rappresentazione dei dati da tecnologie proprietarie. A differenza dei linguaggi di marcatura specifici, i linguaggi di marcatura generalizzati forniscono la sintassi per creare propri vocabolari di tag e per definirne le regole grammaticali di composizione; tali regole permettono di generare nuovi linguaggi di marcatura in grado di rappresentare le caratteristiche di specifiche tipologie di documenti. 1.2. Extensible Markup Language (XML). Il linguaggio di marcatura generalizzato che - per le sue caratteristiche di portabilita' e semplicita' - si sta affermando come standard nel mondo Internet e' XML (Extensible Markup Language). In questa sezione vengono descritti i costrutti fondamentali del linguaggio; i termini che assumono un significato specifico in questo contesto vengono evidenziati in grassetto corsivo. Per creare un linguaggio di marcatura specifico con XML, il vocabolario di tag e le regole grammaticali che ne governano l'utilizzo vengono definiti attraverso un formalismo detto document type definition (DTD). La comprensione delle caratteristiche di XML richiede la descrizione dei suoi due contesti di utilizzo fondamentali, distinti ma tra di loro collegati: la marcatura di un documento secondo le regole di un linguaggio di marcatura specifico; la creazione di un linguaggio di marcatura specifico attraverso un DTD. I paragrafi che seguono illustrano i due argomenti sopraelencati. 1.2.1. La marcatura di un testo in XML. La marcatura di un testo in XML avviene inserendo i tag e gli eventuali dati aggiuntivi rispettando le denominazioni e le regole di composizione dei corrispondenti elementi ed attributi definiti nel DTD. Gli elementi costituiscono i componenti fondamentali della marcatura: ciascuna unita' informativa che si ritiene opportuno marcare con uno specifico tag viene denominata elemento. Dal punto di vista sintattico, un elemento XML e' l'insieme di un tag di apertura, un tag di chiusura e della porzione di testo compresa fra i due tag, come ad esempio in: <rubrica> Semplificazione e accelerazione dei procedimenti amministrativi </rubrica> Con riferimento all'esempio sopra riportato, si dira' che l'elemento rubrica e' composto da un tag di apertura (<rubrica>), un contenuto (Semplificazione e accelerazione dei procedimenti amministrativi) ed un tag di chiusura (</rubrica>). Ciascun elemento puo' essere integrato con ulteriori informazioni mediante propri attributi. Gli attributi vengono usati per rappresentare un'informazione relativa all'elemento, adottando in genere un formato codificato che ne faciliti l'elaborazione automatica. Ciascun attributo di un elemento deve essere posto all'interno del corrispondente tag di apertura, con la sintassi nome="valore". La sintassi generale e' quindi: <tag-elemento nome-attributo=" valoreattributo"> ...contenuto dell'elemento... . </tag-elemento> Nell'esempio che segue, un attributo viene utilizzato per fornire un identificativo univoco al primo comma dell'articolo 1 di un provvedimento: <comma id="art1-com1"> ... contenuto del comma </comma> Gli elementi devono rispettare precise regole di contenimento ed essere tra di loro correttamente nidificati: ogni elemento puo' contenerne altri e deve esistere un elemento che contiene tutti gli altri, che viene detto elemento radice. Perche' un documento sia ben formato, cioe' sintatticamente corretto secondo XML, e' sufficiente che per ogni tag di apertura (<nome>), esista un successivo tag di chiusura, (</nome>) e che tag diversi siano tra di loro correttamente nidificati. Questa condizione impone che gli elementi di un documento XML rispettino una gerarchia, con una struttura ad albero. L'operazione attraverso cui avviene il confronto di un documento XML con le regole espresse nel DTD ad esso associato e la segnalazione di eventuali difformita' viene detta validazione. XML fornisce gli strumenti per caratterizzare le varie parti di un documento, senza entrare nel merito degli aspetti tipografici relativi alla sua visualizzazione. Per quest'ultimo scopo e' necessario ricorrere a fogli di stile (detti anche stylesheet), che associano specifiche tipografiche agli elementi costitutivi identificati con la marcatura. Tale separazione fa si' che lo stesso testo marcato con XML possa essere utilizzato per scopi diversi, ad esempio visualizzato su una pagina web o stampato, associando le caratteristiche tipografiche appropriate per lo specifico supporto fisico di visualizzazione attraverso fogli di stile esterni. Un documento XML contiene alcune dichiarazioni che precedono il testo, secondo lo schema di figura 1. 1. Dichiarazione XML 2. Direttive di visualizzazione 3. Dichiarazione DOCTYPE 4. Contenuto del documento Figura 1: Struttura di un documento XML. 1. Dichiarazione XML - specifica la versione di XML usata ed eventualmente il tipo di codifica dei caratteri usati. Esempio: <?xml version="1.0"encoding="iso-8859-1"?> 2. Direttive di visualizzazione - consentono di associare uno specifico foglio di stile al documento. La dichiarazione e' del tipo: <?xml-stylesheet type="text/css"href="Nirbase.css"?> 3. Dichiarazione DOCTYPE - consente di associare al documento XML il DTD che contiene le regole a cui deve conformarsi la marcatura. Puo' contenere direttamente il DTD o, piu' comunemente, specificare l'indirizzo presso cui reperirlo, come nell'esempio che segue: <!DOCTYPE NIR SYSTEM"/dtd/nircompleto.dtd"> 4. Contenuto del documento - contiene il testo del documento integrato con tag ed attributi. Nella parte quarta si riporta un esempio di un provvedimento sul quale e' stata attuata la marcatura. Alcuni importanti benefici che possono derivare dall'utilizzo di XML dipendono dalla condivisione delle specifiche. A questo scopo XML consente di fare riferimento ad elementi definiti in altri vocabolari, attraverso i cosiddetti namespace. Per evitare le ambiguita' derivanti dalla presenza di tag con lo stesso nome, definiti in vocabolari diversi, si puo' associare un prefisso ai tag che provengono da vocabolari esterni, in modo che la concatenazione prefisso:nome assicuri l'unicita' delle denominazioni. Nel rimandare per una descrizione piu' approfondita dei namespace ai riferimenti pubblicati sul sito www.normeinrete.it, per gli scopi di questa esposizione e' sufficiente sottolineare che i DTD di Normeinrete utilizzano alcuni elementi definiti nel vocabolario di HTML e che ad essi viene associato il prefisso h: (ad esempio <h:p>). 1.2.2. Document Type Definition (DTD). Un DTD relativo ad una particolare tipologia di documenti contiene le definizioni degli elementi e le regole che governano la corretta marcatura dei testi che appartengono a tale tipologia; tra le regole alcune stabiliscono le relazioni di composizione tra gli elementi, utilizzabili per costruire elementi strutturati, dette anche nel loro insieme content model dell'elemento. Di seguito vengono illustrati i principali costrutti di un DTD, con esempi tratti dal contesto specifico di applicazione. Elementi. La definizione di un elemento avviene attraverso la seguente sintassi: <!ELEMENT nome-elemento content-model> Le regole che esprimono il content model possono usare molteplici operatori per generare espressioni anche complesse. Di seguito vengono riportati i principali:
===================================================================== simbolo | significato | esempio ===================================================================== \ |alternativa (OR) |legge\decretolegge , |sequenza |num,rubrica ? |opzionale : 0 o 1 |rubrica? * |opzionale : 0 o piu' |sottoscrivente* + |obbligatorio : 1 o piu' |comma+ |obbligatorio: 1 |num ( ) |gruppi di elementi |(num, rubrica?, (comma+))
Ad esempio, la regola seguente definisce un elemento articolo, che contiene un elemento num, un elemento facoltativo chiamato rubrica ed uno o piu' elementi chiamati comma: <!ELEMENT articolo (num, rubrica?, (comma+))> Attributi di un elemento. Gli attributi di un elemento vengono definiti attraverso la sequenza "<!ATTLIST", seguita dal nome dell'elemento. Di ogni attributo vengono riportati il nome, il tipo ed un eventuale valore di default, che viene attribuito automaticamente in assenza di un'assegnazione esplicita. La sintassi generale e' quindi: !ATTLIST nome-elemento nome-attributo-1 tipo-1 valore-1 nome attributo-2 tipo-2 valore-2 ................................... nome attributo-n tipo-n valore-n> Il tipo di un attributo definisce l'insieme dei corrispondenti valori leciti. Ad esempio, il tipo CDATA definisce come valori ammissibili per l'attributo stringhe di caratteri, mentre il tipo ID impone il vincolo che il valore assunto dall'attributo sia unico, in modo da costituire un identificativo univoco. In alcuni casi il tipo viene indicato con una lista di valori ammissibili (ad esempio: (originale\vigente)). Il valore puo' contenere il valore di default, oppure delle parole chiave di cui di seguito si elencano le principali: REQUIRED: indica che, quando si effettua la marcatura, e' obbligatorio inserire un valore per il corrispondente attributo; IMPLIED: indica invece che e' facoltativo valorizzare l'attributo. Entita' parametrica. I DTD possono contenere entita' parametriche, allo scopo di riutilizzare una stessa definizione ripetuta in piu' parti del DTD. Le entita' parametriche si denotano utilizzando come simbolo iniziale % . Ad esempio, poiche' nei DTD di Normeinrete molti elementi prevedono un attributo per rappresentare una data in un formato normalizzato, si definisce un'entita' parametrica che viene utilizzata per definire gli attributi relativi alle date nei diversi elementi che lo prevedono, come mostrato negli esempi seguenti: <!ENTITY % data "norm CDATA REQUIRED"> <!ATTLIST dataDoc %data;> <!ATTLIST dataeluogo %data;> Commenti. I commenti sono annotazioni inserite allo scopo di favorire la comprensione delle definizioni fornite nel DTD e chiarirne l'uso per gli utilizzatori. I commenti vanno posti all'interno di specifici delimitatori (<!- - testo del commento - ->), come illustrato nell'esempio che segue: <!- - ============================ Entita' esterne: caratteri =========================== - ->; 2. La marcatura dei provvedimenti normativi con i dtd di NORMEINRETE. I DTD di Normeinrete sono stati definiti con lo scopo di pervenire ad una rappresentazione informatica dei provvedimenti normativi che integri il testo con un'adeguata rappresentazione della sua struttura e con informazioni aggiuntive che ne possano consentire un efficace utilizzo. In questa seconda parte si entra nel merito delle tipologie di provvedimenti descritti e dei DTD definiti per rappresentarli. 2.1. I provvedimenti descritti. I provvedimenti normativi possono essere classificati, in funzione della loro struttura, in due tipi: documento articolato, che prevede una struttura costituita da: intestazione, formula iniziale (che contiene l'eventuale preambolo), articolato, formula finale, conclusione, eventuali annessi. L'articolato e' in genere strutturato secondo una rigida gerarchia in cui ciascun componente ha una numerazione e una rubrica. I provvedimenti che riflettono la struttura del documento articolato sono: leggi, leggi costituzionali, decreti legge, decreti legislativi, decreti del Presidente della Repubblica, decreti del Presidente del Consiglio dei Ministri, decreti ministeriali, regi decreti, leggi regionali. documento semi-articolato, che presenta gli stessi elementi strutturali del documento articolato, ma non prevede vincoli rigidi sull'obbligatorieta' della loro presenza, l'ordine in cui compaiono, la numerazione e la presenza di rubriche. A questa categoria appartengono, ad esempio, gli atti di autorita', i decreti ministeriali non numerati, i decreti del Presidente della Repubblica non numerati e i decreti del Presidente del Consiglio dei Ministri non numerati. I DTD di Normeinrete prevedono anche la rappresentazione di documenti non caratterizzati da vincoli specifici di composizione della struttura, denominati genericamente DocumentoNIR, consentendo cosi' di descrivere anche gli allegati ai testi normativi, caratterizzati da una notevole eterogeneita' di formato. Sono stati definiti tre DTD che adottano lo stesso vocabolario di elementi ed attributi e forniscono regole che si differenziano per la rigidita' dei vincoli imposti alla struttura del documento. Il DTD base consente la rappresentazione di documenti che presentano una struttura molto semplice e regolare e rispettano le regole per la redazione dei documenti normativi espresse nella circolare 2001. L'attuazione della marcatura secondo le regole specificate nel DTD base risulta semplice e copre una casistica sufficientemente ampia. La sua maggiore semplicita' ne suggerisce l'adozione nelle fasi iniziali di apprendimento o di sperimentazione. Il DTD completo permette di rappresentare documenti di struttura piu' complessa, ma anch'essi conformi alle prescrizioni della circolare 2001, rappresentando i vincoli nella numerazione e composizione delle parti della struttura previsti per il tipo di atto, degli articoli e dei commi. Poiche' consente la descrizione di una piu' estesa varieta' di informazioni e strutture, risulta necessariamente piu' complesso. Il DTD flessibile si adegua alle possibili strutture irregolari dei documenti normativi esistenti, permettendo di descriverne le caratteristiche anche se difformi dalle regole di tecnica legislativa previste per le norme piu' recenti; permette inoltre di descrivere documenti che presentano eccezioni o particolarita'. E' necessaria la sua adozione per i provvedimenti che si discostano dalle prescrizioni della circolare 2001. I tre DTD contengono regole coerenti, piu' o meno rigide a seconda delle esigenze; tutti i documenti validi con il DTD base sono validi anche secondo il DTD completo e tutti i documenti validi secondo il DTD completo sono validi anche secondo il DTD flessibile. I DTD prevedono la marcatura di provvedimenti sia nel testo storico, sia nel testo vigente ad una certa data, in cui sono riportate le modifiche in vigore alla data specificata, sia nei testi multivigenti, in cui sono riportate tutte le modifiche intervenute nel tempo con associate le rispettive date di validita'. L'obiettivo di rappresentare diverse tipologie di documenti, evitando la creazione di numerosi DTD distinti ciascuno specializzato per tipo di provvedimento, ha portato alla definizione di un ampio insieme di elementi, di cui solo alcuni sono necessari nella maggioranza dei casi. La marcatura va quindi improntata a criteri di minimalita' e specificita': e' opportuno inserire solo i tag necessari e scegliere quelli piu' specifici in relazione al ruolo ed alla posizione del testo che deve essere descritto. Nelle sezioni seguenti si illustrano gli elementi piu' significativi, comuni ai tre DTD. 2.2. Elementi descrittivi delle caratteristiche degli atti normativi. Gli elementi che rappresentano caratteristiche tipiche degli atti normativi, che verranno piu' in dettaglio descritti nei paragrafi successivi, si distinguono in tre categorie: elementi strutturali: descrivono caratteristiche legate alla struttura e alle parti dell'atto normativo (ad esempio: intestazione, formula iniziale, preambolo, articolato, formula finale, conclusione); elementi speciali: descrivono ulteriori caratteristiche rilevanti che possono comparire in qualunque parte del testo (ad esempio: riferimenti normativi, specificazioni di atti, soggetti, enti, date e luoghi); metainformazioni: descrivono, ad esempio: lavori preparatori, avvertenze, dati di classificazione, ecc. Sono poi stati definiti ulteriori elementi, detti generici, che consentono la marcatura di parti del documento senza una caratterizzazione semantica specifica. In particolare, gli elementi generici consentono la rappresentazione di: strutture che possono essere presenti in testi non redatti secondo le regole espresse nella circolare 2001 (ad esempio: i paragrafi all'interno di un comma al di fuori di elenchi numerati), oppure in atti per cui non e' prevista una struttura predefinita; particolari specifiche di visualizzazione, nei casi in cui la caratterizzazione tipografica e' indipendente dalla marcatura, ad esempio quando una parola appare evidenziata in grassetto o in corsivo per specifica scelta del legislatore e non corrisponde ad uno specifico elemento; grafici e tabelle, anch'essi indipendenti da una caratterizzazione semantica. Gli elementi descritti nel seguito e per i quali viene fornita una definizione nel glossario pubblicato sui siti www.aipa.it e www.normeinrete.it sono qui evidenziati con una sottolineatura. Nella versione elettronica della presente circolare pubblicata sui predetti siti e' attivo il link ipertestuale che ne richiama la definizione. 2.2.1. Elementi strutturali. Gli elementi che rappresentano i componenti della struttura formale di un atto normativo sono: intestazione: e' composta da un tipo di documento, una data, un numero d'ordine ed un titolo; formula iniziale: le formule di rito iniziali sono obbligate e ripetute tra tutti i documenti di uno stesso tipo e vengono opportunamente marcate. Esse sono strutturate utilizzando l'elemento blocco. La formula iniziale contiene l'eventuale preambolo; articolato: si compone di libro, parte, titolo, capo, sezione, paragrafo ed articolo secondo le regole di composizione relative a ciascun tipo di provvedimento specificate nel DTD. Ogni elemento della gerarchia puo' avere ulteriormente una rubrica testuale ed un numero d'ordine; elementi interni all'articolo: un articolo e' composto da commi, ciascun comma contiene o un corpo di testo o un elenco. Ogni elenco, che e' introdotto da un elemento alinea e puo' chiudersi con una coda, puo' essere composto da elementi lettera (el) o da elementi numero (en), eventualmente tra di loro annidati; formula finale: e' strutturata utilizzando l'elemento blocco; conclusione: e' composta da un elemento dataeluogo e dalle sottoscrizioni. Il blocco di sottoscrizioni e' composto da zero o piu' sottoscriventi e da un elemento visto; annessi: possono rappresentare diverse tipologie di documenti, quali semplici elementi testuali, grafici, tabelle, o documenti strutturati. E' possibile sia porre il corpo dell'annesso all'interno del documento ospite, sia rappresentarlo esternamente. Ogni elemento annesso puo' pertanto contenere l'intero documento che costituisce l'annesso oppure il riferimento ad un documento esterno che lo contenga. 2.2.2. Elementi speciali. Gli elementi cosiddetti speciali individuano informazioni che sono rilevanti per il loro significato, indipendentemente dalla posizione in cui si trovano all'interno della struttura del provvedimento. I principali elementi speciali sono: i riferimenti normativi, che contengono richiami ad altre norme quali semplici citazioni, gli interventi modificativi o le abrogazioni. Una corretta e completa marcatura di queste parti consente la realizzazione di funzionalita' di navigazione ipertestuale e di supporto alla costruzione dei testi vigenti. Gli elementi di questo tipo sono: rif: un riferimento esplicito ad un altro testo. L'identificativo del provvedimento citato, che deve essere il suo nome uniforme come indicato nella circolare 6 novembre 2001, n. AIPA/CR/35, viene fornito come valore di un attributo; mrif: un riferimento esplicito multiplo a piu' parti di uno stesso provvedimento, come quando ad esempio si citano vari articoli della medesima legge; mod, virgolette: un riferimento modificativo complesso. L'elemento virgolette serve per identificare parti di testo, solitamente tra virgolette, che racchiudono le parti di testo esistente o le novelle da sostituirvi. Sono poi stati definiti altri elementi particolari (def, atto, soggetto, ente, data, luogo) per la cui descrizione si rimanda al glossario allegato. 2.2.3. Meta-informazioni. Le metainformazioni rappresentano informazioni aggiuntive di interesse per gli utenti, che non fanno parte integrante del testo stesso. Le metainformazioni rilevanti possono essere tante e di vario tipo: l'immissione della maggior parte di esse e' opzionale. Sono previste metainformazioni che afferiscono alle seguenti tipologie: 1. descrittori: comprendono gli estremi della pubblicazione ufficiale, eventuali ripubblicazioni, il nome uniforme (urn), gli eventuali nomi alternativi usati nel linguaggio corrente (alias) con cui il documento e' noto (ad esempio: legge Merloni), le vigenze, eventuali relazioni con altri documenti normativi, e una lista di parole chiave (keywords) per descrivere il documento; 2. lavori preparatori: sono informazioni e documenti connessi ai lavori preparatori relativi al provvedimento; 3. redazionale: prevede la rappresentazione di informazioni libere sulla pubblicazione. Ad esempio: una nota, avvertenza o altro; 4. disposizioni: possono essere introduttive (finalita' del testo, ambito di applicazione, istituzione di enti, definizioni di termini), direttive generiche (competenza, potere, diritto, dovere), direttive specifiche (obbligo, divieto, permesso, procedura), rimediali (sanzione, riparazione), finali (finanziarie, transitorie) e modificative (eccezione, abrogazione, sostituzione, integrazione, vigenza, proroga, reviviscenza, sospensione, retroattivita', ultrattivita', estensione, deroga). Possono, inoltre, essere rappresentati i criteri di necessita' ed urgenza, la delega, i pareri, le proposte, i considerata, i visto, le norme di attuazione di direttiva europea e le specificazioni di copertura finanziaria; 5. proprietario: e' da utilizzare per scopi specifici di utilita', non previsti a priori. 2.3. Elementi fondamentali ed elementi opzionali nella marcatura dei documenti. I DTD Normeinrete consentono di rappresentare numerose caratteristiche dei documenti normativi. Una marcatura che utilizzi tutti gli elementi previsti puo' risultare quindi complessa e richiedere il ricorso a competenze tecniche e giuridiche non sempre disponibili. Per questo motivo viene di seguito indicato un livello minimo di marcatura, che comprende: l'intestazione in tutte le sue parti; la struttura dell'articolato (inclusi i commi, gli alinea, le lettere ed i numeri dove appropriato); la distinzione in paragrafi delle formule iniziali e finali; la corretta elencazione e il collegamento agli annessi; le metainformazioni della sezione descrittori; l'identificazione dei riferimenti normativi; la valorizzazione dell'attributo ID dove obbligatorio. Ulteriori caratteristiche oggetto di marcatura sono: la specifica degli ID per tutti gli elementi in cui essi sono previsti anche se facoltativi; l'identificazione di tutte le parti semanticamente rilevanti descritte dai tag def, atto, soggetto, ente, data, luogo, mod; le metainformazioni della sezione lavoripreparatori. Le altre metainformazioni, a parte quelle descrittive, rappresentano un contributo redazionale e non ufficiale di caratterizzazione del contenuto del documento. Per questo motivo, oltre a essere facoltative, in alcuni casi possono non essere univoche. Pertanto, le informazioni delle sezioni redazionale, proprietario e disposizioni possono essere fornite indipendentemente, anche esternamente al documento stesso, permettendo cosi' la coesistenza di contributi redazionali di diversa provenienza collegati ad uno stesso documento. 2.4. Caratteristiche distintive dei tre DTD di Normeinrete. Nella presente sezione si illustrano le caratteristiche specifiche dei tre DTD. Dal punto di vista della composizione, il DTD base contiene in un unico file, denominato nirbase.dtd, e tutte le definizioni essenziali e risulta, quindi, di piu' facile leggibilita', mentre il DTD completo e il DTD flessibile si articolano in piu' file. In particolare, le definizioni di elementi che non presentano differenze tra i due DTD - completo e flessibile - sono condivise e contenute in file comuni, che sono cosi' denominati: definizioni generiche a tutti i DTD nel file global.dtd; definizioni di strutture specificamente normative nel file norme.dtd; definizioni di strutture testuali, tabellari o modulari nel file text.dtd; definizioni di strutture per la gestione delle metainformazioni nel file meta.dtd. Le definizioni specifiche in cui i DTD completo e flessibile si differenziano sono invece contenute in file distinti, denominati rispettivamente nircompleto.dtd e nirflessibile.dtd, e comprendono essenzialmente gli elementi che definiscono i content model dei provvedimenti, a cui sono imposti vincoli di differente rigidita'. 2.4.1. Il DTD base. Il file nirbase.dtd contiene tutte le definizioni necessarie per consentire la marcatura secondo il modello semplificato. I provvedimenti che e' possibile marcare sono quelli articolati e quelli generici, denotati come DocumentoNIR. L'articolato deve rispettare la gerarchia seguente: libri, parti, titoli, capi, articoli, commi. Ciascun componente della gerarchia ha una numerazione obbligatoria, mentre la rubrica e' facoltativa. Gli annessi sono necessariamente documenti esterni ed indipendenti, soltanto citati all'interno del documento principale. Non e' previsto nel DTD base alcun supporto per elementi eccezionali o caratterizzazioni tipografiche specifiche: ad esempio, non e' possibile inserire immagini o tabelle all'interno dell'articolato, ne' capoversi all'interno di commi e lettere. Il DTD base permette di specificare soltanto documenti originali o vigenti; pertanto, per marcare documenti multivigenti, e' necessario adottare il DTD completo o il DTD flessibile. Le metainformazioni da inserire sono solo quelle relative agli elementi descrittori e redazionali. 2.4.2. Il DTD completo. Il DTD completo descrive tutti i tipi di provvedimento previsti: articolati, semiarticolati e generici. Le caratteristiche tipiche dei documenti che si rappresentano con il DTD completo sono: la rigidita' della gerarchia delle parti, che deve prevedere nell'ordine: libro, parte, titolo, capo e articolo; il capo puo' essere ulteriormente diviso in sezioni; l'obbligatorieta' della numerazione degli articoli; l'obbligatorieta' della numerazione dei commi; il vincolo che impone che il testo possa comparire solo all'interno di specifici elementi di struttura, come i commi o le formule iniziali e finali. 2.4.3. Il DTD flessibile. Il DTD flessibile descrive tutti i tipi di provvedimento previsti: articolati, semiarticolati e generici. Le caratteristiche tipiche dei documenti che si rappresentano con il DTD flessibile sono: la gerarchia delle parti non impone che venga rispettato uno specifico ordine o regole rigide di contenimento; parti di testo possono comparire anche al di fuori degli elementi che rappresentano la struttura, all'interno di elementi generici di tipo paragrafo o contenitore appositamente previsti; la numerazione di ciascun elemento e' facoltativa, anche per articoli e commi. 2.4.4. Scegliere il DTD piu' appropriato. I criteri di massima per scegliere il DTD piu' adatto sono: usare il DTD base nelle fasi iniziali di marcatura, anche allo scopo di approfondire le caratteristiche descritte attraverso gli elementi fondamentali. Essendo piu' semplice, il DTD base e' il piu' restrittivo e non gestisce alcuni casi; e' preferibile utilizzare, quando possibile, il DTD completo, che e' quello che meglio rappresenta le disposizioni contenute nella circolare 2001; il DTD flessibile va utilizzato per tutti quei documenti che presentino marcate differenze strutturali rispetto a quanto previsto dalla circolare 2001, come la mancanza di numerazione dei commi o la presenza di elementi strutturali sconsigliati (ad esempio, paragrafo); e' opportuno fare riferimento al DTD flessibile quando si realizzano applicazioni che sfruttano la marcatura e che debbano garantire una validita' generale. 3. Tecniche e strumenti software per l'attuazine della marcatura. In questa terza parte si forniscono alcune indicazioni operative e strumenti software per orientarsi nelle fasi di creazione ed utilizzo di documenti XML. In particolare verranno esaminate le fasi di editing, verifica e visualizzazione. 3.1. Editing. Le attivita' di editing comprendono sia la creazione di documenti elettronici utilizzando le specifiche di Normeinrete, sia la conversione di documenti gia' esistenti. Creazione di nuovi testi normativi. I programmi applicativi utilizzabili per creare nuovi testi possono ricadere in una delle seguenti tre categorie: editor di testo: questi programmi consentono di creare documenti XML in cui l'autore deve inserire sia il contenuto sia l'informazione di mark-up, senza il supporto di funzionalita' specifiche per l'inserimento dei tag; wordprocessor: consentono di creare documenti strutturati utilizzando elementi di stile. Per poter salvare il documento nel formato XML stabilito dai DTD Normeinrete occorre sviluppare procedure ad hoc; editor XML: forniscono funzionalita' di supporto alla creazione di un documento XML secondo le regole espresse in un DTD indicato dall'utente. Sono dotati di interfacce che guidano l'utente nell'immissione, presentando in ogni punto del documento solo l'insieme dei tag leciti in quel contesto, secondo le regole definite nel DTD. Gli editor XML offrono diverse modalita' di presentazione, in grado di visualizzare la struttura ad albero del documento o evidenziare la distinzione tra tag, attributi e contenuto degli elementi. Rendono, inoltre, disponibili le funzionalita' di validazione. In sintesi, l'uso efficace di editor di testo e word processor richiede lo sviluppo di procedure per fornire funzionalita' specializzate di supporto alle operazioni di marcatura conformemente ai DTD Normeinrete. Gli editor XML, invece, importano queste informazioni direttamente dai DTD. Importazione di testi pregressi. Laddove esistano raccolte di testi normativi gia' in formato elettronico va valutata la possibilita' di realizzare procedure automatiche di conversione nel formato Normeinrete. L'inserimento automatico dei tag previsti dai DTD di Normeinrete puo' avvenire solo laddove il testo di partenza rappresenti informazioni utili a riconoscere in maniera non ambigua le parti del documento che corrispondono agli elementi definiti nei DTD. Ad esempio, se un testo normativo e' stato redatto con un word processor e sono stati definiti stili specifici per rappresentare le rubriche degli articoli, queste saranno automaticamente riconoscibili e sara' possibile marcarle. Se la struttura e' rappresentata in modo ambiguo, per individuare gli elementi costitutivi e' necessario adottare metodi approssimati, basati su caratteristiche rilevabili nel testo (locuzioni particolari, punteggiatura, caratteristiche tipografiche o combinazioni di questi), tenendo sotto controllo il margine di errore. Nei casi in cui nessuno di questi metodi e' percorribile o il margine di errore risulta troppo elevato, la soluzione automatica non risulta efficace. In definitiva, se si dispone di una base documentale gia' in formato elettronico il processo di conversione puo' essere: automatico, se il formato con cui sono stati rappresentati i documenti gia' contiene le necessarie informazioni strutturali. E' il caso, ad esempio, di archivi memorizzati in banche dati opportunamente strutturate; semiautomatico, quando una procedura automatica individua la maggior parte degli elementi strutturali e gli elementi non individuati automaticamente sono marcati tramite un editor; non automatico, attraverso il ricorso a metodi manuali di tipo "taglia ed incolla" per inserire le parti di testo attraverso un editor, preferibilmente XML, all'interno dei tag opportuni. Verifica e parsing. Per validare un documento XML secondo un DTD occorre utilizzare un parser XML. Come accennato precedentemente, gli editor XML contengono al loro interno un parser e quindi forniscono direttamente le funzioni di validazione. Nei casi in cui sia necessario disporne separatamente, e' possibile reperire prodotti software che forniscono funzionalita' di parser XML sui siti indicati nei riferimenti tecnici pubblicati su www.aipa.it e www.normeinrete.it 3.2. Visualizzazione. Come accennato nella prima parte, un documento che sia stato marcato in XML non contiene informazioni relative alla sua visualizzazione. Per visualizzarlo e' necessario associare al documento delle direttive di formattazione, contenute all'interno dei cosiddetti fogli di stile (stylesheet). I linguaggi piu' diffusi per fogli di stile sono: Cascading Stylesheets Level 1 (CSS1) o Level 2 (CSS2); XSL Transformations 1.0 (XSLT1). Fogli di stile CSS. Un foglio di stile CSS associa agli elementi di una classe di documenti XML le informazioni di formattazione. Ad esempio, il seguente frammento CSS associa alcune proprieta' di presentazione all'elemento ""titolo": titolo { font-family: "New York "; font-size: 12pt; color: red; } Per i documenti XML di Normeinrete sono stati sviluppati stylesheet CSS che possono essere associati ai documenti prodotti inserendo nel documento, dopo la dichiarazione XML, la seguente istruzione: <?xml-stylesheet type="text/css"href="Nirbase.css" ?>. Fogli di stile XSLT. Per visualizzare documenti XML si adotta spesso la soluzione di trasformarli in HTML. Il modo piu' comune per eseguire questa trasformazione e' mediante fogli di stile scritti con XSLT. Tale trasformazione puo' avvenire fuori linea, quando l'intero archivio di documenti XML prima di essere reso accessibile dalle applicazioni di visualizzazione viene convertito in HTML, oppure in linea, quando la trasformazione avviene solo per il documento richiesto, in fase di visualizzazione. L'operazione di trasformazione in HTML puo' essere eseguita dal lato client oppure dal lato server: nel primo caso e' compito del browser effettuare la trasformazione in HTML. Il server invia al browser il documento XML insieme al foglio di stile. Il documento dovra' contenere, dopo la dichiarazione XML, la seguente: <?xml-stylesheet type="text/xsl"href="Nirbase.xsl" ?> Nel valutare questa soluzione bisogna tenere conto che solo le versioni piu' recenti dei browser sono in grado di eseguire la trasformazione, con il conseguente rischio che una parte degli utenti dotati di browser non aggiornati non riescano a visualizzare i documenti; nel secondo caso, che corrisponde alla soluzione adottata piu' frequentemente, il server stesso effettua la trasformazione, trasmettendo quindi al browser che ha effettuato la richiesta il documento gia' convertito da XML a HTML. Una soluzione piu' bilanciata si puo' ottenere facendo si' che il server web controlli il tipo e la versione del browser da cui proviene la richiesta ed effettui la trasformazione o la demandi al client in funzione delle caratteristiche del browser rilevate. 4. Esempio di testo di legge marcato con il dtd base. ----> Vedere immagine alle pagg. 49 e 50 della G.U. <---- |
|
|
|