xsl:function a undeclared prefix

marek_rd marek_rd na yahoo.co.uk
Středa Únor 17 10:21:31 CET 2010


Dobrý den,

na tomto fóru mi pan Kosek jednou poradil následující funkci na
generování nedělitelných mezer za jednoslovné předložky:

<xsl:function name="f:tildify">
        <xsl:param name="text"/>
        <xsl:value-of select="replace($text,
            '(\s|\p{Z}|\p{P})([AIKOSUVZikosuvz])([ \t]+|[ \t]*\n[ \t]*)(\w)', 
            '$1$2 $4', 's')"/>
    </xsl:function>
    <xsl:template match="text()">
        <xsl:value-of select="f:tildify(.)"/>
    </xsl:template>

Pokud ji však chci použít, saxon mi nahlásí chybu syntaxe "undeclared
namespace prefix". Podle dokumentace XSL má mít skutečně atribut name
pro xsl:function vždy prefix. Nenašel jsem však, jak to pak zařídit,
aby byl dokument validní. To mám deklarovat nějaký vlastní namespace?
Ale jak? Můžete mi prosím poradit?

Děkuji, Marek Rada




Další informace o konferenci Docbook