public bool GenerarXML(out String XML, out String Errores) { XML = String.Empty; Errores = String.Empty; bool Resultado = false; try { if (Pagos != null) { XmlDocument doc = new XmlDocument(); String XMLPago = String.Empty; String ErroresPago = String.Empty; if (Pagos.GenerarXML(out XMLPago, out ErroresPago)) { doc.LoadXml(XMLPago); ComprobanteComplemento ComPago = new ComprobanteComplemento(); ComPago.Any.Add(doc.DocumentElement); if (Complemento == null) { Complemento = new List <ComprobanteComplemento>(); } Complemento.Add(ComPago); } else { Errores += ErroresPago; } } if (ImpuestosLocales != null) { XmlDocument doc = new XmlDocument(); String XMLImpLoc = String.Empty; String ErroresImpLoc = String.Empty; if (ImpuestosLocales.GenerarXML(out XMLImpLoc, out ErroresImpLoc)) { doc.LoadXml(XMLImpLoc); ComprobanteComplemento ComImpLoc = new ComprobanteComplemento(); ComImpLoc.Any.Add(doc.DocumentElement); if (Complemento == null) { Complemento = new List <ComprobanteComplemento>(); } Complemento.Add(ComImpLoc); } else { Errores += ErroresImpLoc; } } if (Nomina != null) { schemaLocation += " http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd"; XmlDocument doc = new XmlDocument(); String XMLNomina = String.Empty; String ErroresNomina = String.Empty; if (Nomina.GenerarXML(out XMLNomina, out ErroresNomina)) { doc.LoadXml(XMLNomina); ComprobanteComplemento ComNomina = new ComprobanteComplemento(); ComNomina.Any.Add(doc.DocumentElement); if (Complemento == null) { Complemento = new List <ComprobanteComplemento>(); } Complemento.Add(ComNomina); } else { Errores += ErroresNomina; } } if (String.IsNullOrEmpty(Errores)) { XML = Serialize(System.Text.Encoding.UTF8); XML = XML.Replace("&apos;", "'").Replace("&quot;", """).Replace("&lt;", "<").Replace("&gt;", ">").Replace("&amp;", "&"); return(!String.IsNullOrEmpty(XML)); } else { return(false); } } catch (Exception ex) { if (ex.InnerException != null) { Errores += ex.Message + " innerex: " + ex.InnerException.Message; } else { Errores += ex.Message; } } return(Resultado); }