using System.Xml;
using System.Xml.Serialization;
public static void WriteXML()
{
FatturaElettronica nodoPrincipale = new FatturaElettronica();
FatturaElettronicaHeader overview = new FatturaElettronicaHeader();
DatiTrasmissione datiTrasmissione = new DatiTrasmissione();
IdTrasmittente idTrasmittente = new IdTrasmittente();
idTrasmittente.IdCodice = "IT";
idTrasmittente.IdPaese = "01234567890";
datiTrasmissione.IdTrasmittente = idTrasmittente;
datiTrasmissione.ProgressivoInvio = "00001";
datiTrasmissione.FormatoTrasmissione = "SDI10";
datiTrasmissione.CodiceDestinatario = "AAAAAA";
ContattiTrasmittente contattiTrasmittente = new ContattiTrasmittente();
contattiTrasmittente.Telefono = "060601";
contattiTrasmittente.Email = "prova@mail.it";
datiTrasmissione.ContattiTrasmittente = contattiTrasmittente;
/*Scrivi XML*/
overview.DatiTrasmissione = datiTrasmissione;
CedentePrestatore cedentePrestatore = new CedentePrestatore();
DatiAnagrafici datiAnagrafici = new DatiAnagrafici();
IdFiscaleIVA idFiscaleIVA = new IdFiscaleIVA();
idFiscaleIVA.IdPaese = "IT";
idFiscaleIVA.IdCodice = "01234567890";
datiAnagrafici.IdFiscaleIVA = idFiscaleIVA;
Anagrafica anagrafica = new Anagrafica();
anagrafica.Denominazione = "Societa' alpha S.r.l.";
datiAnagrafici.Anagrafica = anagrafica;
datiAnagrafici.RegimeFiscale = "RF01";
cedentePrestatore.DatiAnagrafici = datiAnagrafici;
Sede sede = new Sede();
sede.Indirizzo = "Via Roma";
sede.CAP = "00166";
sede.Comune = "Roma";
sede.Provincia = "RM";
sede.Nazione = "IT";
cedentePrestatore.Sede = sede;
StabileOrganizzazione stabileOrganizzazione = new StabileOrganizzazione();
stabileOrganizzazione.Indirizzo = "Piazza Garibaldi";
stabileOrganizzazione.CAP = "00100";
stabileOrganizzazione.Comune = "Roma";
stabileOrganizzazione.Provincia = "RM";
stabileOrganizzazione.Nazione = "IT";
cedentePrestatore.StabileOrganizzazione = stabileOrganizzazione;
/*Scrivi XML*/
overview.CedentePrestatore = cedentePrestatore;
CessionarioCommittente cessionarioCommittente = new CessionarioCommittente();
DatiAnagrafici datiAnagraficiCommittente = new DatiAnagrafici();
datiAnagraficiCommittente.CodiceFiscale = "09876543210";
Anagrafica anagraficaCommittente = new Anagrafica();
anagraficaCommittente.Denominazione = "Societa beta' S.r.l.";
datiAnagraficiCommittente.Anagrafica = anagraficaCommittente;
cessionarioCommittente.DatiAnagrafici = datiAnagraficiCommittente;
Sede sedeCommittente = new Sede();
sedeCommittente.Indirizzo = "Via Milano";
sedeCommittente.CAP = "00100";
sedeCommittente.Comune = "Roma";
sedeCommittente.Provincia = "RM";
sedeCommittente.Nazione = "IT";
cessionarioCommittente.Sede = sedeCommittente;
/*Scrivi XML*/
overview.CessionarioCommittente = cessionarioCommittente;
/*Scrivi XML*/
overview.SoggettoEmittente = "CC";
/*Scrivi XML nodo FatturaElettronicaHeader */
nodoPrincipale.FatturaElettronicaHeader = overview;
XmlAttributeOverrides overrides = new XmlAttributeOverrides();
overrides.Add(typeof(FatturaElettronica), new XmlAttributes { XmlRoot = new XmlRootAttribute { Namespace = "http://www.fatturapa.gov.it/sdi/fatturapa/v1.0" } });
// in case you want to remove prefix from members
XmlAttributes emptyNsAttribute = new XmlAttributes();
emptyNsAttribute.XmlElements.Add(new XmlElementAttribute { Namespace = "" });
overrides.Add(typeof(FatturaElettronica), "FatturaElettronicaHeader", emptyNsAttribute);
// if you actual library type contains more members, then you have to list all of them
XmlSerializer ser = new XmlSerializer(nodoPrincipale.GetType(), overrides);
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("ds", "http://www.w3.org/2000/09/xmldsig#");
ns.Add("p", "http://www.fatturapa.gov.it/sdi/fatturapa/v1.0");
ns.Add("xis", "http://www.w3.org/2001/XMLSchema-instance");
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//DemoFatturaPA.xml";
System.IO.FileStream file = System.IO.File.Create(path);
ser.Serialize(file, nodoPrincipale, ns);
file.Close();
System.IO.File.Copy(path, "DemoFatturaPA.xml");
}