Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


CARTA PORTE V3.1

ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03


.

utf-8 en mayuscula o en minuscula

La factura esta basada en XML, independiente del lenguaje de programacion todos debemos saber acerca de esta tecnologia
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

utf-8 en mayuscula o en minuscula

Mensaje por dcerick »

Hola, estoy usando C# y al momento de serializar mi clase me pone en la primer línea
<?xml version="1.0" encoding="utf-8"?>

Y el PAC (Edicom), me dice que tiene que ser
<?xml version="1.0" encoding="UTF-8"?>

hay alguna gorma de que al momento de serializar ponga el UTF-8 en mayusculas?

Saludos,
erick.aragon @ live.com.mx
Avatar de Usuario
acanas
Mensajes: 477
Registrado: Mar Ene 11, 2011 3:18 pm

Re: utf-8

Mensaje por acanas »

dcerick escribió:Hola, estoy usando C# y al momento de serializar mi clase me pone en la primer línea
<?xml version="1.0" encoding="utf-8"?>

Y el PAC (Edicom), me dice que tiene que ser
<?xml version="1.0" encoding="UTF-8"?>

hay alguna gorma de que al momento de serializar ponga el UTF-8 en mayusculas?

Saludos,
Yo también generó mi XML a través de serialización y me fije que me pone en la primera línea utf-8 en minúsculas, en el validador sintactico de xml de Visual Studio 2008 lo dá como válido de las 2 formas (minúsculas y mayúsculas). Pero checando en la página utf8.com dice:

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

Está es una posible respuesta, Microsoft en su interpretación de la especificación de XML no lo considera como inválido:

http://stackoverflow.com/questions/9215 ... -sensitive

Se supone que no lo deben forzar a ser case sensitive el tag inicial.

Aquí esta el fundamento:
http://www.w3.org/TR/2008/REC-xml-20081 ... arencoding

Aquí esta el mero mole:
In an encoding declaration, the values " UTF-8 ", " UTF-16 ", " ISO-10646-UCS-2 ", and " ISO-10646-UCS-4 " should be used for the various encodings and transformations of Unicode / ISO/IEC 10646, the values " ISO-8859-1 ", " ISO-8859-2 ", ... " ISO-8859- n " (where n is the part number) should be used for the parts of ISO 8859, and the values " ISO-2022-JP ", " Shift_JIS ", and " EUC-JP " should be used for the various encoded forms of JIS X-0208-1997. It is recommended that character encodings registered (as charsets) with the Internet Assigned Numbers Authority [IANA-CHARSETS], other than those just listed, be referred to using their registered names; other encodings should use names starting with an "x-" prefix. XML processors should match character encoding names in a case-insensitive way and should either interpret an IANA-registered name as the encoding registered at IANA for that name or treat it as unknown (processors are, of course, not required to support all IANA-registered encodings).

Creo que esto es un argumento suficiente para que EDICOM te haga caso, me imagino que hay muchos clientes iguales, no les cuesta casi nada hacer eso.
Zyphersoft Development
Avatar de Usuario
acanas
Mensajes: 477
Registrado: Mar Ene 11, 2011 3:18 pm

Re: utf-8 en mayuscula o en minuscula

Mensaje por acanas »

dcerick, si de plano EDICOM se pone sus moños y se sienta en su macho utiliza esta pequeña rutina:

