Skip to content

0012. Codec XML basato su fast-xml-parser

  • Stato: Accettata
  • Data: 2026-06-05
  • Decisori: Team BI/ETL

Contesto

Alcuni scambi (gestionali, B2B, tracciati legacy) usano XML con un elemento ripetuto per record (es. <root><item>…</item><item>…</item></root>). Serve un FileCodec XML che estragga i record e sappia anche serializzarli.

Decisione

Adottiamo fast-xml-parser (parser/builder XML veloce, JS puro, tipi inclusi).

  • decode: parse dell'intero documento (l'XML non è streamabile riga per riga) e restituzione di un record per ogni occorrenza di recordTag (ricerca ricorsiva). Attributi mappati con prefisso @_; i valori testuali sono coerciti (numeri/booleani) dal parser. Opzione recordTag (default record).
  • encode: avvolge i record in <rootTag><recordTag>…</recordTag></rootTag> (opzioni rootTag/recordTag).

Alternative considerate

  • xml2js — diffuso ma più lento e con API a callback/promise più datata.
  • @xmldom/xmldom + XPath — più potente per documenti complessi, ma overkill per il caso "elemento ripetuto → record".

Conseguenze

  • Positive: estrazione record da XML semplice e veloce, round-trip encode/decode, attributi gestiti.
  • Costi/limiti: decode bufferizza il documento (no streaming per file enormi); per XML molto complessi/namespace pesanti potrebbe servire una configurazione più ricca del parser (estendibile via opzioni in futuro).

Noeva è un marchio registrato di 4D S.R.L.