Если вы хотите добавить элементы в пространство имен SVG, вам нужно использовать его, поэтому, если предполагается, что вся таблица стилей создает элементы SVG, и вы уже объявили ее в корневом элементе, как вы это сделали с
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:svg="http://www.w3.org/2000/svg" version='1.0'>
вы можете создать элемент SVG style
, используя svg:style
:
<xsl:template match="svg:title">
<xsl:copy-of select="."/>
<svg:style>.val{--valence: #4599a3}</svg:style>
</xsl:template>
В качестве альтернативы вы можете поместить объявление пространства имен по умолчанию xmlns="http://www.w3.org/2000/svg"
в корневой элемент таблицы стилей, например
<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version='1.0'>
..
<xsl:template match="svg:title">
<xsl:copy-of select="."/>
<style>.val{--valence: #4599a3}</style>
</xsl:template>
xsl:element
не требуется.
Что касается других объявлений пространства имен, которые вы объявляете в корневом элементе для выражений XPath или шаблонов сопоставления XSLT, но не хотите использовать дляэлементы результата, вы можете использовать атрибут exclude-result-prefixes
на xsl:stylesheet
/ xsl:transform
например exclude-result-prefixes="xsi svg"
<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
exclude-result-prefixes="xsi svg"
version='1.0'>
<!-- this template is applied by default to all nodes and attributes -->
<xsl:template match="@*|node()">
<!-- just copy all my attributes and child nodes, except if there's a better template for some of them -->
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="svg:title">
<xsl:copy-of select="."/>
<style>.val{--valence: #4599a3}</style>
</xsl:template>
</xsl:stylesheet>
https://xsltfiddle.liberty -development.net / gWvjQeY