Subject: Re: fixing bookindex.html bloat

From: Peter Eisentraut <[email-masked]>
Date: Mon, 14 Feb 2022 18:31:25 +0100

On 13.02.22 21:16, Andres Freund wrote:
> The reason for the two xmlns= are different. The
> xmlns="http://www.w3.org/1999/xhtml" is afaict caused by confusion on our
> part.
> 
> Some of our stylesheets use
> xmlns="http://www.w3.org/TR/xhtml1/transitional"
> others use
> xmlns="http://www.w3.org/1999/xhtml"
> 
> It's noteworthy that the docbook xsl stylesheets end up with
> <html xmlns="http://www.w3.org/1999/xhtml">
> so it's a bit pointless to reference http://www.w3.org/TR/xhtml1/transitional
> afaict.
> 
> Adding xmlns="http://www.w3.org/1999/xhtml" to stylesheet-html-common.xsl gets
> rid of xmlns="http://www.w3.org/TR/xhtml1/transitional" in bookindex specific
> content.
> 
> Changing stylesheet.xsl from transitional to http://www.w3.org/1999/xhtml gets
> rid of xmlns="http://www.w3.org/TR/xhtml1/transitional" in navigation/footer.
> 
> Of course we should likely change all http://www.w3.org/TR/xhtml1/transitional
> references, rather than just the one necessary to get rid of the xmlns= spam.

Yeah, that is currently clearly wrong.  It appears I originally copied 
the wrong namespace declarations from examples that show how to 
customize the DocBook stylesheets, but those examples were apparently 
wrong or outdated in this respect.  It seems we also lack some namespace 
declarations altogether, as shown by your need to add it to 
stylesheet-html-common.xsl.  This appears to need some careful cleanup.

> The reason that we end up with so many more xmlns:xlink is just that without
> our customization there ends up being a single
> <div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
> and then everything below that doesn't need the xmlns:xlink anymore. But
> because stylesheet-html-common.xsl emits the div, the xmlns:xlink is emitted
> for each element that autoidx.xsl has "control" over.
> 
> Waiting for docbook to fix this seems a bit futile, I eventually found a
> bugreport about this, from 2016: https://sourceforge.net/p/docbook/bugs/1384/
> 
> But we can easily reduce the "impact" of the issue, by just adding a single
> xmlns:xlink to <div class="index">, which is sufficient to convince xsltproc
> to not repeat it.

I haven't fully wrapped my head around this.  I tried adding xlink to 
our own exclude-result-prefixes, but that didn't seem to have the right 
effect.

---

From: Peter Eisentraut <[email-masked]>
Date: Mon, 14 Feb 2022 23:06:20 +0100

> stylesheet-html-common.xsl.  This appears to need some careful cleanup.

The attached patch cleans up the xhtml namespace declarations properly, 
I think.

For the xlink business, I don't have a better idea than you, so your 
workaround proposal seems fine.

From 45d361e0bc7bd89b41880eb83cdccabf5626b71c Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <[email-masked]>
Date: Mon, 14 Feb 2022 22:56:11 +0100
Subject: [PATCH] Fix XML namespace declarations

---
 doc/src/sgml/stylesheet-hh.xsl           | 4 +---
 doc/src/sgml/stylesheet-html-common.xsl  | 3 ++-
 doc/src/sgml/stylesheet-html-nochunk.xsl | 4 +---
 doc/src/sgml/stylesheet-text.xsl         | 3 +--
 doc/src/sgml/stylesheet.xsl              | 3 +--
 5 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/doc/src/sgml/stylesheet-hh.xsl b/doc/src/sgml/stylesheet-hh.xsl
index 1b1ab4bbe9..6f4b706dac 100644
--- a/doc/src/sgml/stylesheet-hh.xsl
+++ b/doc/src/sgml/stylesheet-hh.xsl
@@ -1,8 +1,6 @@
 <?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                version='1.0'
-                xmlns="http://www.w3.org/TR/xhtml1/transitional"
-                exclude-result-prefixes="#default">
+                version='1.0'>
 
 <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/htmlhelp/htmlhelp.xsl"/>
 <xsl:include href="stylesheet-common.xsl" />
diff --git a/doc/src/sgml/stylesheet-html-common.xsl b/doc/src/sgml/stylesheet-html-common.xsl
index d9961089c6..96dd2cc038 100644
--- a/doc/src/sgml/stylesheet-html-common.xsl
+++ b/doc/src/sgml/stylesheet-html-common.xsl
@@ -4,7 +4,8 @@
 %common.entities;
 ]>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                version="1.0">
+                version="1.0"
+                xmlns="http://www.w3.org/1999/xhtml">
 
 <!--
   This file contains XSLT stylesheet customizations that are common to
diff --git a/doc/src/sgml/stylesheet-html-nochunk.xsl b/doc/src/sgml/stylesheet-html-nochunk.xsl
index 78add26a9f..8167127b93 100644
--- a/doc/src/sgml/stylesheet-html-nochunk.xsl
+++ b/doc/src/sgml/stylesheet-html-nochunk.xsl
@@ -1,8 +1,6 @@
 <?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                version='1.0'
-                xmlns="http://www.w3.org/TR/xhtml1/transitional"
-                exclude-result-prefixes="#default">
+                version='1.0'>
 
 <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
 <xsl:include href="stylesheet-common.xsl" />
diff --git a/doc/src/sgml/stylesheet-text.xsl b/doc/src/sgml/stylesheet-text.xsl
index 476b871870..529cc9ec38 100644
--- a/doc/src/sgml/stylesheet-text.xsl
+++ b/doc/src/sgml/stylesheet-text.xsl
@@ -1,8 +1,7 @@
 <?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 version='1.0'
-                xmlns="http://www.w3.org/TR/xhtml1/transitional"
-                exclude-result-prefixes="#default">
+                xmlns="http://www.w3.org/1999/xhtml">
 
 <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
 <xsl:import href="stylesheet-common.xsl" />
diff --git a/doc/src/sgml/stylesheet.xsl b/doc/src/sgml/stylesheet.xsl
index 0eac594f0c..b6141303ab 100644
--- a/doc/src/sgml/stylesheet.xsl
+++ b/doc/src/sgml/stylesheet.xsl
@@ -1,8 +1,7 @@
 <?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 version='1.0'
-                xmlns="http://www.w3.org/TR/xhtml1/transitional"
-                exclude-result-prefixes="#default">
+                xmlns="http://www.w3.org/1999/xhtml">
 
 <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"/>
 <xsl:include href="stylesheet-common.xsl" />
-- 
2.35.1

---

From: Andres Freund <[email-masked]>
Date: Mon, 14 Feb 2022 15:06:51 -0800

Hi,

On 2022-02-14 23:06:20 +0100, Peter Eisentraut wrote:
> The attached patch cleans up the xhtml namespace declarations properly, I
> think.

Looks good to me.

> workaround proposal seems fine.

K. Will you apply your patch, and then I'll push mine ontop?

Greetings,

Andres Freund