Assistenza tecnica

Linguaggio XML e sue utilità nell'ambito di lavori statali

Una delle competenze che è bene far acquisire in una azienda od in uno studio che si occupa di lavori per conto dello stato è quella della conoscenza di un nuovo strumento che sarà sempre più usato per applicazioni future, costituito dal linguaggio XML. In breve, si tratta di una risorsa per trasmettere e ricevere dati a distanza con la maggior garanzia possibile della correttezza degli stessi.
Molte applicazioni potranno trarre giovamento da questa risorsa, come ad esempio la trasmissione dati da cantiere a studio per elaborazione immediata, il ricalcolo immediato di un impianto di grandi dimensioni dal punto in cui si è verificato un guasto alla sede centrale dove viene effettuato il progetto, e via dicendo. Alcune già lo fanno, come la fatturazione di lavori alla PA (Pubblica Amministrazione): difatti, l
a Finanziaria 2008 ha stabilito che la fatturazione nei confronti delle amministrazioni dello stato debba avvenire esclusivamente in forma elettronica attraverso un sistema, detto Sistema di Interscambio (Sdi). Il Decreto Ministeriale 3 aprile 2013, numero 55, stabilisce le regole in materia di emissione, trasmissione e ricevimento della fattura elettronica e ne definisce il formato. I riferimenti principali sono dati da:

Relativamente a questo ultimo caso, le date di scadenza più importanti sono le seguenti:

 

Linguaggio XML

XML è l'acronimo di eXtensible Markup Language, un linguaggio di codifica per documenti strutturati, e può essere considerato come una generalizzazione del linguaggio HTML che consente di definire tag personalizzati. XML è un derivato del linguaggio SGML (Standard Generalized Markup Language) e, come SGML stesso ed il precedente HTML, è un linguaggio usato per la definizione dei tag e delle relazioni fra i tag per la trasmissione di informazioni a distanza. E' essenziale che trasmittente e ricevente concordino prima della trasmissione il tracciato del file, cioè la sua struttura, in modo da comprenderne correttamente il significato ambedue.

I tag del linguaggio XML sono simili ai tag HTML: anch'essi sono costituiti da un nome di tag e da eventuali attributi racchiusi tra parentesi angolari < >.
Inoltre, come nel linguaggio HTML, per contrassegnare il contenuto vengono utilizzati un tag di apertura e un tag di chiusura (in cui il nome del tag è preceduto da una barra obliqua).
Un esempio di istruzioni XML potrebbe essere il seguente:

<messaggio>
....<mittente>ROSSI SpA - Roma</mittente>
..........<testo>
................
Si allega fattura primo stato di avanzamento lavori
......... </testo>
</messaggio>

Tecnicamente, il comando <messaggio> prende il nome di radice del documento, mentre <mittente> e <testo> si chiamano figlio e sottofiglio della radice: il tutto prende il nome di albero del documento.
Una differenza di ordine sintattico tra i due linguaggi consiste nel fatto che, in XML, ogni elemento deve avere il proprio tag di chiusura. Eventuali
tag vuoti (ovvero quelli che utilizzano un solo tag, ad esempio <img>, anziché un tag di apertura e uno di chiusura contenenti testo od altro) devono finire con una barra obliqua inserita immediatamente prima della parentesi angolare di chiusura. Ad esempio, in XML un tag <img> potrebbe essere simile al seguente:

<img src="image.jpg" />

Dal punto di vista sintattico, il linguaggio XML è molto più rigido e meno permissivo del linguaggio HTML: i file che non sono perfettamente conformi alla sintassi XML vengono rifiutati dagli analizzatori sintattici XML. Questo va' a vantaggio della integrità dei dati, anche contro banali errori di battitura, in virtù dei controlli incrociati di cui è dotato il linguaggio stesso. Inoltre, XML è case sensitive, cioè lo stesso testo battuto maiuscolo o minuscolo è considerato differente (ROMA è un nome diverso sia da roma che da Roma).

Il linguaggio XML consente di contrassegnare le stringhe letterali (che possono contenere tag da non sottoporre ad analisi sintattica) mediante la sezione CDATA, che contiene una stringa letterale tra parentesi quadre. Tutto ciò che appare tra le parentesi quadre non viene preso in considerazione dall'analizzatore sintattico XML. Il codice XML esportato da software, come il già citato programma Dreamweaver, fa' un ampio uso delle sezioni CDATA.

Un documento XML completo è formato al minimo dalle seguenti sezioni:

Pertanto, per rendere le righe di istruzioni viste in precedenza un dcumento completo in XML è sufficiente scrivere ad esempio il file:

<?xml version="1.0" encoding="ISO-8859-1"?>
<messaggio>
....<mittente>ROSSI SpA - Roma</mittente>
..........<testo>
................
Si allega fattura primo stato di avanzamento lavori
......... </testo>
</messaggio>

