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 direcordTag(ricerca ricorsiva). Attributi mappati con prefisso@_; i valori testuali sono coerciti (numeri/booleani) dal parser. OpzionerecordTag(defaultrecord).encode: avvolge i record in<rootTag><recordTag>…</recordTag></rootTag>(opzionirootTag/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:
decodebufferizza 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).

