Problema nell'applicazione degli XSLT alle notifiche di consegna/mancata consegna/scarto

Salve a tutti, sto provando a applicare i XSLT presi da questo portale

alle ricevute che ricevo nel mio gestionale, ma applicandole ottengo un HTML praticamente vuoto.

Ho fatto un po’ doi verifiche e ho trovato che il primo tag del file XML che ricevo io è completamente diverso dal tag nella stessa posizione nell’XML di esempio. Copio e incollo per chiarezza:

Prime righe del file di esempio scaricato dal link sopra (IT01234567890_11111_MC_001.xml)

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="MC_v1.0.xsl"?>
<types:NotificaMancataConsegna xmlns:types="http://www.fatturapa.gov.it/sdi/messaggi/v1.0" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" versione="1.0" xsi:schemaLocation="http://www.fatturapa.gov.it/sdi/messaggi/v1.0 MessaggiTypes_v1.0.xsd ">
  <IdentificativoSdI>111</IdentificativoSdI>
  <NomeFile>IT01234567890_11111.xml.p7m</NomeFile>

Prime righe di un file ricevuto da mio gestionale:

<?xml version="1.0" encoding="UTF-8"?>
<ns3:RicevutaImpossibilitaRecapito xmlns:ns3="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fattura/messaggi/v1.0" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" versione="1.0">
    <IdentificativoSdI>1111111111</IdentificativoSdI>
    <NomeFile>ITxxxxxxxxxxxx_00448.xml</NomeFile>

dopo queste righe la struttura è circa identica

mi riferisco ai tag che iniziano rispettivamente con

<types:NotificaMancataConsegna

e

<ns3:RicevutaImpossibilitaRecapito

Sapete dirmi da cosa possono dipendere queste differenze? Devo fare qualche manipolazione del file io?Ho preso l’XML sbagliato? c’è qualcosa che mi sfugge?

l’XML in questione l’ho ottenuto facendo base64_decode del tag File contenuto nell’XML ricevuto tramite SOAP

Grazie in anticipo a chiunque possa darmi una mano

Salve Alessandro,
chiariamo due cose. La prima: le righe sono diverse perché si tratta di due diversi messaggi.

RicevutaImpossibilitaRecapito è una notifica relativa al flusso B2B (cioè fatturazione verso clienti privati). Non è necessariamente un errore, significa solo che il cliente non riceverà la notifica (ad esempio perché è un cliente che non ha un gestionale o che usa il codice SDI 0000000).

NotificaMancataConsegna invece è una notifica del flusso PA (cioè fatturazione verso la Pubblica Amministrazione).

I due flussi differiscono perché, penso, il flusso PA è stato sviluppato alcuni anni prima del B2B, basandolo sulle esigenze della PA e prima che si pensasse a tutti i requisiti dei privati.

Se invece la tua domanda si riferisce al prefisso <types: diverso da <ns3:… beh quella è semplicemente una caratteristica di XML. Il namespace è personalizzabile ed è definito sul primo tag radice immediatamente dopo:

xmlns:types="http...
xmlns:ns3="http...

Fondamentalmente ci può andare il prefisso che si preferisce.

Veramente sarebbe il contrario…
NotificaMancataConsegna è relativa al flusso PA (B2G), mentre RicevutaImpossibilitaRecapito è relativa al flusso B2B e B2C.

Le varie notifiche sono descritte in due diversi file xsd.

Le notifiche relative al flusso PA sono descritte nel file “MessaggiTypes_v1.1.xsd” che si trova qui: Fatturazione elettronica PA - Documentazione Sistema d'Interscambio
Tutti i tipi definiti in questo file usano il namespace http://www.fatturapa.gov.it/sdi/messaggi/v1.0 e sono:

  • RicevutaConsegna
  • NotificaMancataConsegna
  • NotificaScarto
  • NotificaEsito
  • AttestazioneTrasmissioneFattura
  • MetadatiInvioFile
  • NotificaEsitoCommittente
  • ScartoEsitoCommittente
  • NotificaDecorrenzaTermini

Le notifiche relative al flusso B2B e B2C invece sono definite nel file “MessaggiFatturaTypes_v1.0.xsd” che si trova qui: Schede - Fatturazione elettronica e dati fattura transfrontaliere (Esterometro) - Agenzia delle Entrate (qui ci sono le sottocartelle relative alle varie versioni delle specifiche).
Da notare che i tipi definiti in questo file usano il namespace http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fattura/messaggi/v1.0 che è diverso da quello del caso PA. I tipi definiti qui sono:

  • RicevutaConsegna
  • RicevutaScarto
  • RicevutaImpossibilitaRecapito
  • FileMetadati

N.B. Da notare che la RicevutaConsegna, pur avendo lo stesso nome in entrambi i casi, in realtà è un tipo diverso perché cambia il namespace.

Mea culpa, avevo invertito le due cose. Ho corretto il post.

Grazie per i charimenti :folded_hands: , precisi e puntuali.

Quindi mi pare di capire che gli XSLT scaricabili da qui Fatturazione elettronica PA - Documentazione Sistema d'Interscambio sono adatti solo alle notifiche PA

Ma a questo punto la domanda diventa: esistono fogli di stile ufficiali per le notifiche B2B/B2C?

Sì, al secondo indirizzo che ho segnalato. Li trovi entrando nella cartella della documentazione della versione 1.9.1. e poi in “Fogli di stile per ricevute”: Schede - Fogli di stile per ricevute - Agenzia delle Entrate

Ottimo, grazie!

Procedo con le implementazioni