Note preliminari per il formato XML
- Tutti i campi, se non specificato diversamente, sono opzionali.
- I campi di tipo [Valuta] e [Numerico] utilizzano il "." come separatore decimale. Non va utilizzato il separatore delle migliaia.
- I campi di tipo [Data] sono in formato ISO "aaaa-mm-gg" (es: "2007-02-28").
- In esportazione da Easyfatt, se un campo ha un valore nullo (stringa vuota, oppure numero uguale a zero), il relativo tag viene omesso dal tracciato.
- In importazione, se Easyfatt riscontra un tag con contenuto nullo (stringa vuota, oppure numero uguale a zero), imposterà tale valore nel relativo campo; se, invece, il tag viene omesso del tutto, Easyfatt imposterà il valore di default per quel contesto (ad esempio, se in un tracciato è assente il tag <Date>, il documento importato avrà la data del giorno e non la data nulla).
Il file XML deve essere codificato in UNICODE UTF-8 che prevede importanti regole nella codifica delle stringhe racchiuse tra tag:
- Caratteri riservati
I caratteri "&", "<", ">" sono riservati: se un testo contiene questi caratteri, bisogna sostituirli rispettivamente con "&", "<", ">".
In PHP è sufficiente utilizzare il comando seguente:
$string= htmlspecialchars("prova con caratteri riservati & < >", ENT_NOQUOTES, 'Windows-1252'); - Simboli e lettere accentate
La maggioranza dei file di testo creati su sistemi Windows segue la codifica "Windows-1252"; questa codifica differisce dalla codifica UTF-8 per i caratteri con codice ASCII > 127, ad esempio il simbolo di € e le lettere accentate òàùéèìù.
In PHP per convertire una stringa da "Windows-1252" a "UTF-8" è sufficiente utilizzare il comando seguente:
$string= mb_convert_encoding("prova con caratteri €òàùéè", 'UTF-8', 'Windows-1252');
Quindi nella preparazione di un file da far importare ad Easyfatt,
ogni campo inserito tra TAG deve essere prima codificato con:
$string= mb_convert_encoding(htmlspecialchars($string, ENT_NOQUOTES,
'Windows-1252'), 'UTF-8', 'Windows-1252');
...mentre per l'interpretazione di un file ricevuto da Easyfatt,
è necessario eseguire l'operazione opposta:
$string= html_entity_decode(mb_convert_encoding($string, 'Windows-1252',
'UTF-8'), ENT_NOQUOTES, 'Windows-1252');
