(all. 1 - art. 1)
                                                             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="/do/atto/serie_generale/caricaPdf?cdimg=02A0524600100010110Nirbase.css&dgu=2002-05-03&art.dataPubblicazioneGazzetta=2002-05-03&art.codiceRedazionale=02A05246&art.num=1&art.tiposerie=SG" target="_blank" ?>
    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="/do/atto/serie_generale/caricaPdf?cdimg=02A0524600100010110Nirbase.css&dgu=2002-05-03&art.dataPubblicazioneGazzetta=2002-05-03&art.codiceRedazionale=02A05246&art.num=1&art.tiposerie=SG" target="_blank"  ?>.
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="/do/atto/serie_generale/caricaPdf?cdimg=02A0524600100010110Nirbase.xsl&dgu=2002-05-03&art.dataPubblicazioneGazzetta=2002-05-03&art.codiceRedazionale=02A05246&art.num=1&art.tiposerie=SG" target="_blank"  ?>
    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.  <----