Espandere Easyfatt con Easyfatt-Xml

Note preliminari per il formato XML

 

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, se invece è assente il tag <Number> Easyfatt imposterà l'incremento automatico del numero del documento).

 

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 "&amp", "&lt", "&gt".
    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');