Codificación de archivos XML.

04/12/2003 - 20:05 por LMCR | Informe spam
Saludos a todo el mundo:

Me enfrento a un problema que, seguro, tiene fácil solución. Lo que
sucede es que en la máquina de desarrollo (a la cual tengo acceso) no he
conseguido reproducirlo, mientras que la máquina destinada a producción
no hay forma de hacerlo funcionar.

Es un desarrollo web basado en IIS 5 (Windows 2000) y ASP que transforma
documento XML mediante plantillas XSLT. Hasta ahí todo normal.

Sin embargo, al intentar guardar los documentos XML desde las páginas
ASP se produce el siguiente error:
msxml3.dll error '80004005'
No se puede guardar el carácter con la codificación 'ISO-8859-1'.
/guia/global.asa, line 192

Dicha línea corresponde al método Save del objeto
MsXML2.FreeThreadedDOMDocument. Vamos, que no graba. Aparentemente no es
un problema de permisos (el error sería de otro tipo y esos sí los he
"sufrido"). Como he dicho antes, me veo "ciego" pues no consigo
reproducir dicho error en la máquina de desarrollo. Pero lo curioso es
que, aparentemente, sí carga el archivo (al menos, el error es al
grabar, no al cargar, luego supongo que sí ha podido cargarlo sin
problemas).

Además, es la primera vez que sufro dicha incidencia (y llevo ya varios
años trabajando en esto del XML).

¿Alguien se ha tropezado con el mismo problema? ¿Conocéis alguna
solución? ¿Alguna sugerencia?

Muchas gracias de antemano.

LMCR.
 

Leer las respuestas

#1 Patrick Espinosa
05/12/2003 - 12:02 | Informe spam
Según la descripción del error que has puesto, todo apunta
al error XML_BAD_ENCODING que devuelve el método
save, lo curioso es que no puedas reproducir el error en
tiempo de desarrollo En fin, como los tiros van por el
encoding, podría ser que utilizaras entidades en tu código
xml o xsl, y que esa entidad no pueda ser validada por el
parser, revisa que tanto el xml como el xsl estén bien
construidos (sólo con abrirlos en el Internet Explorer te
darás cuenta si tienen errores).

Si el problema que tienes es de entidades, que fue lo que
a mi me pasó, entonces tienes que sustituir (en el documento
afectado) las entidades por su respectivo valor numérico,
por ejemplo, en vez de tener un   debes tener un
  esto resolverá el problema.

Para ver una referencia del valor numérico de las
entidades, revisa esta página:
http://www.htmlhelp.com/reference/html40/entities/

Saludos.
Patrick Espinosa.


"LMCR" wrote in message
news:
Saludos a todo el mundo:

Me enfrento a un problema que, seguro, tiene fácil solución. Lo que
sucede es que en la máquina de desarrollo (a la cual tengo acceso) no he
conseguido reproducirlo, mientras que la máquina destinada a producción
no hay forma de hacerlo funcionar.

Es un desarrollo web basado en IIS 5 (Windows 2000) y ASP que transforma
documento XML mediante plantillas XSLT. Hasta ahí todo normal.

Sin embargo, al intentar guardar los documentos XML desde las páginas
ASP se produce el siguiente error:
msxml3.dll error '80004005'
No se puede guardar el carácter con la codificación 'ISO-8859-1'.
/guia/global.asa, line 192

Dicha línea corresponde al método Save del objeto
MsXML2.FreeThreadedDOMDocument. Vamos, que no graba. Aparentemente no es
un problema de permisos (el error sería de otro tipo y esos sí los he
"sufrido"). Como he dicho antes, me veo "ciego" pues no consigo
reproducir dicho error en la máquina de desarrollo. Pero lo curioso es
que, aparentemente, sí carga el archivo (al menos, el error es al
grabar, no al cargar, luego supongo que sí ha podido cargarlo sin
problemas).

Además, es la primera vez que sufro dicha incidencia (y llevo ya varios
años trabajando en esto del XML).

¿Alguien se ha tropezado con el mismo problema? ¿Conocéis alguna
solución? ¿Alguna sugerencia?

Muchas gracias de antemano.

LMCR.


Preguntas similares