I've spent a little bit of time trying to figure out what's going on, and I can 
see that:

* The issue only happens when there is xmlns="http://docbook.org/ns/docbook"; on 
the root <book> element

* It is definitely picking up the contents of the $ebnf.assignment param from 
"/usr/share/xml/docbook/stylesheet/docbook-xsl/html/param.xsl"

The shortest input for reproduction I have found is therefore this:

<?xml version="1.0"?>
<book xmlns="http://docbook.org/ns/docbook";></book>

Something about the namespace removal (mode="stripNS") is picking up the 
$ebnf.assignment param. I haven't figured out why (it might be a bug in 
libxslt, for example), but this XSLT appears to be troublesome:

<xsl:param name="ebnf.assignment">
<code>::=</code>
</xsl:param>

However, I have found that replacing it with the following fixes it, without 
breaking the output for EBNF output (EBNF HTML output is the same before and 
after):

<xsl:param name="ebnf.assignment">
<xsl:text disable-output-escaping="yes">&lt;code>::=&lt;/code></xsl:text>
</xsl:param>

The above was all conducted on Ubuntu 16.04.1 LTS with docbook-xsl 
1.79.1+dfsg-1, and xsltproc 1.1.28-2.1. I would expect the same fix to apply to 
Debian.

Reply via email to