Я ищу способ автоматического распространения атрибута XMLNS из одного шаблона XSL в другой, поэтому мне не нужно каждый раз его повторно декларировать.
Вот моя ситуация. Я пытаюсь преобразовать файл XML в файл XHTML, используя файл XSLT. Мой XML-файл:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" encoding="UTF-8" href="car.xslt" version="1.0"?>
<vehicle>
<car>
<make>Honda</make>
<color>blue</color>
</car>
<car>
<make>Saab</make>
<color>red</color>
</car>
</vehicle>
Мой XSLT-файл:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<table cellpadding="5" border="1">
<tr><td>make</td><td>color</td></tr>
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="car">
<tr xmlns="http://www.w3.org/1999/xhtml">
<td><xsl:value-of select="make"/></td><td><xsl:value-of select="color"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
В файле XSLT я хотел бы просто сказать:
<xsl:template match="car">
<tr>
без необходимости повторного объявления XMLNS. Есть предложения?