Java - Generazione PDf da Xml di notifica

Buongiorno a tutti,

sto cercando di generare un PDF di una Notifica di “Ricevuta di Consegna” utilizzando il file XSL fornito dall’agenzia.

Prima di generare il PDF creo prima un file HTML utilizzando le classi TransformerFactory (javax.xml.transform.TransformerFactory).

Lasciando il file XSL così com’è mi genera un html vuoto (trovo i tag di apertura e lo stile, ma il body è vuoto), ma se cambio l’instestazione da

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
	xmlns:a="http://www.fatturapa.gov.it/sdi/messaggi/v1.0"
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
	<xsl:output method="html"  />

A

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
	xmlns:a="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fattura/messaggi/v1.0"
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
	<xsl:output method="html"  />

Funziona.
Ma è giusto che sia così? Mi aspettavo che il file XSL fosse “pronto all’uso”, oppure sto sbagliando qualcosa a livello di codice?

Ciao :smiley:

Devi prendere i file xsl che trovi qui:
https://www.agenziaentrate.gov.it/wps/content/nsilib/nsi/schede/comunicazioni/fatture+e+corrispettivi/fatture+e+corrispettivi+st/st+invio+di+fatturazione+elettronica

Quello che hai usato supporta solo le ricevute di consegna per le fatture PA (pur avendo lo stesso nome dell’elemento root, come hai notato, i namespace sono diversi).
I file xsl disponibili sulla pagina che ti ho segnalato gestiscono sia i messaggi relativi alle fatture PA che quelle tra privati e vanno a sostituire i corrispondenti file disponibili qui:
https://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-3.htm

Grazie Vladan, sono riuscito a generare i pdf anche per le notifiche.
Succede solo una cosa strana per le notifiche di scarto: la lista errori non viene visualizzata :face_with_raised_eyebrow:

Strano. Io non faccio i pdf, ma nel html generato a me la lista degli errori si vede.