Código: Seleccionar todo


       private XmlDocument CambiarXmlEncoding(XmlDocument xmlDoc, string nuevoEncoding)
        {
            if (xmlDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
            {
                XmlDeclaration xmlDeclaration = (XmlDeclaration)xmlDoc.FirstChild;
                xmlDeclaration.Encoding = nuevoEncoding;
            }
            return xmlDoc;
        }

    private void CFD()
    {
            string strXmlPath = @"c:/demoCFD.xml";             
            XmlDocument xdoc = new XmlDocument();
            XmlTextReader xt = new XmlTextReader(strXmlPath);           
            xdoc.Load(xt);
            CambiarXmlEncoding(xdoc, "UTF-8");
            xt.Close();            
            xdoc.Save(strXmlPath); 
    }


Zyphersoft Development
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

Re: utf-8 en mayuscula o en minuscula

Mensaje por dcerick »

acanas escribió:dcerick, si de plano EDICOM se pone sus moños y se sienta en su macho utiliza esta pequeña rutina:

Código: Seleccionar todo


       private XmlDocument CambiarXmlEncoding(XmlDocument xmlDoc, string nuevoEncoding)
        {
            if (xmlDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
            {
                XmlDeclaration xmlDeclaration = (XmlDeclaration)xmlDoc.FirstChild;
                xmlDeclaration.Encoding = nuevoEncoding;
            }
            return xmlDoc;
        }

    private void CFD()
    {
            string strXmlPath = @"c:/demoCFD.xml";             
            XmlDocument xdoc = new XmlDocument();
            XmlTextReader xt = new XmlTextReader(strXmlPath);           
            xdoc.Load(xt);
            CambiarXmlEncoding(xdoc, "UTF-8");
            xt.Close();            
            xdoc.Save(strXmlPath); 
    }


Muchas grácias de hecho antes de tu primer respuesta yo lo solucioné de la siguiente forma :

Código: Seleccionar todo

                            System.Xml.XmlDocument oDocument = new System.Xml.XmlDocument();
                            oDocument.Load(strRutaArchivoXml);
                            oDocument.InnerXml = oDocument.InnerXml.Replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", "<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                            oDocument.Save(strRutaArchivoXml);
Tu código se vé como que más elegante jejejeje.

Lo probaré.. igual ya le mandé el correo al tipo ajjaja con la info que me pasaste xD

Gracias.
erick.aragon @ live.com.mx
Avatar de Usuario
acanas
Mensajes: 477
Registrado: Mar Ene 11, 2011 3:18 pm

Re: utf-8 en mayuscula o en minuscula

Mensaje por acanas »

Jeje si ya lo probé porque me puse a pensar que me voy a ver en la misma situación así que hay que estar preparados.
Zyphersoft Development
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

Re: utf-8 en mayuscula o en minuscula

Mensaje por dcerick »

Bueno lo dejé así:

Método

Código: Seleccionar todo

        private void CambiarXmlEncoding(XmlDocument xmlDoc, string nuevoEncoding)
        {
            if (xmlDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
            {
                XmlDeclaration xmlDeclaration = (XmlDeclaration)xmlDoc.FirstChild;
                xmlDeclaration.Encoding = nuevoEncoding;
            }
        }
Llamada

Código: Seleccionar todo

                         System.Xml.XmlDocument oDocument = new System.Xml.XmlDocument();
                            oDocument.Load(strRutaArchivoXml);
                            CambiarXmlEncoding(oDocument, "UTF-8");
                            oDocument.Save(strRutaArchivoXml);
Gracias por tu ayuda, al final es tu código con unas pocas modificaciones xD.
erick.aragon @ live.com.mx
Avatar de Usuario
acanas
Mensajes: 477
Registrado: Mar Ene 11, 2011 3:18 pm

Re: utf-8 en mayuscula o en minuscula

Mensaje por acanas »

Es todo, no problema dude. 8-)
Zyphersoft Development
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

Re: utf-8 en mayuscula o en minuscula

Mensaje por dcerick »

acanas escribió:Es todo, no problema dude. 8-)
Acanas buenas tardes oye man fijate que tengo otro detalle con la serializacion y pues queria ver si tu me das un norte....

Al serializar me está poniendo la fecha de esta forma "2011-01-31T17:59:53.922-07:00" , y pues me está sobrando ".922-07:00" puesto que el anexo 20 dice lo siguiente

"Atributo requerido para la expresión de la fecha y hora de expedición del comprobante fiscal. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.
"

Tu no tienes ese problema con la serialización? Y si te pasó como lo resolviste?

Saludos
erick.aragon @ live.com.mx
Avatar de Usuario
acanas
Mensajes: 477
Registrado: Mar Ene 11, 2011 3:18 pm

Re: utf-8 en mayuscula o en minuscula

Mensaje por acanas »

dcerick escribió: Acanas buenas tardes oye man fijate que tengo otro detalle con la serializacion y pues queria ver si tu me das un norte....

Al serializar me está poniendo la fecha de esta forma "2011-01-31T17:59:53.922-07:00" , y pues me está sobrando ".922-07:00" puesto que el anexo 20 dice lo siguiente

"Atributo requerido para la expresión de la fecha y hora de expedición del comprobante fiscal. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.
"

Tu no tienes ese problema con la serialización? Y si te pasó como lo resolviste?

Saludos
si me tope con ese detalle cuando realizaba mis pruebas con el PAC, aqui te va el truco en c#:

Código: Seleccionar todo

string strFecha= XmlConvert.ToString(tfd.FechaTimbrado, "yyyy-MM-ddTHH:mm:ss");
Zyphersoft Development
dcerick
Mensajes: 149
Registrado: Vie Dic 17, 2010 1:55 pm

Re: utf-8 en mayuscula o en minuscula

Mensaje por dcerick »

acanas escribió:
dcerick escribió: Acanas buenas tardes oye man fijate que tengo otro detalle con la serializacion y pues queria ver si tu me das un norte....

Al serializar me está poniendo la fecha de esta forma "2011-01-31T17:59:53.922-07:00" , y pues me está sobrando ".922-07:00" puesto que el anexo 20 dice lo siguiente

"Atributo requerido para la expresión de la fecha y hora de expedición del comprobante fiscal. Se expresa en la forma aaaa-mm-ddThh:mm:ss, de acuerdo con la especificación ISO 8601.
"

Tu no tienes ese problema con la serialización? Y si te pasó como lo resolviste?

Saludos
si me tope con ese detalle cuando realizaba mis pruebas con el PAC, aqui te va el truco en c#:
string fechaString = XmlConvert.ToString(tfd.FechaTimbrado, "yyyy-MM-ddTHH:mm:ss");
Mi problema, en el atributo fecha del CFDI :

Código: Seleccionar todo

version="3.0" fecha="2011-01-31T17:59:53.922-07:00" 
El del nodo del timbra fiscal digital no tengo problema.... sino que al momento de serializar la clase comprobante para calcular la cadena original y sacar el sello y esas cosas.... pues el campo fecha me lo pone en ese formato :S (2011-01-31T17:59:53.922-07:00).
erick.aragon @ live.com.mx
Cerrado