none
¿Cómo agregar declaración a objeto XmlDocument? RRS feed

  • Pregunta

  • Desarrollo una aplicación donde creo un objeto XmlDocument a partir de una clase.

    En mi codigo tengo lo siguiente:

    a) Una clase donde declaro atributos y propiedades,

    b) Un método donde establezco los valores de estas propiedades

    c) Un método donde serializo y creo el objeto XmlDocument a partir de los puntos a y b

    El problema es que mi declaracion se ve de la siguiente forma

    <?xml version="1.0">

    Deberia verse de la siguiente forma

    <?xml version="1.0" encoding="UTF-8"?>

    ¿Dónde y cómo puedo hacer para establecer el tipo de codificación del objeto XmlDocument?

    Mi Clase :

    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica", IsNullable=false)]
    public partial class FacturaElectronica {
    
        private string claveField;
    
        private string numeroConsecutivoField;
    
        public string Clave {
            get {
                return this.claveField;
            }
            set {
                this.claveField = value;
            }
        }
    
        public string NumeroConsecutivo {
            get {
                return this.numeroConsecutivoField;
            }
            set {
                this.numeroConsecutivoField = value;
            }
        }
    }

    b) Metodo donde establesco valores de las propiedades:

     public FacturaElectronica CrearEstructuraFactura()
            {
                FacturaElectronica FacturaElectronica = new FacturaElectronica()
                {
                    Clave = value.Clave,
                    NumeroConsecutivo = value.NumeroConsecutivo
                }
             return FacturaElectronica;
          }

    c) Metodo donde serializo y creo el XmlDocument

    public XmlDocument  CrearDocumentoXml( ComprobanteElectronicoCRI objComprobanteElectronicoCRI, string tipoDocumento)
            { 
                XmlDocument documentoXml = new XmlDocument();
               CreadorFactura XmlFactura = new CreadorFactura();
               FacturaElectronica FacturaElectronica = new FacturaElectronica();
               FacturaElectronica = XmlFactura.CrearEstructuraFactura(objComprobanteElectronicoCRI);
               var nav = documentoXml.CreateNavigator();
               using (writer = nav.AppendChild())
               {
                var serializer = new XmlSerializer(typeof(FacturaElectronica));
                serializer.Serialize(writer, FacturaElectronica);
               }
    
                return documentoXml; 
            }



    EFRAIN MEJIAS C VALENCIA - VENEZUELA



    jueves, 15 de marzo de 2018 13:35

Respuestas

  • Se debe declarar una variable de tipo XmlDeclaration y pasar los parametros como lo son version y codificacion para el xml ,despues de crear el objeto XmlDocument

    en mi caso lo hize donde serializo y creo el XmlDocument

    El codigo quedo asi:

    public XmlDocument  CrearDocumentoXml( ComprobanteElectronicoCRI objComprobanteElectronicoCRI, string tipoDocumento)
            { 
                XmlDocument documentoXml = new XmlDocument();
                XmlDeclaration xmlDeclaracion = documentoXml.CreateXmlDeclaration("1.0", "UTF-8", null);
               XmlElement root = documentoXml.DocumentElement;
               documentoXml.InsertBefore(xmlDeclaracion, root);
               CreadorFactura XmlFactura = new CreadorFactura();
               FacturaElectronica FacturaElectronica = new FacturaElectronica();
               FacturaElectronica = XmlFactura.CrearEstructuraFactura(objComprobanteElectronicoCRI);
               var nav = documentoXml.CreateNavigator();
               using (writer = nav.AppendChild())
               {
                var serializer = new XmlSerializer(typeof(FacturaElectronica));
                serializer.Serialize(writer, FacturaElectronica);
               }
    
                return documentoXml; 
            }

    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    jueves, 15 de marzo de 2018 14:56