Problema con entidades XSL
Hola. Tengo una plantilla XSL que contiene entidades del estilo á y demas... y pretendo transformar un documento xml en otro documento xml utilizando esta plantilla. Por ejemplo:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<acentos>
á
é
í
ó
ú
</acentos>
</xsl:template>
</xsl:stylesheet>
e interesa que como salida tenga:
<?xml version="1.0" encoding="iso-8859-1"?>
<acentos>
á
é
í
ó
ú
</acentos>
He probado de todo para intentarlo: declarar las entidades en el XSL y mas perrerias, pero... nada de nada.
Alguien sabe como?????
Muchas gracias...
PD: Ok el ejemplo es tonto, pero es exactamente lo que pretende ser, un ejemplo ilustrativo.. ;-)
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<acentos>
á
é
í
ó
ú
</acentos>
</xsl:template>
</xsl:stylesheet>
e interesa que como salida tenga:
<?xml version="1.0" encoding="iso-8859-1"?>
<acentos>
á
é
í
ó
ú
</acentos>
He probado de todo para intentarlo: declarar las entidades en el XSL y mas perrerias, pero... nada de nada.
Alguien sabe como?????
Muchas gracias...
PD: Ok el ejemplo es tonto, pero es exactamente lo que pretende ser, un ejemplo ilustrativo.. ;-)
De nuevo el mismo...
Encontre la siguiente solucion, pero... es algo chapuza, creo yo (aunque mas o menos funciona):
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE stylesheet [
<!ENTITY aacute "<xsl:text disable-output-escaping='yes'>&aacute;</xsl:text>">
<!ENTITY eacute "<xsl:text disable-output-escaping='yes'>&eacute;</xsl:text>">
<!ENTITY iacute "<xsl:text disable-output-escaping='yes'>&iacute;</xsl:text>">
<!ENTITY oacute "<xsl:text disable-output-escaping='yes'>&oacute;</xsl:text>">
<!ENTITY uacute "<xsl:text disable-output-escaping='yes'>&uacute;</xsl:text>">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>
<xsl:variable name="doc-type"><![CDATA[
<!DOCTYPE article [
<!ENTITY % iso-lat1 SYSTEM "iso-lat1.ent">
%iso-lat1;
]>
]]></xsl:variable>
<xsl:template match="/">
<xsl:value-of select="$doc-type" disable-output-escaping="yes"/>
<acentos>
á
é
í
ó
ú
</acentos>
</xsl:template>
</xsl:stylesheet>
Alguien tiene una mejor idea?????
Muchas gracias.
PD: es mas o menos logica la solucion pero algo liadilla...
Encontre la siguiente solucion, pero... es algo chapuza, creo yo (aunque mas o menos funciona):
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE stylesheet [
<!ENTITY aacute "<xsl:text disable-output-escaping='yes'>&aacute;</xsl:text>">
<!ENTITY eacute "<xsl:text disable-output-escaping='yes'>&eacute;</xsl:text>">
<!ENTITY iacute "<xsl:text disable-output-escaping='yes'>&iacute;</xsl:text>">
<!ENTITY oacute "<xsl:text disable-output-escaping='yes'>&oacute;</xsl:text>">
<!ENTITY uacute "<xsl:text disable-output-escaping='yes'>&uacute;</xsl:text>">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>
<xsl:variable name="doc-type"><![CDATA[
<!DOCTYPE article [
<!ENTITY % iso-lat1 SYSTEM "iso-lat1.ent">
%iso-lat1;
]>
]]></xsl:variable>
<xsl:template match="/">
<xsl:value-of select="$doc-type" disable-output-escaping="yes"/>
<acentos>
á
é
í
ó
ú
</acentos>
</xsl:template>
</xsl:stylesheet>
Alguien tiene una mejor idea?????
Muchas gracias.
PD: es mas o menos logica la solucion pero algo liadilla...
