GNOME Bugzilla – Bug 344894
AVTs are precompiled only for attributes of Literal Result Elements
Last modified: 2021-07-05 11:00:51 UTC
AVTs are only precompiled for Literal Result Elements via xsltCompileAttr(). For other AVTs only a check for a static value is performed via xsltEvalStaticAttrValueTemplate(). We should precompile all AVTs with xsltCompileAttr(). Details: For <foo bar="{foo/@bar}"/> (i.e., in Literal Result Elements), the AVT is compiled during compilation time of the stylesheet via: xsltParseTemplateContent() --> xsltCompileAttr() --> xsltEvalAVT() --> xsltEvalXPathStringNs() For <xsl:attribute name="{foo/@bar}"/>, the AVT is not precompiled, and evaluated at transformation-time via: xsltAttributeInternal() --> xsltEvalAttrValueTemplate() --> xsltAttrTemplateValueProcessNode() --> xmlXPathCompile() --> xsltEvalXPathStringNs()
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/libxslt/-/issues/ Thank you for your understanding and your help.