Szybkie oka w specyfikacji pokazuje, że taka konstrukcja jest dozwolone:
W skrócie, href
jest dozwolone tylko atrybut i nie ma zawartości dozwolonej w ciele elementu.
Jednakże, jeśli rozumiem twój przypadek użycia, powinieneś po prostu ustawić parametr w normalny sposób (używając swojego języka hosta). Nie powinno mieć znaczenia, że zostało zdefiniowane w zaimportowanym arkuszu stylów. Na przykład załóżmy, że masz ten arkusz stylów:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="import.xsl"/>
<xsl:template match="/">
<xsl:value-of select="$test"/>
</xsl:template>
</xsl:stylesheet>
których przywóz tego:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="test" select="'default'"/>
</xsl:stylesheet>
... następnie ustawienie parametru w normalny sposób powinien po prostu pracować test
. Zauważ, że możesz również "zamaskować" parametr z zaimportowanego arkusza, jeśli chcesz podać nową wartość domyślną.
Tak, dodając to do pierwszego arkusza stylów:
<xsl:param name="test" select="'default2'"/>
... spowodowałoby to wydrukować default2
(przesłanianie domyślne z importowanego arkusza).
Czasami można skorzystać z tego, że jeśli szablon w zaimportowanym arkuszu używa parametrów, można go wywołać za pomocą parametrów z importowanego arkusza stylów. –