[libvirt PATCH] docs: Fix template matching in page.xsl

Michal Prívozník mprivozn at redhat.com
Mon Feb 21 09:31:42 UTC 2022


On 2/21/22 09:42, Martin Kletzander wrote:
> Our last default template had a match of "node()" which incidentally matched
> everything, including text nodes.  Since this has the same priority according to
> the XSLT spec, section 5.5:
> 
>   https://www.w3.org/TR/1999/REC-xslt-19991116#conflict
> 
> this is an error.  Also according to the same spec section, the XSLT processor
> may signal the error or pick the last rule.
> 
> This was uncovered with libxslt 1.1.35 which contains the following commit:
> 
>   https://gitlab.gnome.org/GNOME/libxslt/-/commit/b0074eeca3c6b21b4da14fdf712b853900c51635
> 
> which makes the build fail with:
> 
>   runtime error: file ../docs/page.xsl line 223 element element
>   xsl:element: The effective name '' is not a valid QName.
> 
> because our last rule also matches text nodes and we are trying to extract the
> node name out of them.
> 
> To fix this we change the match to "*" which only matches elements and not all
> the nodes, and to avoid any possible errors with different XSLT processors we
> also bump the priority of the match="text()" rule a little higher, just in case
> someone needs to use an XSLT processor that chooses signalling the error instead
> of the optional recovery.
> 
> https://bugs.gentoo.org/833586
> 
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>  docs/page.xsl | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)


Reviewed-by: Michal Privoznik <mprivozn at redhat.com>

Michal




More information about the libvir-list mailing list