con il Blocco note, e salvarlo con nome, ad esempio, fattura.xml. L'estensione .xml è obbligatoria.

A questo punto, il ricevente riceve questo testo in chiaro e può leggere i dati con un software di lettura, come detto in precedenza. La lettura testuale dei dati è in genere difficoltosa soprattutto per i non esperti, per cui si cerca di facilitare il lavoro agli operatori con varie tecniche.
La più semplice consiste nel leggere il file XML con un Blocco Note ed interpretare direttamente i dati. Alternativamente, si può usare un browser, come Internet Explorer, Mozilla Firefox, Google Chrome ed altri ancora: la maggior parte dei browser (soprattutto quelli più moderni) è in grado di trattare documenti XML anche se non tutti in maniera completa. Un esempio di visualizzazione del file in esame con Mozilla Firefox 26.0 è il seguente:

Premendo i tasti CTRL-U si può vedere il file sorgente, cioè il file originale battuto con il blocco note. Chiudendo la pagina, si ritorna a questa visualizzazione.

Altre tecniche prevedono l'uso di appositi interpreti, chiamati parser XML, disponibili essenzialmente in due tecnologie:

Entrambe sono interfacce di programmazione, cioè API che permettono di accedere e manipolare i documenti XML. Ne esistono per vari linguaggi di programmazione e per diversi sistemi operativi. Lo sviluppo di applicazioni è spesso fatto in Java, in modo da ottenere prodotti completamente autonomi ed indipendenti dal computer dove verranno poi usate le applicazioni stesse.
E' possibile generare pagine WEB dinamiche dai documenti XML con una servlet usando il linguaggio Java, formattando il codice HTML risultante in modo opportuno per visualizzare bene i dati.
Usando alternativamente il linguaggio PHP abbinato all' interfaccia SAX, è possibile generare pagine WEB dinamiche dal documento XML, formattando il codice HTML risultante in modo opportuno per visualizzare bene i dati.

Un modo più semplice ed immediato, ma forse meno potente, si può avere associando al documento XML un foglio di stile CSS che permette di leggere il contenuto del file, come suggerito dalla visualizzazione di Firefox 26.0. Scriviamo un file CSS per la lettura del codice XML ad esempio in questo modo:

messaggio
{ background-color: #C0C0C0;
.....color: #FF0000;
.....width: 100%;
.....font-family: verdana;
.....font-size: 12pt;
}
mittente
{
.....display: block;
}
testo
{
.....display:block;
.....margin-top: 20pt;
.....color: #0000FF;
}

Salviamolo con nome style1.css . Per incorporarlo nel codice xml, è necessario inserire dopo la prima riga il link al foglio di stile, definendone il tipo CSS (in alternativa potrebbe essere usato XSL) ed il nome, come segue :

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet type="text/css" href="style1.css"?>

<messaggio>
....<mittente>ROSSI SpA - Roma</mittente>
..........<testo>
................
Si allega fattura primo stato di avanzamento lavori
......... </testo>
</messaggio>

Salviamo il programma e mandiamolo in esecuzione con Firefox 26.0. Stavolta il risultato sarà questo:

permettendo una lettura più agevole ed un controllo del contenuto più veloce e sicuro.


Applicazione pratica

In sintesi, nell'ambito della fatturazione alla pubblica amministrazione bisogna procurarsi, tramite il sito appositamente predisposto dall' amministrazione statale, :

1.Un file di tipo .XML che definisce il tracciato della fattura vera e propria, cioè i dati effettivi (codici, descrizioni, prezzi, ecc.) ;

2.un file di tipo .XLS che definisce un foglio di stile da associare ai dati .xml per visualizzarli su video e su carta in formato intellegibile all'operatore, per consentire le operazioni di controllo dati, registrazione e pagamento in forma visiva accettabile.

A questo punto è utile un programma applicativo che legga e gestisca le pagine .xml con foglio di stile annesso. Un programma adatto allo scopo può essere il già citato Dreamweaver, che ha gli editor sia per il programma che per il foglio di stile annesso, ma anche altri editori di XML possono essere adatti allo scopo. In alternativa, può essere usato un Blocco Note .

Per far funzionare al primo colpo gli esempi forniti si può agire nel seguente modo:

Per ulteriori approndimenti, specifiche e download fare riferimento al sito istituzionale che può essere reperito dal WEB mediante i motori di ricerca, dove il supporto agli utenti può essere fruito attraverso un’area dedicata, in cui sono disponibili vari strumenti : alcuni senza ulteriori formalità, altri previa autenticazione di dati che è bene avere a disposizione prima di inziare il collegamento (le credenziali sono quelle utilizzate per i servizi Fisconline e Entratel).


Fonte: Agenzia delle Entrate