XML - URGENTE: Ayuda con namespace

 
Vista:

URGENTE: Ayuda con namespace

Publicado por Silvia (2 intervenciones) el 09/09/2004 13:57:00
Hola:

Estoy intentando transformar mediante XSLT el archivo XML que me devuelve mi aplicación en Lotus Notes y me falla y no se muy bien porque. Si alguien me pudiese echar una mano le estaría muy agradecida.

Mi situación es la siguiente: mi apliacción en Lotus Notes me genera el siguiente archivo XML:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE document SYSTEM 'xmlschemas/domino_6_5_1.dtd'>
<document
xmlns='http://www.lotus.com/dxl'
version='6.5'
maintenanceversion='1.0'
replicaid='C1256F0A0027136F'
form='formPersona'>
<item name='cEdad'> ... <item>
<item name='cEstadoCivil'> ... </item>
</document>

Cuando intento transformarlo mediante una XSLT a otro archivo XML me ignora y hace lo que la da gana. Me explico: ignora las etiquetas XML nuevas que le estoy indicando y me lo transforma a texto.

Sin embargo, quitando las líneas 2ª y 4ª todo funciona correctamente.

No estoy muy puesta en todo esto, por eso agradeceria si alguien me pudiese indicar como hacer la XSLT para que estas líneas no afectasen.

Muchas gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problema al transformar un archivo XML de Lotus Notes mediante XSLT

Publicado por Alejandro (258 intervenciones) el 10/07/2023 22:49:49
El problema que estás experimentando al transformar el archivo XML generado por tu aplicación en Lotus Notes mediante XSLT puede deberse a la presencia de la declaración DOCTYPE y el atributo `xmlns` en el documento XML. Estos elementos pueden afectar la transformación y provocar resultados inesperados.

Aquí tienes una solución para tratar este problema:

1. Elimina la declaración DOCTYPE:
- Puedes eliminar la línea `<!DOCTYPE document SYSTEM 'xmlschemas/domino_6_5_1.dtd'>` del archivo XML antes de aplicar la transformación.
- Esto se puede hacer manualmente antes de cargar el archivo XML en el proceso de transformación, o puedes utilizar un programa o script para eliminar esa línea automáticamente.

2. Utiliza un prefijo para el espacio de nombres:
- En lugar de utilizar el espacio de nombres predeterminado (`xmlns='http://www.lotus.com/dxl'`), puedes utilizar un prefijo específico para el espacio de nombres, como `xmlns:dxl='http://www.lotus.com/dxl'`.
- Asegúrate de ajustar las referencias al espacio de nombres en tu archivo XSLT para utilizar el prefijo `dxl` en lugar del espacio de nombres predeterminado.

Aquí tienes un ejemplo de cómo se vería el archivo XML modificado:

1
2
3
4
5
6
7
8
9
10
<?xml version='1.0' encoding='utf-8'?>
<document
  xmlns:dxl='http://www.lotus.com/dxl'
  version='6.5'
  maintenanceversion='1.0'
  replicaid='C1256F0A0027136F'
  form='formPersona'>
  <item name='cEdad'>...</item>
  <item name='cEstadoCivil'>...</item>
</document>

Asegúrate de ajustar el archivo XSLT para que utilice el prefijo `dxl` en lugar del espacio de nombres predeterminado al hacer referencia a los elementos y atributos en el archivo XML.

Al realizar estas modificaciones, el proceso de transformación XSLT debería funcionar correctamente y generar el resultado esperado.

Recuerda que es importante tener en cuenta las especificaciones y requisitos del sistema Lotus Notes al trabajar con archivos XML generados por esa plataforma. Puede haber consideraciones adicionales específicas del entorno que debas tener en cuenta.

¡Espero que esta solución te ayude a resolver el problema de la transformación XSLT del archivo XML de Lotus Notes!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar