[gnomemm-website/kjellahl/testci] CItest: Upgrade to DocBook 5, take 2



commit 53292988996d6f6e10189908b484d4d865ef4b0c
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Mon Jan 24 15:29:24 2022 +0100

    CItest: Upgrade to DocBook 5, take 2

 Makefile.am                   |   3 +-
 docs/C/books.xml              |  63 ++++++------
 docs/C/bugs.xml               |  85 +++++++--------
 docs/C/commercial_support.xml |  84 +++++++--------
 docs/C/developers.xml         |  86 ++++++++--------
 docs/C/documentation.xml      | 151 ++++++++++++++-------------
 docs/C/download.xml           |  81 ++++++++-------
 docs/C/extra.xml              | 234 ++++++++++++++++++++++--------------------
 docs/C/git.xml                | 191 +++++++++++++++++-----------------
 docs/C/index.docbook          | 111 ++++++++++----------
 docs/C/license.xml            |  24 ++---
 docs/C/mailinglist.xml        |  53 +++++-----
 docs/C/main.xml               |  67 ++++++------
 docs/C/news.xml               |  29 +++---
 docs/Makefile.am              |   6 +-
 docs/can_use_xmllint.xml      |  15 +++
 docs/meson.build              |  36 ++++++-
 docs/param.rng                |  22 ++++
 docs/param.xsl                |  65 ++++++------
 meson.build                   |  11 +-
 meson_options.txt             |   3 +-
 tools/website-custom-cmd.py   |  42 ++++++--
 22 files changed, 798 insertions(+), 664 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 392d43e..e9dae6e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,7 +9,8 @@ dist_noinst_SCRIPTS = autogen.sh
 EXTRA_DIST = \
   meson.build \
   meson_options.txt \
-  docs/meson.build \
   docs/LINGUAS \
+  docs/meson.build \
+  docs/can_use_xmllint.xml \
   tools/extra-dist-cmd.py \
   tools/website-custom-cmd.py
diff --git a/docs/C/books.xml b/docs/C/books.xml
index e6aa037..723689f 100644
--- a/docs/C/books.xml
+++ b/docs/C/books.xml
@@ -1,63 +1,66 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="books">
+    <title/>
 
-  <article id="books">
-    <sect1>
-      <title>Recommended Books</title>
-      
-      <para>The <ulink url="https://developer.gnome.org/gtkmm-tutorial/stable";>Programming with gtkmm 
4</ulink>
-        and <ulink url="https://developer.gnome.org/gtkmm-tutorial/3.24/";>Programming with gtkmm 3</ulink>
-        tutorials are available online along with the rest of our <ulink 
url="documentation.html">documentation</ulink>.</para>
-      <para><ulink url="https://mesonbuild.com/";>The Meson build system</ulink> is also described 
online.</para>
+    <section>
+    <title>Recommended Books</title>
+
+      <para>The <link xlink:href="https://developer.gnome.org/gtkmm-tutorial/stable";>Programming with gtkmm 
4</link>
+        and <link xlink:href="https://developer.gnome.org/gtkmm-tutorial/3.24/";>Programming with gtkmm 
3</link>
+        tutorials are available online along with the rest of our <link 
xlink:href="documentation.html">documentation</link>.</para>
+      <para><link xlink:href="https://mesonbuild.com/";>The Meson build system</link> is also described 
online.</para>
       <para>
    The gtkmm developers also find these books helpful:
   </para>
-      <sect2>
-        <title>Core books</title>
+
+      <section>
+      <title>Core books</title>
         <para>
     <itemizedlist>
             <listitem>
-              <para><ulink url="http://www.amazon.com/exec/obidos/ISBN=0201889544/murrayswebpages/";>The C++ 
Programming Language, Bjarne Stroustrup</ulink></para>
+              <para><link 
xlink:href="http://www.amazon.com/exec/obidos/ISBN=0201889544/murrayswebpages/";>The C++ Programming Language, 
Bjarne Stroustrup</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.amazon.com/exec/obidos/ISBN=0201379260/murrayswebpages/";>The C++ 
Standard Library, Nicolai M. Josuttis</ulink></para>
+              <para><link 
xlink:href="http://www.amazon.com/exec/obidos/ISBN=0201379260/murrayswebpages/";>The C++ Standard Library, 
Nicolai M. Josuttis</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.amazon.com/exec/obidos/ISBN=0201633612/murrayswebpages/";>Design 
Patterns, Erich Gamma et al</ulink></para>
+              <para><link 
xlink:href="http://www.amazon.com/exec/obidos/ISBN=0201633612/murrayswebpages/";>Design Patterns, Erich Gamma 
et al</link></para>
             </listitem>
           </itemizedlist>
    </para>
-      </sect2>
-      <sect2>
-        <title>For beginners</title>
+      </section>
+
+      <section>
+      <title>For beginners</title>
         <para>
     <itemizedlist>
             <listitem>
-              <para><ulink 
url="http://www.amazon.com/exec/obidos/ISBN=020170353X/murrayswebpages/";>Accelerated C++ - Practical 
Programming by Example, Andrew Koenig &amp; Barbara E. Moo</ulink></para>
+              <para><link 
xlink:href="http://www.amazon.com/exec/obidos/ISBN=020170353X/murrayswebpages/";>Accelerated C++ - Practical 
Programming by Example, Andrew Koenig &amp; Barbara E. Moo</link></para>
             </listitem>
           </itemizedlist>
    </para>
-      </sect2>
-      <sect2>
-        <title>Others</title>
+      </section>
+
+      <section>
+      <title>Others</title>
         <para>
     <itemizedlist>
             <listitem>
-              <para><ulink url="http://www.amazon.com/exec/obidos/ISBN=0764526413/murrayswebpages/";>About 
Face 3: The essentials of interaction design, Alan Cooper &amp; Robert M. Reimann</ulink></para>
+              <para><link 
xlink:href="http://www.amazon.com/exec/obidos/ISBN=0764526413/murrayswebpages/";>About Face 3: The essentials 
of interaction design, Alan Cooper &amp; Robert M. Reimann</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.amazon.com/exec/obidos/ISBN=0201379279/murrayswebpages/";>Advanced 
CORBA Programming with C++, Michi Henning &amp; Steve Vinoski</ulink></para>
+              <para><link 
xlink:href="http://www.amazon.com/exec/obidos/ISBN=0201379279/murrayswebpages/";>Advanced CORBA Programming 
with C++, Michi Henning &amp; Steve Vinoski</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.amazon.com/exec/obidos/ISBN=1578701902/murrayswebpages/";>GNU 
Autoconf, Automake, and Libtool, Gary Vaughan et al</ulink></para>
+              <para><link 
xlink:href="http://www.amazon.com/exec/obidos/ISBN=1578701902/murrayswebpages/";>GNU Autoconf, Automake, and 
Libtool, Gary Vaughan et al</link></para>
             </listitem>
             <listitem>
-              <para><ulink 
url="http://www.amazon.com/exec/obidos/ISBN=1565921127/murrayswebpages/";>Programming With Gnu Software, 
Michael Kosta Loukides et al</ulink></para>
+              <para><link 
xlink:href="http://www.amazon.com/exec/obidos/ISBN=1565921127/murrayswebpages/";>Programming With Gnu 
Software, Michael Kosta Loukides et al</link></para>
             </listitem>
           </itemizedlist>
    </para>
-      </sect2>
-    </sect1>
+      </section>
+    </section>
   </article>
diff --git a/docs/C/bugs.xml b/docs/C/bugs.xml
index 9f122ca..389467c 100644
--- a/docs/C/bugs.xml
+++ b/docs/C/bugs.xml
@@ -1,60 +1,63 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="bugs">
+    <title/>
 
-  <article id="bugs">
-    <sect1>
-      <title>Bugs</title>
-      <highlights>
-        <para>See <ulink url="#NewBugs">Where to report</ulink> to submit new bugs or patches.</para>
-      </highlights>
-      <sect2>
-        <title>Current bugs and patches</title>
+    <section>
+    <title>Bugs</title>
+      <note>
+        <para>See <link xlink:href="#NewBugs">Where to report</link> to submit new bugs or patches.</para>
+      </note>
+
+      <section>
+      <title>Current bugs and patches</title>
         <para>A good way to get involved.</para>
         <itemizedlist>
           <listitem>
-            <para>Outstanding <ulink url="https://gitlab.gnome.org/GNOME/gtkmm/issues/";>gtkmm 
bugs</ulink></para>
+            <para>Outstanding <link xlink:href="https://gitlab.gnome.org/GNOME/gtkmm/issues/";>gtkmm 
bugs</link></para>
           </listitem>
           <listitem>
-            <para>Outstanding <ulink url="https://gitlab.gnome.org/GNOME/glibmm/issues/";>glibmm 
bugs</ulink></para>
+            <para>Outstanding <link xlink:href="https://gitlab.gnome.org/GNOME/glibmm/issues/";>glibmm 
bugs</link></para>
           </listitem>
           <listitem>
-            <para>Outstanding <ulink url="https://gitlab.gnome.org/GNOME/pangomm/issues/";>pangomm 
bugs</ulink></para>
+            <para>Outstanding <link xlink:href="https://gitlab.gnome.org/GNOME/pangomm/issues/";>pangomm 
bugs</link></para>
           </listitem>
           <listitem>
-            <para>Outstanding <ulink 
url="https://gitlab.gnome.org/GNOME/gtkmm-documentation/issues/";>gtkmm-documentation bugs</ulink></para>
+            <para>Outstanding <link 
xlink:href="https://gitlab.gnome.org/GNOME/gtkmm-documentation/issues/";>gtkmm-documentation bugs</link></para>
           </listitem>
           <listitem>
-            <para>Outstanding <ulink url="https://gitlab.gnome.org/GNOME/mm-common/issues/";>mm-common 
bugs</ulink></para>
+            <para>Outstanding <link xlink:href="https://gitlab.gnome.org/GNOME/mm-common/issues/";>mm-common 
bugs</link></para>
           </listitem>
           <listitem>
-            <para>Outstanding <ulink url="https://gitlab.freedesktop.org/cairo/cairomm/issues";>cairomm 
bugs</ulink></para>
+            <para>Outstanding <link xlink:href="https://gitlab.freedesktop.org/cairo/cairomm/issues";>cairomm 
bugs</link></para>
           </listitem>
           <listitem>
-            <para>Outstanding <ulink 
url="https://github.com/libsigcplusplus/libsigcplusplus/issues";>libsigc++ bugs</ulink></para>
+            <para>Outstanding <link 
xlink:href="https://github.com/libsigcplusplus/libsigcplusplus/issues";>libsigc++ bugs</link></para>
           </listitem>
         </itemizedlist>
         <para>As soon as a gtkmm patch has been clearly approved by a maintainer, anybody with git write 
access may apply it.</para>
-      </sect2>
-      <sect2>
-        <title><anchor id="NewBugs"/>Where to report?</title>
+      </section>
+
+      <section>
+      <title><anchor xml:id="NewBugs"/>Where to report?</title>
         <itemizedlist>
           <listitem>
-            <para>Bugs are tracked in GNOME&apos;s <ulink url="https://gitlab.gnome.org";>issue 
tracker</ulink>.
- Submit gtkmm bugs <ulink url="https://gitlab.gnome.org/GNOME/gtkmm/issues/new/";>here</ulink>.
+            <para>Bugs are tracked in GNOME's <link xlink:href="https://gitlab.gnome.org";>issue 
tracker</link>.
+ Submit gtkmm bugs <link xlink:href="https://gitlab.gnome.org/GNOME/gtkmm/issues/new/";>here</link>.
  </para>
           </listitem>
           <listitem>
             <para>Patches should be attached to existing issues or MRs
  (merge requests) rather than sent to
- the mailing list.  When reporting a new bug you&apos;ll get a chance to attach a
+ the mailing list.  When reporting a new bug you'll get a chance to attach a
  file to it immediately <emphasis role="bold">after</emphasis> opening the issue.</para>
           </listitem>
         </itemizedlist>
-      </sect2>
-      <sect2>
-        <title>What information is needed for a bug report?</title>
+      </section>
+
+      <section>
+      <title>What information is needed for a bug report?</title>
         <itemizedlist>
           <listitem>
             <para>version numbers of GTK, gtkmm and other related software, including your 
platform/distro/compiler.</para>
@@ -76,17 +79,18 @@
             <para>if possible, provide a patch</para>
           </listitem>
         </itemizedlist>
-        <para>If we can&apos;t solve the problem immediately then we might ask you to
+        <para>If we can't solve the problem immediately then we might ask you to
  create a simple-as-possible example that actually builds. This helps
  us to isolate the problem, and proves that the problem is not caused
  by your own code.</para>
-      </sect2>
-      <sect2>
-        <title><anchor id="CreatingPatches"/>How do I create a patch?</title>
+      </section>
+
+      <section>
+      <title><anchor xml:id="CreatingPatches"/>How do I create a patch?</title>
         <para>There are many ways to use Git, but this is the simplest way to create a patch if you are 
unfamiliar with Git:</para>
         <itemizedlist>
           <listitem>
-            <para>Take code from <ulink url="git.html">git</ulink></para>
+            <para>Take code from <link xlink:href="git.html">git</link></para>
           </listitem>
           <listitem>
             <para>Modify that version</para>
@@ -102,9 +106,10 @@
             <para>Add the patch in the issue tracker (see above).</para>
           </listitem>
         </itemizedlist>
-      </sect2>
-      <sect2>
-        <title>Should I send a bug report?</title>
+      </section>
+
+      <section>
+      <title>Should I send a bug report?</title>
         <para>
  Always send a bug report:
  </para>
@@ -120,8 +125,8 @@
           </listitem>
         </itemizedlist>
         <para>If you know how to fix the bug, you can
-          <ulink url="https://gitlab.gnome.org/help/user/project/merge_requests/creating_merge_requests.md";>
-         create a merge request</ulink> instead of (or in addition to) an issue. </para>
-      </sect2>
-    </sect1>
+          <link 
xlink:href="https://gitlab.gnome.org/help/user/project/merge_requests/creating_merge_requests.md";>
+         create a merge request</link> instead of (or in addition to) an issue. </para>
+      </section>
+    </section>
   </article>
diff --git a/docs/C/commercial_support.xml b/docs/C/commercial_support.xml
index b693377..fdeaa44 100644
--- a/docs/C/commercial_support.xml
+++ b/docs/C/commercial_support.xml
@@ -1,108 +1,108 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="commercial_support">
+    <title/>
 
-  <article id="commercial_support">
-    <sect1>
-      <title>Commercial Support</title>
+    <section>
+    <title>Commercial Support</title>
       <para>The mailing lists, irc, and documentation are helpful, but your company might
 require more in-depth assistance or custom development. If so feel free to contact the following freelance 
developers and companies directly to discuss a commercial arrangement. If necessary we can also build larger 
development teams.</para>
       <informaltable>
         <tr>
-          <th>Name, email</th>
-          <th>Location</th>
+          <th rowspan="1" colspan="1">Name, email</th>
+          <th rowspan="1" colspan="1">Location</th>
         </tr>
         <tr>
-          <td><ulink url="http://www.m2osw.com";>Made to Order Software Corp.</ulink>: Quality software with 
easy to use interfaces from simple utilities to complex e-Business solutions.</td>
-          <td>USA, UK</td>
+          <td rowspan="1" colspan="1"><link xlink:href="http://www.m2osw.com";>Made to Order Software 
Corp.</link>: Quality software with easy to use interfaces from simple utilities to complex e-Business 
solutions.</td>
+          <td rowspan="1" colspan="1">USA, UK</td>
         </tr>
         <tr>
-          <td><ulink url="http://dianiuxinnova.com/";>Dianiux Innova</ulink></td>
-          <td>Valencia, Spain</td>
+          <td rowspan="1" colspan="1"><link xlink:href="http://dianiuxinnova.com/";>Dianiux Innova</link></td>
+          <td rowspan="1" colspan="1">Valencia, Spain</td>
         </tr>
       </informaltable>
       <para>Many corporations use gtkmm to implement their products and internal projects. You can get a 
rough idea of this by looking at the email addresses on the mailing list. Here is a small list of some of 
those companies:<itemizedlist>
           <listitem>
-            <para><ulink url="http://www.mysql.com";>MySQL</ulink> - Databases</para>
+            <para><link xlink:href="http://www.mysql.com";>MySQL</link> - Databases</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.vmware.com/";>VMWare</ulink> - Virtualization, network 
management</para>
+            <para><link xlink:href="http://www.vmware.com/";>VMWare</link> - Virtualization, network 
management</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.amazon.com/";>Amazon</ulink> - MP3 Downloader</para>
+            <para><link xlink:href="http://www.amazon.com/";>Amazon</link> - MP3 Downloader</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.supersonicimagine.fr/";>Supersonic Imagine</ulink> - Medical 
imaging</para>
+            <para><link xlink:href="http://www.supersonicimagine.fr/";>Supersonic Imagine</link> - Medical 
imaging</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.garmin.com/";>Garmin</ulink> - Consumer navigation devices</para>
+            <para><link xlink:href="http://www.garmin.com/";>Garmin</link> - Consumer navigation 
devices</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.spacetec.no/";>Kongsberg Spacetec</ulink> - 
satellite/meteorological</para>
+            <para><link xlink:href="http://www.spacetec.no/";>Kongsberg Spacetec</link> - 
satellite/meteorological</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.solvo.ru/";>Solvo Ltd.</ulink> - warehouse management systems</para>
+            <para><link xlink:href="http://www.solvo.ru/";>Solvo Ltd.</link> - warehouse management 
systems</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.eads.com";>EADS</ulink> - aerospace/defense/satellite</para>
+            <para><link xlink:href="http://www.eads.com";>EADS</link> - aerospace/defense/satellite</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.northropgrumman.com";>Northrup Grumman</ulink> - 
military/defense</para>
+            <para><link xlink:href="http://www.northropgrumman.com";>Northrup Grumman</link> - 
military/defense</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.henson.com";>Jim Henson&apos;s Muppet Workshop</ulink> - 
animatronics</para>
+            <para><link xlink:href="http://www.henson.com";>Jim Henson's Muppet Workshop</link> - 
animatronics</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.isotrol.com";>Isotrol</ulink> - electrical engineering</para>
+            <para><link xlink:href="http://www.isotrol.com";>Isotrol</link> - electrical engineering</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://linuxaudiosystems.com/";>Linux Audio Systems</ulink> - professional 
audio/music systems</para>
+            <para><link xlink:href="http://linuxaudiosystems.com/";>Linux Audio Systems</link> - professional 
audio/music systems</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.designadvantage.com";>Design Advantage</ulink> - 
electrical/mechanical engineering</para>
+            <para><link xlink:href="http://www.designadvantage.com";>Design Advantage</link> - 
electrical/mechanical engineering</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.dme.net";>DME</ulink> - mold engineering</para>
+            <para><link xlink:href="http://www.dme.net";>DME</link> - mold engineering</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.bifab.de";>Bibliographisches Institut &amp; F.A. Brockhaus 
AG</ulink> - publishing</para>
+            <para><link xlink:href="http://www.bifab.de";>Bibliographisches Institut &amp; F.A. Brockhaus 
AG</link> - publishing</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.hasar.com";>Hasar</ulink> - POS software/hardware</para>
+            <para><link xlink:href="http://www.hasar.com";>Hasar</link> - POS software/hardware</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.icodsi.biz";>iCodsi</ulink> - security/encryption software</para>
+            <para><link xlink:href="http://www.icodsi.biz";>iCodsi</link> - security/encryption 
software</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.aplik.com/";>Aplik</ulink> - process engineering</para>
+            <para><link xlink:href="http://www.aplik.com/";>Aplik</link> - process engineering</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.fis-cal.com/";>Fiscal</ulink> - fiscal Systems, POS</para>
+            <para><link xlink:href="http://www.fis-cal.com/";>Fiscal</link> - fiscal Systems, POS</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.thewrittenword.com/";>The Written Word</ulink> - prebuilt software 
packages</para>
+            <para><link xlink:href="http://www.thewrittenword.com/";>The Written Word</link> - prebuilt 
software packages</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.exact-med.com/";>Allcare</ulink> - ExactMed eMAR, medication 
administration</para>
+            <para><link xlink:href="http://www.exact-med.com/";>Allcare</link> - ExactMed eMAR, medication 
administration</para>
           </listitem>
           <listitem>
-            <para><ulink url="https://www.sendoutcards.com/";>SendOutCards.com</ulink> - Specialized internal 
applications</para>
+            <para><link xlink:href="https://www.sendoutcards.com/";>SendOutCards.com</link> - Specialized 
internal applications</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.epictechnology.co.uk/";>EPIC Technology</ulink> - Point Of Sale 
systems</para>
+            <para><link xlink:href="http://www.epictechnology.co.uk/";>EPIC Technology</link> - Point Of Sale 
systems</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.i-medlab.com/";>iMed</ulink> Medical imaging - <ulink 
url="http://www.i-medlab.com/Products/page1.html";>CAD Colon</ulink>.</para>
+            <para><link xlink:href="http://www.i-medlab.com/";>iMed</link> Medical imaging - <link 
xlink:href="http://www.i-medlab.com/Products/page1.html";>CAD Colon</link>.</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.downeysavings.com/";>Downey Savings</ulink> - Banking</para>
+            <para><link xlink:href="http://www.downeysavings.com/";>Downey Savings</link> - Banking</para>
           </listitem>
           <listitem>
-            <para><ulink url="http://www.innoventis.de/";>Innoventis</ulink> - Automotive systems</para>
+            <para><link xlink:href="http://www.innoventis.de/";>Innoventis</link> - Automotive systems</para>
           </listitem>
         </itemizedlist></para>
-      <para>If you would like to be listed here please send email to the <ulink 
url="mailinglist.html">mailing list</ulink> or a maintainer.</para>
-      <para>See also <emphasis>Apps built with GTK</emphasis> at <ulink url="https://www.gtk.org";>the GTK 
website</ulink>.</para>
-    </sect1>
+      <para>If you would like to be listed here please send email to the <link 
xlink:href="mailinglist.html">mailing list</link> or a maintainer.</para>
+      <para>See also <emphasis>Apps built with GTK</emphasis> at <link xlink:href="https://www.gtk.org";>the 
GTK website</link>.</para>
+    </section>
   </article>
diff --git a/docs/C/developers.xml b/docs/C/developers.xml
index f739aea..98afe34 100644
--- a/docs/C/developers.xml
+++ b/docs/C/developers.xml
@@ -1,79 +1,83 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="developers">
+    <title/>
 
-  <article id="developers">
-    <sect1>
-      <title>gtkmm Development</title>
-      <para>gtkmm development is done in the <ulink url="https://gnome.org/";>GNOME</ulink> Git
-repository.  To get started developing gtkmm, see the <ulink url="git.html">detailed Git 
instructions</ulink>.  Discussion about gtkmm
-development happens on the <ulink url="mailinglist.html">mailing list</ulink>.</para>
-      <highlights>
-        <para>Please do not mail us directly - use the <ulink url="mailinglist.html">mailing list</ulink> 
instead.</para>
-      </highlights>
-    </sect1>
-    <sect1>
-      <title>Developers and Contributors</title>
-      <sect2>
-        <title>Current maintainers</title>
+    <section>
+    <title>gtkmm Development</title>
+      <para>gtkmm development is done in the <link xlink:href="https://gnome.org/";>GNOME</link> Git
+repository.  To get started developing gtkmm, see the <link xlink:href="git.html">detailed Git 
instructions</link>.  Discussion about gtkmm
+development happens on the <link xlink:href="mailinglist.html">mailing list</link>.</para>
+      <note>
+        <para>Please do not mail us directly - use the <link xlink:href="mailinglist.html">mailing 
list</link> instead.</para>
+      </note>
+    </section>
+
+    <section>
+    <title>Developers and Contributors</title>
+      <section>
+      <title>Current maintainers</title>
         <itemizedlist>
           <listitem>
-            <para><ulink url="mailto:murrayc murrayc com">Murray Cumming</ulink> (<ulink 
url="http://www.murrayc.com";>www.murrayc.com</ulink>)</para>
+            <para><link xlink:href="mailto:murrayc murrayc com">Murray Cumming</link> (<link 
xlink:href="http://www.murrayc.com";>www.murrayc.com</link>)</para>
           </listitem>
           <listitem>
-            <para><ulink url="mailto:daniel kitta googlemail com">Daniel Elstner</ulink></para>
+            <para><link xlink:href="mailto:daniel kitta googlemail com">Daniel Elstner</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="mailto:kjellahlstedt gmail com">Kjell Ahlstedt</ulink></para>
+            <para><link xlink:href="mailto:kjellahlstedt gmail com">Kjell Ahlstedt</link></para>
           </listitem>
         </itemizedlist>
-      </sect2>
-      <sect2>
-        <title>Other gtkmm developers</title>
+      </section>
+
+      <section>
+      <title>Other gtkmm developers</title>
         <itemizedlist>
           <listitem>
-            <para><ulink url="mailto:bryan reigndropsfall net">Bryan Forbes</ulink>  (<ulink 
url="http://www.reigndropsfall.net/";>www.reigndropsfall.net</ulink>)</para>
+            <para><link xlink:href="mailto:bryan reigndropsfall net">Bryan Forbes</link>  (<link 
xlink:href="http://www.reigndropsfall.net/";>www.reigndropsfall.net</link>)</para>
           </listitem>
           <listitem>
             <para>Karl Nelson</para>
           </listitem>
           <listitem>
-            <para><ulink url="mailto:cactus cactus rulez org">Gergő Érdi</ulink> (<ulink 
url="http://cactus.rulez.org";>cactus.rulez.org</ulink>)</para>
+            <para><link xlink:href="mailto:cactus cactus rulez org">Gergő Érdi</link> (<link 
xlink:href="http://cactus.rulez.org";>cactus.rulez.org</link>)</para>
           </listitem>
           <listitem>
-            <para><ulink url="mailto:andreas holzmann epost de">Andreas Holzmann</ulink></para>
+            <para><link xlink:href="mailto:andreas holzmann epost de">Andreas Holzmann</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="mailto:mhl schulze t-online de">Martin Schulze</ulink></para>
+            <para><link xlink:href="mailto:mhl schulze t-online de">Martin Schulze</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="mailto:madmaxer poczta fm">Jarek Dukat</ulink></para>
+            <para><link xlink:href="mailto:madmaxer poczta fm">Jarek Dukat</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="mailto:morten wtf dk">Morten Brix Pedersen</ulink></para>
+            <para><link xlink:href="mailto:morten wtf dk">Morten Brix Pedersen</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="mailto:jonathon jongsma gmail com">Jonathon Jongsma</ulink></para>
+            <para><link xlink:href="mailto:jonathon jongsma gmail com">Jonathon Jongsma</link></para>
           </listitem>
         </itemizedlist>
-      </sect2>
-      <sect2>
-        <title>Previous maintainers</title>
+      </section>
+
+      <section>
+      <title>Previous maintainers</title>
         <itemizedlist>
           <listitem>
-            <para><ulink url="mailto:glaurent telegraph-road org">Guillaume Laurent</ulink></para>
+            <para><link xlink:href="mailto:glaurent telegraph-road org">Guillaume Laurent</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="mailto:terop assari cc tut fi">Tero Pulkkinen</ulink></para>
+            <para><link xlink:href="mailto:terop assari cc tut fi">Tero Pulkkinen</link></para>
           </listitem>
         </itemizedlist>
-      </sect2>
-      <sect2>
-        <title/>
+      </section>
+
+      <section>
+      <title/>
         <para>There have been many patches, bug fixes and improvements from a lot
 of people. Thanks to them.
 </para>
-      </sect2>
-    </sect1>
+      </section>
+    </section>
   </article>
diff --git a/docs/C/documentation.xml b/docs/C/documentation.xml
index 26ce265..b6ec847 100644
--- a/docs/C/documentation.xml
+++ b/docs/C/documentation.xml
@@ -1,109 +1,111 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"; [
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book [
   <!ENTITY url_refdocs_base_glibmm_html "https://developer.gnome.org/glibmm/stable/";>
   <!ENTITY url_refdocs_base_gtkmm_html "https://developer.gnome.org/gtkmm/stable/";>
   <!ENTITY url_refdocs_base_book_html "https://developer.gnome.org/gtkmm-tutorial/stable/";>
-  <!ENTITY url_refdocs_base_pangomm_html "https://developer.gnome.org/pangomm/stable/";>
   <!ENTITY url_examples_base "https://gitlab.gnome.org/GNOME/gtkmm-documentation/tree/master/examples/book/";>
 ]>
 
-  <article id="documentation">
-    <sect1>
-      <title>Documentation Overview</title>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="documentation">
+    <title/>
 
-      <highlights>
+    <section>
+    <title>Documentation Overview</title>
+      <note>
         <para>This documentation is for the gtkmm-4.0 API, where nothing else is said.
           There is an older gtkmm API, called gtkmm-3.0, which can be installed in parallel.
           The gtkmm-3.0/gtkmm-4.0 names refer to the API/ABI series and not the release version.
           For instance, gtkmm 3.24.0 is a version of the gtkmm-3.0 API.</para>
         <para>There are even older API versions, such as gtkmm-2.4. Those versions
           are no longer supported.</para>
-      </highlights>
+      </note>
       <para>Dependencies of gtkmm-3.0 and gtkmm-4.0 are listed in a
-        <ulink url="https://mail.gnome.org/archives/gtkmm-list/2020-December/msg00013.html";>gtkmm-list 
post.</ulink></para>
+        <link xlink:href="https://mail.gnome.org/archives/gtkmm-list/2020-December/msg00013.html";>gtkmm-list 
post.</link></para>
 
-      <sect2>
-        <title>Getting Started with gtkmm</title>
+      <section>
+      <title>Getting Started with gtkmm</title>
         <para>You might start by reading the <emphasis role="bold">Programming with gtkmm</emphasis> online 
book.</para>
-        <para><ulink url="https://developer.gnome.org/gtkmm-tutorial/3.24/index.html";>Contents</ulink> of 
the whole online book, gtkmm-3.0.</para>
-        <para><ulink url="&url_refdocs_base_book_html;index.html">Contents</ulink> of the whole online book, 
gtkmm-4.0.</para>
+        <para><link xlink:href="https://developer.gnome.org/gtkmm-tutorial/3.24/index.html";>Contents</link> 
of the whole online book, gtkmm-3.0.</para>
+        <para><link xlink:href="&url_refdocs_base_book_html;index.html">Contents</link> of the whole online 
book, gtkmm-4.0.</para>
         <para>Selected chapters:<itemizedlist>
             <listitem>
-              <para><ulink 
url="&url_refdocs_base_book_html;chapter-installation.html">Installation</ulink></para>
+              <para><link 
xlink:href="&url_refdocs_base_book_html;chapter-installation.html">Installation</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="&url_refdocs_base_book_html;chapter-basics.html">Basics</ulink></para>
+              <para><link xlink:href="&url_refdocs_base_book_html;chapter-basics.html">Basics</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="&url_refdocs_base_book_html;chapter-signals.html">Signals</ulink></para>
+              <para><link xlink:href="&url_refdocs_base_book_html;chapter-signals.html">Signals</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="&url_refdocs_base_book_html;chapter-container-widgets.html">Container 
Widgets</ulink></para>
+              <para><link xlink:href="&url_refdocs_base_book_html;chapter-container-widgets.html">Container 
Widgets</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="&url_refdocs_base_book_html;chapter-treeview.html">TreeView</ulink></para>
+              <para><link 
xlink:href="&url_refdocs_base_book_html;chapter-treeview.html">TreeView</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="&url_refdocs_base_book_html;chapter-menus-and-toolbars.html">Menus and 
Toolbars</ulink></para>
+              <para><link xlink:href="&url_refdocs_base_book_html;chapter-menus-and-toolbars.html">Menus and 
Toolbars</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="&url_refdocs_base_book_html;chapter-memory.html">Memory 
Management</ulink></para>
+              <para><link xlink:href="&url_refdocs_base_book_html;chapter-memory.html">Memory 
Management</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="&url_refdocs_base_book_html;chapter-builder.html">Glade and 
Gtk::Builder</ulink></para>
+              <para><link xlink:href="&url_refdocs_base_book_html;chapter-builder.html">Glade and 
Gtk::Builder</link></para>
             </listitem>
           </itemizedlist></para>
-      </sect2>
-      <sect2>
-        <title>API Reference</title>
+      </section>
+
+      <section>
+      <title>API Reference</title>
         <informaltable>
           <tr>
-            <th>gtkmm (Gtk::)</th>
-            <th>glibmm (Glib::)</th>
-            <th>giomm (Gio::)</th>
+            <th rowspan="1" colspan="1">gtkmm (Gtk::)</th>
+            <th rowspan="1" colspan="1">glibmm (Glib::)</th>
+            <th rowspan="1" colspan="1">giomm (Gio::)</th>
           </tr>
           <tr>
-            <td>
+            <td rowspan="1" colspan="1">
               <itemizedlist>
                 <listitem>
                   <para><emphasis role="bold">
-                      <ulink url="&url_refdocs_base_gtkmm_html;hierarchy.html">Hierarchy</ulink>
+                      <link xlink:href="&url_refdocs_base_gtkmm_html;hierarchy.html">Hierarchy</link>
                     </emphasis></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_gtkmm_html;group__Widgets.html">Widgets</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_gtkmm_html;group__Widgets.html">Widgets</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink 
url="&url_refdocs_base_gtkmm_html;group__Containers.html">Containers</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_gtkmm_html;group__Containers.html">Containers</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink 
url="&url_refdocs_base_gtkmm_html;group__TreeView.html">TreeView</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_gtkmm_html;group__TreeView.html">TreeView</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink 
url="&url_refdocs_base_gtkmm_html;group__TextView.html">TextView</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_gtkmm_html;group__TextView.html">TextView</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_gtkmm_html;group__Dialogs.html">Dialogs</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_gtkmm_html;group__Dialogs.html">Dialogs</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink 
url="&url_refdocs_base_gtkmm_html;classGtk_1_1Application.html">Application</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_gtkmm_html;classGtk_1_1Application.html">Application</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_gtkmm_html;group__gtkmmEnums.html">enums and 
flags</ulink></para>
+                  <para><link xlink:href="&url_refdocs_base_gtkmm_html;group__gtkmmEnums.html">enums and 
flags</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_gtkmm_html;namespaceGtk.html">Gtk 
Namespace</ulink></para>
+                  <para><link xlink:href="&url_refdocs_base_gtkmm_html;namespaceGtk.html">Gtk 
Namespace</link></para>
                 </listitem>
               </itemizedlist>
             </td>
-            <td>
+            <td rowspan="1" colspan="1">
               <itemizedlist>
                 <listitem>
-                  <para><ulink 
url="&url_refdocs_base_glibmm_html;classGlib_1_1ustring.html">ustring</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_glibmm_html;classGlib_1_1ustring.html">ustring</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink 
url="&url_refdocs_base_glibmm_html;classGlib_1_1Error.html">Exceptions</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_glibmm_html;classGlib_1_1Error.html">Exceptions</link></para>
                 </listitem>
                 <listitem>
                   <!-- RefPtr does not have a URL that's suitable for an external reference.
@@ -111,84 +113,87 @@
                   <para>RefPtr&lt;&gt;</para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_glibmm_html;group__MainLoop.html">Main Event 
loop</ulink></para>
+                  <para><link xlink:href="&url_refdocs_base_glibmm_html;group__MainLoop.html">Main Event 
loop</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_glibmm_html;group__Spawn.html">Spawning 
Processes</ulink></para>
+                  <para><link xlink:href="&url_refdocs_base_glibmm_html;group__Spawn.html">Spawning 
Processes</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_glibmm_html;group__MiscUtils.html">Miscellaneous 
Utility Functions</ulink></para>
+                  <para><link xlink:href="&url_refdocs_base_glibmm_html;group__MiscUtils.html">Miscellaneous 
Utility Functions</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_glibmm_html;group__CharsetConv.html">Character set 
conversion</ulink></para>
+                  <para><link xlink:href="&url_refdocs_base_glibmm_html;group__CharsetConv.html">Character 
set conversion</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_glibmm_html;namespaceGlib.html">Glib 
Namespace</ulink></para>
+                  <para><link xlink:href="&url_refdocs_base_glibmm_html;namespaceGlib.html">Glib 
Namespace</link></para>
                 </listitem>
               </itemizedlist>
             </td>
-            <td>
+            <td rowspan="1" colspan="1">
               <itemizedlist>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_glibmm_html;classGio_1_1File.html">File</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_glibmm_html;classGio_1_1File.html">File</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_glibmm_html;group__Streams.html">Streams</ulink></para>
+                  <para><link 
xlink:href="&url_refdocs_base_glibmm_html;group__Streams.html">Streams</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="&url_refdocs_base_glibmm_html;namespaceGio.html">Gio 
Namespace</ulink></para>
+                  <para><link xlink:href="&url_refdocs_base_glibmm_html;namespaceGio.html">Gio 
Namespace</link></para>
                 </listitem>
               </itemizedlist>
             </td>
           </tr>
         </informaltable>
-      </sect2>
-      <sect2>
-        <title>Extra Modules</title>
+      </section>
+
+      <section>
+      <title>Extra Modules</title>
         <para>API reference documentation for other C++ modules, such as gdkmm, pangomm,
           gstreamermm, libgdamm, goocanvasmm, etc, is also available from the
-          <ulink url="https://developer-old.gnome.org/references#c++-bindings";>developer-old.gnome.org C++ 
Bindings</ulink> section.</para>
-      </sect2>
-      <sect2>
-        <title>Other Information</title>
+          <link xlink:href="https://developer-old.gnome.org/references#c++-bindings";>developer-old.gnome.org 
C++ Bindings</link> section.</para>
+      </section>
+
+      <section>
+      <title>Other Information</title>
         <informaltable>
           <tr>
-            <th>External Documentation</th>
-            <th>Unusual Platforms</th>
+            <th rowspan="1" colspan="1">External Documentation</th>
+            <th rowspan="1" colspan="1">Unusual Platforms</th>
           </tr>
           <tr>
-            <td>
+            <td rowspan="1" colspan="1">
               <itemizedlist>
                 <listitem>
-                  <para><ulink url="https://libsigcplusplus.github.io/libsigcplusplus/";>libsigc++ 
website</ulink></para>
+                  <para><link xlink:href="https://libsigcplusplus.github.io/libsigcplusplus/";>libsigc++ 
website</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="https://docs.gtk.org/gtk3/";>GTK3 reference</ulink></para>
+                  <para><link xlink:href="https://docs.gtk.org/gtk3/";>GTK3 reference</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="https://docs.gtk.org/gtk4/";>GTK4 reference</ulink></para>
+                  <para><link xlink:href="https://docs.gtk.org/gtk4/";>GTK4 reference</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink 
url="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html";>Standard C++ Library 
(STL)</ulink></para>
+                  <para><link 
xlink:href="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html";>Standard C++ Library 
(STL)</link></para>
                 </listitem>
               </itemizedlist>
             </td>
-            <td>
+            <td rowspan="1" colspan="1">
               <itemizedlist>
                 <listitem>
-                  <para><ulink url="https://gitlab.gnome.org/GNOME/gtkmm/blob/master/README.SUN";>Solaris, 
with Sun&apos;s Forte C++.</ulink></para>
+                  <para><link 
xlink:href="https://gitlab.gnome.org/GNOME/gtkmm/blob/master/README.SUN";>Solaris, with Sun's Forte 
C++.</link></para>
                 </listitem>
                 <listitem>
-                  <para><ulink url="https://gitlab.gnome.org/GNOME/gtkmm/blob/master/README.win32";>Windows, 
with mingw and cygwin</ulink></para>
+                  <para><link 
xlink:href="https://gitlab.gnome.org/GNOME/gtkmm/blob/master/README.win32";>Windows, with mingw and 
cygwin</link></para>
                 </listitem>
               </itemizedlist>
             </td>
           </tr>
         </informaltable>
-      </sect2>
-      <sect2>
-        <title>Examples</title>
-        <para>Sometimes you need to look at examples to figure out how something should work. Many examples 
are included in the gtkmm book, but you can also view them online: <ulink url="&url_examples_base;">gtkmm 
examples</ulink></para>
-      </sect2>
-    </sect1>
+      </section>
+
+      <section>
+      <title>Examples</title>
+        <para>Sometimes you need to look at examples to figure out how something should work. Many examples 
are included in the gtkmm book, but you can also view them online: <link 
xlink:href="&url_examples_base;">gtkmm examples</link></para>
+      </section>
+    </section>
   </article>
diff --git a/docs/C/download.xml b/docs/C/download.xml
index b454d0c..e5c9b52 100644
--- a/docs/C/download.xml
+++ b/docs/C/download.xml
@@ -1,83 +1,86 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="download">
+    <title/>
 
-  <article id="download">
-    <sect1>
-      <title>Downloading</title>
-      <highlights>
-        <para>You should use the <ulink url="#Binary">binary packages</ulink> provided for your
-operating system unless you wish to test the latest versions. However, <ulink url="#Source">source 
packages</ulink> are available as well.</para>
+    <section>
+    <title>Downloading</title>
+      <note>
+        <para>You should use the <link xlink:href="#Binary">binary packages</link> provided for your
+operating system unless you wish to test the latest versions. However, <link xlink:href="#Source">source 
packages</link> are available as well.</para>
         <para>This page currently mentions gtkmm 3 binary packages. We will update this page
           some time as binary packages for gtkmm 4 become available.</para>
-      </highlights>
+      </note>
 
-      <sect2>
-        <title><anchor id="Binary"/>Binary</title>
+      <section>
+      <title><anchor xml:id="Binary"/>Binary</title>
         <para>You might find a variety of 3rd party RPMs and debs on the internet, but only the ones listed 
here are approved by the gtkmm team. Please encourage your Linux distribution to provide official gtkmm 
packages.</para>
         <itemizedlist>
           <listitem>
-            <para><ulink url="https://www.debian.org/";>Debian</ulink> GNU/Linux: <command>apt-get install 
libgtkmm-3.0-dev</command>These <ulink url="https://packages.qa.debian.org/g/gtkmm3.0.html";>project 
pages</ulink> might give status.</para>
+            <para><link xlink:href="https://www.debian.org/";>Debian</link> GNU/Linux: <command>apt-get 
install libgtkmm-3.0-dev</command>These <link 
xlink:href="https://packages.qa.debian.org/g/gtkmm3.0.html";>project pages</link> might give status.</para>
           </listitem>
           <listitem>
-            <para><ulink url="https://fedoraproject.org/";>Fedora</ulink>/<ulink 
url="https://www.redhat.com";>RedHat</ulink> Linux: Use <command>yum install gtkmm30-docs</command> to get the 
runtime, development, and documentation packages.</para>
+            <para><link xlink:href="https://fedoraproject.org/";>Fedora</link>/<link 
xlink:href="https://www.redhat.com";>RedHat</link> Linux: Use <command>yum install gtkmm30-docs</command> to 
get the runtime, development, and documentation packages.</para>
           </listitem>
           <listitem>
-            <para><ulink url="https://www.gentoo.org";>Gentoo Linux</ulink>: Get dev-cpp/gtkmm.</para>
+            <para><link xlink:href="https://www.gentoo.org";>Gentoo Linux</link>: Get dev-cpp/gtkmm.</para>
           </listitem>
           <listitem>
-            <para><ulink url="https://www.novell.com/linux/";>SuSE Linux</ulink>: Use yast to install 
gtkmm3-devel.</para>
+            <para><link xlink:href="https://www.novell.com/linux/";>SuSE Linux</link>: Use yast to install 
gtkmm3-devel.</para>
           </listitem>
           <listitem>
-            <para><ulink url="https://www.ubuntu.com/";>Ubuntu</ulink> Linux: <command>apt-get install 
libgtkmm-3.0-dev</command></para>
+            <para><link xlink:href="https://www.ubuntu.com/";>Ubuntu</link> Linux: <command>apt-get install 
libgtkmm-3.0-dev</command></para>
           </listitem>
           <listitem>
-            <para>Windows: Here is an <ulink 
url="https://wiki.gnome.org/Projects/gtkmm/MSWindows";>installer</ulink>.</para>
+            <para>Windows: Here is an <link 
xlink:href="https://wiki.gnome.org/Projects/gtkmm/MSWindows";>installer</link>.</para>
           </listitem>
 <!-- TODO: Is there a gtkmm3 or gtkmm4 version of this?
           <listitem>
-            <para>MacOS X: There is a <ulink 
url="https://pdb.finkproject.org/pdb/package.php/gtkmm2.4-gtk-dev";>Fink package</ulink>.</para>
+            <para>MacOS X: There is a <link 
xlink:href="https://pdb.finkproject.org/pdb/package.php/gtkmm2.4-gtk-dev";>Fink package</link>.</para>
           </listitem>
 -->
           <listitem>
-            <para>SUN, IBM AIX, SGI IRIX, HP-UX, Tru64 (gcc or the platform compilers): <ulink 
url="http://thewrittenword.com";>The Written Word</ulink> offer binary gtkmm packages, with package 
management.</para>
+            <para>SUN, IBM AIX, SGI IRIX, HP-UX, Tru64 (gcc or the platform compilers): <link 
xlink:href="http://thewrittenword.com";>The Written Word</link> offer binary gtkmm packages, with package 
management.</para>
           </listitem>
         </itemizedlist>
         <para>Please tell us about others.</para>
-      </sect2>
-      <sect2>
-        <title><anchor id="Source"/>Source</title>
+      </section>
+
+      <section>
+      <title><anchor xml:id="Source"/>Source</title>
           <para>Even-numbered versions (such as 3.16.x) are stable. Odd-numbered versions (such as 3.15.x) 
are unstable development versions.</para>
           <itemizedlist>
             <listitem>
-              <para><ulink url="https://download.gnome.org/sources/glibmm/";>glibmm</ulink></para>
+              <para><link xlink:href="https://download.gnome.org/sources/glibmm/";>glibmm</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="https://download.gnome.org/sources/gtkmm/";>gtkmm</ulink></para>
+              <para><link xlink:href="https://download.gnome.org/sources/gtkmm/";>gtkmm</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="https://download.gnome.org/sources/goocanvasmm";>goocanvasmm</ulink></para>
+              <para><link 
xlink:href="https://download.gnome.org/sources/goocanvasmm";>goocanvasmm</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="https://download.gnome.org/sources/libgdamm/";>libgdamm</ulink></para>
+              <para><link xlink:href="https://download.gnome.org/sources/libgdamm/";>libgdamm</link></para>
             </listitem>
           </itemizedlist>
-      </sect2>
-      <sect2>
-        <title>Requirements</title>
+      </section>
+
+      <section>
+      <title>Requirements</title>
         <para><itemizedlist>
             <listitem>
-              <para><ulink url="https://www.gtk.org";>GTK</ulink></para>
+              <para><link xlink:href="https://www.gtk.org";>GTK</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="https://libsigcplusplus.github.io/libsigcplusplus/";>libsigc++</ulink></para>
+              <para><link 
xlink:href="https://libsigcplusplus.github.io/libsigcplusplus/";>libsigc++</link></para>
             </listitem>
           </itemizedlist></para>
-      </sect2>
-      <sect2>
-        <title>GTK</title>
-        <para>You can download GTK and GNOME source code from <ulink 
url="https://download.gnome.org/sources/";>download.gnome.org/sources/</ulink>.</para>
-      </sect2>
-    </sect1>
+      </section>
+
+      <section>
+      <title>GTK</title>
+        <para>You can download GTK and GNOME source code from <link 
xlink:href="https://download.gnome.org/sources/";>download.gnome.org/sources/</link>.</para>
+      </section>
+    </section>
   </article>
diff --git a/docs/C/extra.xml b/docs/C/extra.xml
index fef0540..052932e 100644
--- a/docs/C/extra.xml
+++ b/docs/C/extra.xml
@@ -1,300 +1,306 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="extra">
+    <title/>
 
-  <article id="extra">
-    <sect1>
-      <title>Additional Resources</title>
-      <sect2>
-        <title>Available widgets</title>
+    <section>
+    <title>Additional Resources</title>
+      <section>
+      <title>Available widgets</title>
         <para>In addition to the wrappers distributed with gtkmm and gnomemm, additional
 widgets and libraries are available from other sources.
     <itemizedlist>
             <listitem>
-              <para><ulink url="http://gtkglext.sourceforge.net";>GtkGlExtmm</ulink> OpenGL rendering for 
gtkmm</para>
+              <para><link xlink:href="http://gtkglext.sourceforge.net";>GtkGlExtmm</link> OpenGL rendering 
for gtkmm</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://ftp.gnome.org/pub/gnome/sources/gtkmozembedmm/";>gtkmozembedmm</ulink> 
Mozilla-based web browser widget</para>
+              <para><link 
xlink:href="http://ftp.gnome.org/pub/gnome/sources/gtkmozembedmm/";>gtkmozembedmm</link> Mozilla-based web 
browser widget</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://plotmm.sourceforge.net/";>Plotmm</ulink> plot widget for scientific 
applications</para>
+              <para><link xlink:href="http://plotmm.sourceforge.net/";>Plotmm</link> plot widget for 
scientific applications</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://home.gna.org/gtksourceviewmm/";>gtksourceviewmm</ulink> wrappers for 
GtkSourceView (Gtk::TextView with syntax highlighting)</para>
+              <para><link xlink:href="http://home.gna.org/gtksourceviewmm/";>gtksourceviewmm</link> wrappers 
for GtkSourceView (Gtk::TextView with syntax highlighting)</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://ftp.gnome.org/pub/GNOME/sources/gstreamermm/";>gstreamermm</ulink> 
wrappers for gstreamer (streaming media)</para>
+              <para><link 
xlink:href="http://ftp.gnome.org/pub/GNOME/sources/gstreamermm/";>gstreamermm</link> wrappers for gstreamer 
(streaming media)</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://vtemm.sourceforge.jp/";>VTEmm</ulink> terminal widget</para>
+              <para><link xlink:href="http://vtemm.sourceforge.jp/";>VTEmm</link> terminal widget</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gtkextramm.sourceforge.net/";>gtkextramm</ulink> wrappers for GtkExtra 
(plot, sheet, etc)</para>
+              <para><link xlink:href="http://gtkextramm.sourceforge.net/";>gtkextramm</link> wrappers for 
GtkExtra (plot, sheet, etc)</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.nongnu.org/om-synth/flowcanvas.html";>FlowCanvas</ulink> canvas 
for data flow systems</para>
+              <para><link xlink:href="http://www.nongnu.org/om-synth/flowcanvas.html";>FlowCanvas</link> 
canvas for data flow systems</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://carlowood.github.io/cwchessboard/";>cwchessboard</ulink> C++ chess 
board tool set for gtkmm</para>
+              <para><link xlink:href="http://carlowood.github.io/cwchessboard/";>cwchessboard</link> C++ 
chess board tool set for gtkmm</para>
             </listitem>
           </itemizedlist></para>
-      </sect2>
-      <sect2>
-        <title>gtkmm tools</title>
+      </section>
+
+      <section>
+      <title>gtkmm tools</title>
         <para><itemizedlist>
             <listitem>
-              <para><ulink url="https://glade.gnome.org/";>Glade</ulink> User Interface Designer for GTK, 
glade UI files can be used from a gtkmm program by using Gtk::Builder</para>
+              <para><link xlink:href="https://glade.gnome.org/";>Glade</link> User Interface Designer for 
GTK, glade UI files can be used from a gtkmm program by using Gtk::Builder</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://home.wtal.de/petig/Gtk/";>glademm</ulink> glade module for 
automatically generating gtkmm code (note: glademm is different than libglademm or Gtk::Builder)</para>
+              <para><link xlink:href="http://home.wtal.de/petig/Gtk/";>glademm</link> glade module for 
automatically generating gtkmm code (note: glademm is different than libglademm or Gtk::Builder)</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://bakery.sourceforge.net/";>Bakery</ulink> Document/View Model</para>
+              <para><link xlink:href="http://bakery.sourceforge.net/";>Bakery</link> Document/View 
Model</para>
             </listitem>
           </itemizedlist></para>
-      </sect2>
-      <sect2>
-        <title>Applications using gtkmm</title>
+      </section>
+
+      <section>
+      <title>Applications using gtkmm</title>
         <para>If all else fails, sometimes it is good to look at the source of
 some other projects using the same toolkit.</para>
-        <sect3>
-          <title>Using gtkmm:</title>
+
+        <section>
+        <title>Using gtkmm:</title>
           <itemizedlist>
             <listitem>
-              <para><ulink url="http://regexxer.sourceforge.net/";>Regexxer</ulink> multi-file search/replace 
with visual feedback</para>
+              <para><link xlink:href="http://regexxer.sourceforge.net/";>Regexxer</link> multi-file 
search/replace with visual feedback</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://subsubsub.sourceforge.net";>SubSubSub</ulink> creation of hierarchical 
text documents</para>
+              <para><link xlink:href="http://subsubsub.sourceforge.net";>SubSubSub</link> creation of 
hierarchical text documents</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://prefixsuffix.sourceforge.net/";>PrefixSuffix</ulink> renames batches 
of files</para>
+              <para><link xlink:href="http://prefixsuffix.sourceforge.net/";>PrefixSuffix</link> renames 
batches of files</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://towel.sourceforge.net";>Towel</ulink> audio player</para>
+              <para><link xlink:href="http://towel.sourceforge.net";>Towel</link> audio player</para>
             </listitem>
 <!-- Website appears to be gone
   <listitem><para><ulink url="http://www.coaster-burn.org/";>Coaster</ulink> CD burning</para></listitem>
   -->            <listitem>
-              <para><ulink url="http://www.glom.org/";>Glom</ulink> database environment</para>
+              <para><link xlink:href="http://www.glom.org/";>Glom</link> database environment</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://cactus.rulez.org/projects/guikachu/";>Guikachu</ulink> graphical 
resource editor for PalmOS  applications</para>
+              <para><link xlink:href="http://cactus.rulez.org/projects/guikachu/";>Guikachu</link> graphical 
resource editor for PalmOS  applications</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.inkscape.org/";>Inkscape</ulink> vector graphics drawing</para>
+              <para><link xlink:href="http://www.inkscape.org/";>Inkscape</link> vector graphics 
drawing</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gnomoradio.org/";>Gnomoradio</ulink> peer to peer sharing of freely 
licensed music</para>
+              <para><link xlink:href="http://gnomoradio.org/";>Gnomoradio</link> peer to peer sharing of 
freely licensed music</para>
             </listitem>
             <listitem>
-              <para><ulink url="https://packages.debian.org/sid/gip";>Gip</ulink> IP address calculator</para>
+              <para><link xlink:href="https://packages.debian.org/sid/gip";>Gip</link> IP address 
calculator</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.k-3d.org/";>K-3D</ulink> 3D modelling and animation</para>
+              <para><link xlink:href="http://www.k-3d.org/";>K-3D</link> 3D modelling and animation</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.fnxweb.com/hardware-monitor-applet";>Hardware Monitor</ulink> 
GNOME panel applet</para>
+              <para><link xlink:href="http://www.fnxweb.com/hardware-monitor-applet";>Hardware Monitor</link> 
GNOME panel applet</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.workrave.org/";>Workrave</ulink> assists in recovery and 
prevention of RSI</para>
+              <para><link xlink:href="http://www.workrave.org/";>Workrave</link> assists in recovery and 
prevention of RSI</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://timfx.sourcearchive.com/";>timfx</ulink> digital video effects plug-in 
for Kino</para>
+              <para><link xlink:href="http://timfx.sourcearchive.com/";>timfx</link> digital video effects 
plug-in for Kino</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gparted.sourceforge.net/";>GParted</ulink> disk partitioning 
tool</para>
+              <para><link xlink:href="http://gparted.sourceforge.net/";>GParted</link> disk partitioning 
tool</para>
             </listitem>
 <!-- website appears to be gone
   <listitem><para><ulink url="http://sysinfo.r8.org/";>Sysinfo</ulink> system monitor</para></listitem>
   -->            <listitem>
-              <para><ulink url="http://cdrdao.sourceforge.net/";>gcdmaster</ulink> cdrdao frontend</para>
+              <para><link xlink:href="http://cdrdao.sourceforge.net/";>gcdmaster</link> cdrdao frontend</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://planetearthworm.com/projects/wp_tray/";>Wallpaper Tray</ulink> GNOME 
panel applet</para>
+              <para><link xlink:href="http://planetearthworm.com/projects/wp_tray/";>Wallpaper Tray</link> 
GNOME panel applet</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.freespiders.org/projects/gmlview/";>MLView</ulink> XML 
Editor</para>
+              <para><link xlink:href="http://www.freespiders.org/projects/gmlview/";>MLView</link> XML 
Editor</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://sourceforge.net/projects/duty-roaster";>Duty Roaster</ulink> manages 
duty rotas</para>
+              <para><link xlink:href="http://sourceforge.net/projects/duty-roaster";>Duty Roaster</link> 
manages duty rotas</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gobby.0x539.de";>Gobby</ulink> collaborative text editor</para>
+              <para><link xlink:href="http://gobby.0x539.de";>Gobby</link> collaborative text editor</para>
             </listitem>
             <listitem>
-              <para><ulink url="https://code.google.com/p/pinot-search/";>Pinot</ulink> metasearch tool</para>
+              <para><link xlink:href="https://code.google.com/p/pinot-search/";>Pinot</link> metasearch 
tool</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://home.gna.org/colorscheme/";>Agave</ulink> color scheme generator</para>
+              <para><link xlink:href="http://home.gna.org/colorscheme/";>Agave</link> color scheme 
generator</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://amyedit.sourceforge.net/";>AmyEdit</ulink> LaTeX editor</para>
+              <para><link xlink:href="http://amyedit.sourceforge.net/";>AmyEdit</link> LaTeX editor</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://aeskulap.nongnu.org/";>Aeskulap</ulink> medical image viewer</para>
+              <para><link xlink:href="http://aeskulap.nongnu.org/";>Aeskulap</link> medical image 
viewer</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gspeakers.sourceforge.net/";>gspeakers</ulink> loudspeaker 
designer</para>
+              <para><link xlink:href="http://gspeakers.sourceforge.net/";>gspeakers</link> loudspeaker 
designer</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://free-doko.sourceforge.net/en/";>FreeDoko</ulink> card game</para>
+              <para><link xlink:href="http://free-doko.sourceforge.net/en/";>FreeDoko</link> card game</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.minisip.org/";>miniSIP</ulink> Internet telephone</para>
+              <para><link xlink:href="http://www.minisip.org/";>miniSIP</link> Internet telephone</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://goupil.tuxfamily.org/";>Goupil</ulink> membership management</para>
+              <para><link xlink:href="http://goupil.tuxfamily.org/";>Goupil</link> membership 
management</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.nongnu.org/om-synth/index.html";>Om</ulink> modular synthesizer 
and effects processor</para>
+              <para><link xlink:href="http://www.nongnu.org/om-synth/index.html";>Om</link> modular 
synthesizer and effects processor</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://projects.l3ib.org/nitrogen/";>Nitrogen</ulink> background browser and 
setter</para>
+              <para><link xlink:href="http://projects.l3ib.org/nitrogen/";>Nitrogen</link> background browser 
and setter</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://home.gna.org/nemiver/";>Nemiver</ulink> GUI for the GNU debugger 
gdb</para>
+              <para><link xlink:href="http://home.gna.org/nemiver/";>Nemiver</link> GUI for the GNU debugger 
gdb</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://beep-media-player.org/";>BMP</ulink> audio player</para>
+              <para><link xlink:href="http://beep-media-player.org/";>BMP</link> audio player</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://usbsink.sourceforge.net/";>USBSink</ulink> file synchronization over 
USB</para>
+              <para><link xlink:href="http://usbsink.sourceforge.net/";>USBSink</link> file synchronization 
over USB</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://home.gna.org/elfelli/";>Elfelli</ulink> electric flux line 
simulation</para>
+              <para><link xlink:href="http://home.gna.org/elfelli/";>Elfelli</link> electric flux line 
simulation</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://github.com/egroeper/referencer/";>Referencer</ulink> document 
organiser and bibliography manager</para>
+              <para><link xlink:href="http://github.com/egroeper/referencer/";>Referencer</link> document 
organiser and bibliography manager</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://granule.sourceforge.net/";>Granule</ulink> index cards</para>
+              <para><link xlink:href="http://granule.sourceforge.net/";>Granule</link> index cards</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://ardour.org/";>Ardour 2</ulink> multichannel hard disk recorder and 
digital audio workstation</para>
+              <para><link xlink:href="http://ardour.org/";>Ardour 2</link> multichannel hard disk recorder 
and digital audio workstation</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.stacken.kth.se/project/pptout/";>Passepartout</ulink> desktop 
publishing</para>
+              <para><link xlink:href="http://www.stacken.kth.se/project/pptout/";>Passepartout</link> desktop 
publishing</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gwavmerger.sourceforge.net";>gwavmerger</ulink> foreign language 
learning tool</para>
+              <para><link xlink:href="http://gwavmerger.sourceforge.net";>gwavmerger</link> foreign language 
learning tool</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://wavemixer.sourceforge.net/";>WaveMixer</ulink> sound editor</para>
+              <para><link xlink:href="http://wavemixer.sourceforge.net/";>WaveMixer</link> sound editor</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://lostirc.sourceforge.net/";>LostIRC</ulink> IRC client</para>
+              <para><link xlink:href="http://lostirc.sourceforge.net/";>LostIRC</link> IRC client</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://dev.mysql.com/downloads/workbench/";>MySQL Workbench</ulink> database 
GUI</para>
+              <para><link xlink:href="http://dev.mysql.com/downloads/workbench/";>MySQL Workbench</link> 
database GUI</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://paco.sourceforge.net/";>Paco</ulink> source code package 
organizer</para>
+              <para><link xlink:href="http://paco.sourceforge.net/";>Paco</link> source code package 
organizer</para>
             </listitem>
             <listitem>
-              <para><ulink url="https://www.gnome.org/";>GNOME System Monitor</ulink> system monitor</para>
+              <para><link xlink:href="https://www.gnome.org/";>GNOME System Monitor</link> system 
monitor</para>
             </listitem>
           </itemizedlist>
-        </sect3>
-        <sect3>
-          <title>Using gtkmm 2.0/2.2:</title>
+        </section>
+
+        <section>
+        <title>Using gtkmm 2.0/2.2:</title>
           <itemizedlist>
             <listitem>
-              <para><ulink url="http://heavymole.sourceforge.net/";>HeavyMole</ulink> file sharing 
client</para>
+              <para><link xlink:href="http://heavymole.sourceforge.net/";>HeavyMole</link> file sharing 
client</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gabber.sourceforge.net/";>Gabber 2</ulink> GNOME Jabber IM 
client</para>
+              <para><link xlink:href="http://gabber.sourceforge.net/";>Gabber 2</link> GNOME Jabber IM 
client</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gex.sourceforge.net/";>Gex</ulink> file manager</para>
+              <para><link xlink:href="http://gex.sourceforge.net/";>Gex</link> file manager</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.cvine.freeserve.co.uk/efax-gtk/";>Efax-gtk</ulink> GUI frontend 
for the efax fax program</para>
+              <para><link xlink:href="http://www.cvine.freeserve.co.uk/efax-gtk/";>Efax-gtk</link> GUI 
frontend for the efax fax program</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://visage.sourceforge.net";>Visage</ulink> organise and visualise 
information</para>
+              <para><link xlink:href="http://visage.sourceforge.net";>Visage</link> organise and visualise 
information</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.nongnu.org/ghosts/";>Ghosts GEDCOM Viewer</ulink> geneology 
database viewer</para>
+              <para><link xlink:href="http://www.nongnu.org/ghosts/";>Ghosts GEDCOM Viewer</link> geneology 
database viewer</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://liarliar.sourceforge.net/";>Liar Liar</ulink> voice stress analysis 
tool</para>
+              <para><link xlink:href="http://liarliar.sourceforge.net/";>Liar Liar</link> voice stress 
analysis tool</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://freecode.com/projects/cug";>CUG</ulink> 3D equation plotter</para>
+              <para><link xlink:href="http://freecode.com/projects/cug";>CUG</link> 3D equation plotter</para>
             </listitem>
           </itemizedlist>
-        </sect3>
-        <sect3>
-          <title>Using gtkmm 1.2:</title>
+        </section>
+
+        <section>
+        <title>Using gtkmm 1.2:</title>
           <itemizedlist>
             <listitem>
-              <para><ulink url="http://gensql.sourceforge.net/";>genSQL</ulink> generic SQL GUI</para>
+              <para><link xlink:href="http://gensql.sourceforge.net/";>genSQL</link> generic SQL GUI</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://cactus.rulez.org/projects/gnomoku/";>Gnomoku</ulink> Gomoku game for 
GNOME</para>
+              <para><link xlink:href="http://cactus.rulez.org/projects/gnomoku/";>Gnomoku</link> Gomoku game 
for GNOME</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.tucows.com/preview/25500/GNUvoice";>gnuvoice</ulink> GUI voicemail 
/ speakerphone / caller ID application</para>
+              <para><link xlink:href="http://www.tucows.com/preview/25500/GNUvoice";>gnuvoice</link> GUI 
voicemail / speakerphone / caller ID application</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gtkmail.sourceforge.net/";>gtkmail</ulink> MIME compliant GUI email 
client</para>
+              <para><link xlink:href="http://gtkmail.sourceforge.net/";>gtkmail</link> MIME compliant GUI 
email client</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://gvbox.sourceforge.net/";>Gvbox</ulink> graphical frontend to 
isdn4linux answering machine</para>
+              <para><link xlink:href="http://gvbox.sourceforge.net/";>Gvbox</link> graphical frontend to 
isdn4linux answering machine</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.medini.org/software/ped/ped.html";>Ped</ulink> path editor utility 
</para>
+              <para><link xlink:href="http://www.medini.org/software/ped/ped.html";>Ped</link> path editor 
utility </para>
             </listitem>
             <listitem>
-              <para><ulink url="http://picmonger.sourceforge.net/";>PicMonger</ulink> Usenet picture 
grabber</para>
+              <para><link xlink:href="http://picmonger.sourceforge.net/";>PicMonger</link> Usenet picture 
grabber</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://cactus.rulez.org/projects/radioactive/";>RadioActive</ulink> radio 
application for Video4Linux-compatible radio tuner cards</para>
+              <para><link xlink:href="http://cactus.rulez.org/projects/radioactive/";>RadioActive</link> 
radio application for Video4Linux-compatible radio tuner cards</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://softwerk.sourceforge.net/";>softwerk</ulink> software analogue MIDI 
sequencer</para>
+              <para><link xlink:href="http://softwerk.sourceforge.net/";>softwerk</link> software analogue 
MIDI sequencer</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://www.firedrake.org/terraform/";>terraform</ulink> terrain generator 
(very cool)</para>
+              <para><link xlink:href="http://www.firedrake.org/terraform/";>terraform</link> terrain 
generator (very cool)</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://ickle.sourceforge.net/";>ickle</ulink> ICQ client</para>
+              <para><link xlink:href="http://ickle.sourceforge.net/";>ickle</link> ICQ client</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://cap.sourceforge.net/";>Chained Audio Plugins</ulink></para>
+              <para><link xlink:href="http://cap.sourceforge.net/";>Chained Audio Plugins</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="http://zarb.org/~gc/html/grany.html";>Grany-3</ulink> cellular automaton 
simulator</para>
+              <para><link xlink:href="http://zarb.org/~gc/html/grany.html";>Grany-3</link> cellular automaton 
simulator</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://paloma.sourceforge.net/";>Paloma</ulink> music management system</para>
+              <para><link xlink:href="http://paloma.sourceforge.net/";>Paloma</link> music management 
system</para>
             </listitem>
             <listitem>
-              <para><ulink url="http://cellumat3d.sourceforge.net/";>Cellumat3D</ulink> 3D cellular automata 
simulator</para>
+              <para><link xlink:href="http://cellumat3d.sourceforge.net/";>Cellumat3D</link> 3D cellular 
automata simulator</para>
             </listitem>
           </itemizedlist>
-        </sect3>
-      </sect2>
-      <sect2>
-        <title>Links</title>
-        <sect3>
-          <title>GTK resources</title>
+        </section>
+      </section>
+
+      <section>
+      <title>Links</title>
+        <section>
+        <title>GTK resources</title>
           <itemizedlist>
             <listitem>
-              <para><ulink url="https://www.gtk.org/";>GTK homepage</ulink></para>
+              <para><link xlink:href="https://www.gtk.org/";>GTK homepage</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="https://www.gnome.org/";>GNOME homepage</ulink></para>
+              <para><link xlink:href="https://www.gnome.org/";>GNOME homepage</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="https://developer.gnome.org/";>GNOME development</ulink></para>
+              <para><link xlink:href="https://developer.gnome.org/";>GNOME development</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="https://www.gimp.org/";>Gimp homepage</ulink></para>
+              <para><link xlink:href="https://www.gimp.org/";>Gimp homepage</link></para>
             </listitem>
           </itemizedlist>
-        </sect3>
-      </sect2>
-    </sect1>
+        </section>
+      </section>
+    </section>
   </article>
diff --git a/docs/C/git.xml b/docs/C/git.xml
index 69fa0a6..46f8aa1 100644
--- a/docs/C/git.xml
+++ b/docs/C/git.xml
@@ -1,143 +1,146 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="git">
+    <title/>
 
-  <article id="git">
-    <sect1>
-      <title>Git</title>
-      <para>We use <ulink url="https://git-scm.com/";>Git</ulink> to maintain our source
-    code, in the <ulink url="https://www.gnome.org";>GNOME</ulink> Git repository.
-    Additional information about gitlab.gnome.org is available at <ulink 
url="https://wiki.gnome.org/Git";>wiki.gnome.org/Git</ulink>.</para>
-      <para>glibmm and gtkmm are in the <ulink url="https://gitlab.gnome.org/GNOME/glibmm/";>glibmm</ulink> 
and <ulink url="https://gitlab.gnome.org/GNOME/gtkmm/";>gtkmm</ulink> modules.
-    There is also a <ulink 
url="https://gitlab.gnome.org/GNOME/gtkmm-documentation/";>gtkmm-documentation</ulink> module which contains 
the gtkmm book and its examples. See below for instructions.</para>
+    <section>
+    <title>Git</title>
+      <para>We use <link xlink:href="https://git-scm.com/";>Git</link> to maintain our source
+    code, in the <link xlink:href="https://www.gnome.org";>GNOME</link> Git repository.
+    Additional information about gitlab.gnome.org is available at <link 
xlink:href="https://wiki.gnome.org/Git";>wiki.gnome.org/Git</link>.</para>
+      <para>glibmm and gtkmm are in the <link 
xlink:href="https://gitlab.gnome.org/GNOME/glibmm/";>glibmm</link> and <link 
xlink:href="https://gitlab.gnome.org/GNOME/gtkmm/";>gtkmm</link> modules.
+    There is also a <link 
xlink:href="https://gitlab.gnome.org/GNOME/gtkmm-documentation/";>gtkmm-documentation</link> module which 
contains the gtkmm book and its examples. See below for instructions.</para>
       <para>If you build with Autotools (autoconf, automake,etc.), you will need to run
         the autogen.sh script to generate the build files. We recommend
-         <ulink url="https://wiki.gnome.org/Projects/Jhbuild";>jhbuild</ulink>
-         or <ulink url="https://gitlab.gnome.org/GNOME/gnome-build-meta";>gnome-build-meta</ulink>
+         <link xlink:href="https://wiki.gnome.org/Projects/Jhbuild";>jhbuild</link>
+         or <link xlink:href="https://gitlab.gnome.org/GNOME/gnome-build-meta";>gnome-build-meta</link>
          for setting up a separate development prefix.</para>
-      <highlights>
+      <note>
         <para><emphasis role="bold">Anonymous Access</emphasis></para>
         <para>For those who do not have a GNOME login, anonymous checkouts are
         available.</para>
         <para>For instance, to check out the latest version of gtkmm: <command>git clone 
https://gitlab.gnome.org/GNOME/gtkmm.git</command></para>
-      </highlights>
-      <sect2>
-        <title>Modules and branches</title>
-        <para>We are synchronized with the GNOME release schedule, so we use <ulink 
url="https://wiki.gnome.org/MaintainersCorner#branches";>standard GNOME branch names</ulink>.</para>
-        <sect3>
-          <title>gtkmm and glibmm</title>
+      </note>
+
+      <section>
+      <title>Modules and branches</title>
+        <para>We are synchronized with the GNOME release schedule, so we use <link 
xlink:href="https://wiki.gnome.org/MaintainersCorner#branches";>standard GNOME branch names</link>.</para>
+
+        <section>
+        <title>gtkmm and glibmm</title>
           <para><informaltable>
               <tr>
-                <th>Component</th>
-                <th>Version</th>
-                <th>Git Module</th>
-                <th>Branch name</th>
+                <th rowspan="1" colspan="1">Component</th>
+                <th rowspan="1" colspan="1">Version</th>
+                <th rowspan="1" colspan="1">Git Module</th>
+                <th rowspan="1" colspan="1">Branch name</th>
               </tr>
               <tr>
-                <td>gtkmm-4.0</td>
-                <td>4.4</td>
-                <td>gtkmm</td>
-                <td>master</td>
+                <td rowspan="1" colspan="1">gtkmm-4.0</td>
+                <td rowspan="1" colspan="1">4.4</td>
+                <td rowspan="1" colspan="1">gtkmm</td>
+                <td rowspan="1" colspan="1">master</td>
               </tr>
               <tr>
-                <td>gtkmm-4.0</td>
-                <td>4.2</td>
-                <td>gtkmm</td>
-                <td>gtkmm-4-2</td>
+                <td rowspan="1" colspan="1">gtkmm-4.0</td>
+                <td rowspan="1" colspan="1">4.2</td>
+                <td rowspan="1" colspan="1">gtkmm</td>
+                <td rowspan="1" colspan="1">gtkmm-4-2</td>
               </tr>
               <tr>
-                <td>gtkmm-3.0</td>
-                <td>3.24</td>
-                <td>gtkmm</td>
-                <td>gtkmm-3-24</td>
+                <td rowspan="1" colspan="1">gtkmm-3.0</td>
+                <td rowspan="1" colspan="1">3.24</td>
+                <td rowspan="1" colspan="1">gtkmm</td>
+                <td rowspan="1" colspan="1">gtkmm-3-24</td>
               </tr>
               <tr>
-                <td>glibmm-2.68</td>
-                <td>2.70</td>
-                <td>glibmm</td>
-                <td>master</td>
+                <td rowspan="1" colspan="1">glibmm-2.68</td>
+                <td rowspan="1" colspan="1">2.70</td>
+                <td rowspan="1" colspan="1">glibmm</td>
+                <td rowspan="1" colspan="1">master</td>
               </tr>
               <tr>
-                <td>glibmm-2.68</td>
-                <td>2.68</td>
-                <td>glibmm</td>
-                <td>glibmm-2-68</td>
+                <td rowspan="1" colspan="1">glibmm-2.68</td>
+                <td rowspan="1" colspan="1">2.68</td>
+                <td rowspan="1" colspan="1">glibmm</td>
+                <td rowspan="1" colspan="1">glibmm-2-68</td>
               </tr>
               <tr>
-                <td>glibmm-2.4</td>
-                <td>2.66</td>
-                <td>glibmm</td>
-                <td>glibmm-2-66</td>
+                <td rowspan="1" colspan="1">glibmm-2.4</td>
+                <td rowspan="1" colspan="1">2.66</td>
+                <td rowspan="1" colspan="1">glibmm</td>
+                <td rowspan="1" colspan="1">glibmm-2-66</td>
               </tr>
             </informaltable></para>
-        </sect3>
-        <sect3>
-          <title>gnomemm</title>
+        </section>
+
+        <section><title>gnomemm</title>
           <para><informaltable>
               <tr>
-                <th>Component</th>
-                <th>API Version</th>
-                <th>Git Module</th>
-                <th>Branch name</th>
+                <th rowspan="1" colspan="1">Component</th>
+                <th rowspan="1" colspan="1">API Version</th>
+                <th rowspan="1" colspan="1">Git Module</th>
+                <th rowspan="1" colspan="1">Branch name</th>
               </tr>
               <tr>
-                <td>libglademm</td>
-                <td/>
-                <td>libglademm</td>
-                <td>master</td>
+                <td rowspan="1" colspan="1">libglademm</td>
+                <td rowspan="1" colspan="1"/>
+                <td rowspan="1" colspan="1">libglademm</td>
+                <td rowspan="1" colspan="1">master</td>
               </tr>
               <tr>
-                <td>gconfmm</td>
-                <td/>
-                <td>gconfmm</td>
-                <td>master</td>
+                <td rowspan="1" colspan="1">gconfmm</td>
+                <td rowspan="1" colspan="1"/>
+                <td rowspan="1" colspan="1">gconfmm</td>
+                <td rowspan="1" colspan="1">master</td>
               </tr>
               <tr>
-                <td>libgnomecanvasmm</td>
-                <td/>
-                <td>libgnomecanvasmm</td>
-                <td>master</td>
+                <td rowspan="1" colspan="1">libgnomecanvasmm</td>
+                <td rowspan="1" colspan="1"/>
+                <td rowspan="1" colspan="1">libgnomecanvasmm</td>
+                <td rowspan="1" colspan="1">master</td>
               </tr>
             </informaltable></para>
-        </sect3>
-        <sect3>
-          <title>*mm bindings for other GNOME-related APIs</title>
+        </section>
+
+        <section>
+        <title>*mm bindings for other GNOME-related APIs</title>
           <para>The following bindings are not necessarily on the same schedule as those
     listed above.</para>
           <para><informaltable>
               <tr>
-                <th>Component</th>
-                <th>Version</th>
-                <th>Git Module</th>
-                <th>Branch name</th>
+                <th rowspan="1" colspan="1">Component</th>
+                <th rowspan="1" colspan="1">Version</th>
+                <th rowspan="1" colspan="1">Git Module</th>
+                <th rowspan="1" colspan="1">Branch name</th>
               </tr>
               <tr>
-                <td>libgdamm</td>
-                <td/>
-                <td>libgdamm</td>
-                <td>master</td>
+                <td rowspan="1" colspan="1">libgdamm</td>
+                <td rowspan="1" colspan="1"/>
+                <td rowspan="1" colspan="1">libgdamm</td>
+                <td rowspan="1" colspan="1">master</td>
               </tr>
               <tr>
-                <td>libgnomedbmm</td>
-                <td/>
-                <td>libgnomedbmm</td>
-                <td>master</td>
+                <td rowspan="1" colspan="1">libgnomedbmm</td>
+                <td rowspan="1" colspan="1"/>
+                <td rowspan="1" colspan="1">libgnomedbmm</td>
+                <td rowspan="1" colspan="1">master</td>
               </tr>
               <tr>
-                <td>goocanvasmm</td>
-                <td/>
-                <td>goocanvasmm</td>
-                <td>master</td>
+                <td rowspan="1" colspan="1">goocanvasmm</td>
+                <td rowspan="1" colspan="1"/>
+                <td rowspan="1" colspan="1">goocanvasmm</td>
+                <td rowspan="1" colspan="1">master</td>
               </tr>
               <tr>
-                <td>libpanelappletmm</td>
-                <td/>
-                <td>libpanelappletmm</td>
-                <td>master</td>
+                <td rowspan="1" colspan="1">libpanelappletmm</td>
+                <td rowspan="1" colspan="1"/>
+                <td rowspan="1" colspan="1">libpanelappletmm</td>
+                <td rowspan="1" colspan="1">master</td>
               </tr>
             </informaltable></para>
-        </sect3>
-      </sect2>
-    </sect1>
+        </section>
+      </section>
+    </section>
   </article>
diff --git a/docs/C/index.docbook b/docs/C/index.docbook
index 6dd5fcb..6a3212c 100644
--- a/docs/C/index.docbook
+++ b/docs/C/index.docbook
@@ -1,134 +1,135 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"; [
-]>
+<?xml version="1.0" encoding="utf-8"?>
+<book xmlns="http://docbook.org/ns/docbook";
+      xmlns:xlink="http://www.w3.org/1999/xlink";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      version="5.0">
 
-<!-- The header menu, sidebar menu, and footer. -->
-<book xmlns:its="http://www.w3.org/2005/11/its";>
-  <bookinfo>
+  <info>
     <title>gtkmm</title>
     <subtitle>C++ Interfaces for GTK and GNOME</subtitle>
     <abstract>
-      <para id="banner"><itemizedlist>
+      <para xml:id="banner"><itemizedlist>
           <listitem>
-            <para><ulink url="index.html">Home</ulink></para>
+            <para><link xlink:href="index.html">Home</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="license.html">License</ulink></para>
+            <para><link xlink:href="license.html">License</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="download.html">Download</ulink></para>
+            <para><link xlink:href="download.html">Download</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="documentation.html">Documentation</ulink></para>
+            <para><link xlink:href="documentation.html">Documentation</link></para>
           </listitem>
           <listitem>
-            <para><ulink url="developers.html">Development</ulink></para>
+            <para><link xlink:href="developers.html">Development</link></para>
           </listitem>
         </itemizedlist></para>
-      <formalpara id="resource-menu">
+      <formalpara xml:id="resource-menu">
         <title>Other Resources</title>
         <para><itemizedlist>
             <listitem>
-              <para><ulink url="news.html">News</ulink></para>
+              <para><link xlink:href="news.html">News</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="https://wiki.gnome.org/Projects/gtkmm/FAQ";>FAQ</ulink></para>
+              <para><link xlink:href="https://wiki.gnome.org/Projects/gtkmm/FAQ";>FAQ</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="https://wiki.gnome.org/Projects/gtkmm";>Wiki</ulink></para>
+              <para><link xlink:href="https://wiki.gnome.org/Projects/gtkmm";>Wiki</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="mailinglist.html">Mailing Lists</ulink></para>
+              <para><link xlink:href="mailinglist.html">Mailing Lists</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="git.html">Git</ulink></para>
+              <para><link xlink:href="git.html">Git</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="bugs.html">Bugs</ulink></para>
+              <para><link xlink:href="bugs.html">Bugs</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="books.html">Books</ulink></para>
+              <para><link xlink:href="books.html">Books</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="commercial_support.html">Commercial Support</ulink></para>
+              <para><link xlink:href="commercial_support.html">Commercial Support</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="extra.html">Additional Resources</ulink></para>
+              <para><link xlink:href="extra.html">Additional Resources</link></para>
             </listitem>
           </itemizedlist></para>
       </formalpara>
-      <formalpara id="language-menu">
+      <formalpara xml:id="language-menu">
         <title>Language</title>
         <para><itemizedlist>
             <listitem>
-              <para><ulink url="../pt_BR/index.html">Brazilian Portuguese</ulink></para>
+              <para><link xlink:href="../pt_BR/index.html">Brazilian Portuguese</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../cs/index.html">Czech</ulink></para>
+              <para><link xlink:href="../cs/index.html">Czech</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../de/index.html">Deutsch</ulink></para>
+              <para><link xlink:href="../de/index.html">Deutsch</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../en/index.html">English</ulink></para>
+              <para><link xlink:href="../en/index.html">English</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../es/index.html">Español</ulink></para>
+              <para><link xlink:href="../es/index.html">Español</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../fr/index.html">French</ulink></para>
+              <para><link xlink:href="../fr/index.html">French</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../el/index.html">Greek</ulink></para>
+              <para><link xlink:href="../el/index.html">Greek</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../hu/index.html">Hungarian</ulink></para>
+              <para><link xlink:href="../hu/index.html">Hungarian</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../ko/index.html">Korean</ulink></para>
+              <para><link xlink:href="../ko/index.html">Korean</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../sl/index.html">Slovenian</ulink></para>
+              <para><link xlink:href="../sl/index.html">Slovenian</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../sv/index.html">Swedish</ulink></para>
+              <para><link xlink:href="../sv/index.html">Swedish</link></para>
             </listitem>
             <listitem>
-              <para><ulink url="../zh_CN/index.html">中文</ulink></para>
+              <para><link xlink:href="../zh_CN/index.html">中文</link></para>
             </listitem>
           </itemizedlist></para>
       </formalpara>
-      <para id="sidebar-credits"><informalfigure>
+      <para xml:id="sidebar-credits">
+        <informalfigure xlink:href="https://www.gtk.org";>
           <mediaobject>
             <imageobject>
+              <!-- Concerning its:translate="no", see https://bugzilla.gnome.org/show_bug.cgi?id=748470 -->
               <imagedata its:translate="no" fileref="../images/gtk-logo.png"/>
             </imageobject>
           </mediaobject>
-          <ulink url="https://www.gtk.org"/>
-        </informalfigure><informalfigure>
+        </informalfigure>
+        <informalfigure xlink:href="https://www.gnome.org";>
           <mediaobject>
             <imageobject>
               <imagedata its:translate="no" fileref="../images/GNOME-logo.png"/>
             </imageobject>
           </mediaobject>
-          <ulink url="https://www.gnome.org"/>
-        </informalfigure></para>
-      <para id="footer"><ulink url="mailto:gtkmm-list gnome org">Contact Us</ulink></para>
+        </informalfigure>
+      </para>
+      <para xml:id="footer"><link xlink:href="mailto:gtkmm-list gnome org">Contact Us</link></para>
     </abstract>
-  </bookinfo>
+  </info>
 
-  <xi:include href="main.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="books.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="bugs.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="commercial_support.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="developers.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="documentation.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="download.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="extra.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="git.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="license.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="mailinglist.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-  <xi:include href="news.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="main.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="books.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="bugs.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="commercial_support.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="developers.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="documentation.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="download.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="extra.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="git.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="license.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="mailinglist.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"; href="news.xml"/>
 
 </book>
diff --git a/docs/C/license.xml b/docs/C/license.xml
index b8395c9..1f07267 100644
--- a/docs/C/license.xml
+++ b/docs/C/license.xml
@@ -1,21 +1,21 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="license">
+    <title/>
 
-<article id="license">
-    <sect1>
-      <title>License</title>
-      <para>gtkmm is licensed under the <ulink url="https://www.gnu.org";>GNU</ulink> Lesser General Public 
License
-(<ulink url="https://www.gnu.org/licenses/lgpl.html#TOC1";>LGPL</ulink>) for all platforms.  Our intent in 
licensing it in this way is to
+    <section>
+    <title>License</title>
+      <para>gtkmm is licensed under the <link xlink:href="https://www.gnu.org";>GNU</link> Lesser General 
Public License
+(<link xlink:href="https://www.gnu.org/licenses/lgpl.html#TOC1";>LGPL</link>) for all platforms.  Our intent 
in licensing it in this way is to
 provide it for use through shared libraries in all projects both
 open and proprietary.  Other GNU projects may of course integrate
 and link in a static manner.  The full body of the license is
 provided for your inspection.</para>
       <para>This is the only license which grants you use of the software, so
 if you do not agree to its terms, you may not use this software.</para>
-      <highlights>
+      <note>
         <para>Note that this license <emphasis role="bold">does not require you to release the source code 
of your own applications or libraries</emphasis> and <emphasis role="bold">does not require you to pay any 
fees.</emphasis></para>
-      </highlights>
-    </sect1>
+      </note>
+    </section>
 </article>
diff --git a/docs/C/mailinglist.xml b/docs/C/mailinglist.xml
index fde1b72..247a026 100644
--- a/docs/C/mailinglist.xml
+++ b/docs/C/mailinglist.xml
@@ -1,48 +1,51 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="mailinglist">
+    <title/>
 
- <article id="mailinglist">
-    <sect1>
-      <title>Mailing List</title>
-      <sect2>
-        <title>Where is the gtkmm mailing list?</title>
+    <section>
+    <title>Mailing List</title>
+      <section>
+      <title>Where is the gtkmm mailing list?</title>
         <para><itemizedlist>
             <listitem>
-              <para><emphasis role="bold">gtkmm mailing list</emphasis>: <ulink url="mailto:gtkmm-list gnome 
org">gtkmm-list gnome org</ulink>. To subscribe, go to the <ulink 
url="https://mail.gnome.org/mailman/listinfo/gtkmm-list";>subscribe page</ulink>.</para>
+              <para><emphasis role="bold">gtkmm mailing list</emphasis>: <link xlink:href="mailto:gtkmm-list 
gnome org">gtkmm-list gnome org</link>. To subscribe, go to the <link 
xlink:href="https://mail.gnome.org/mailman/listinfo/gtkmm-list";>subscribe page</link>.</para>
             </listitem>
             <listitem>
-              <para>For general GTK discussion, please use the GNOME <ulink 
url="https://discourse.gnome.org";>Discourse</ulink>
-               instance, under the <ulink 
url="https://discourse.gnome.org/c/platform/core";>Platform/Core</ulink> category.</para>
+              <para>For general GTK discussion, please use the GNOME <link 
xlink:href="https://discourse.gnome.org";>Discourse</link>
+               instance, under the <link 
xlink:href="https://discourse.gnome.org/c/platform/core";>Platform/Core</link> category.</para>
             </listitem>
           </itemizedlist></para>
-      </sect2>
-      <sect2>
-        <title>What subject material is appropriate for the list?</title>
+      </section>
+
+      <section>
+      <title>What subject material is appropriate for the list?</title>
         <para>The mailing lists are used for discussion of development,
     suggestions, and improvements of the C++ wrappers themselves. There is
     also discussion of the use of the wrapper. Questions about the
     underlying GTK widget set are more likely to be answered quickly
     through the Discourse platform. Bugs are better reported and discussed in
     GitLab issues and merge requests.</para>
-      </sect2>
-      <sect2>
-        <title>List Archives</title>
+      </section>
+
+      <section>
+      <title>List Archives</title>
         <para>The archive of messages can be found at:</para>
         <para><itemizedlist>
             <listitem>
-              <para>gtkmm-list <ulink 
url="https://mail.gnome.org/archives/gtkmm-list/";>archive</ulink>.</para>
+              <para>gtkmm-list <link 
xlink:href="https://mail.gnome.org/archives/gtkmm-list/";>archive</link>.</para>
             </listitem>
           </itemizedlist></para>
-        <para><ulink url="https://marc.info/?l=gtkmm";>MARC</ulink> archives messages even from before 2002, 
and has a more reliable search engine.</para>
-      </sect2>
-      <sect2>
-        <title>IRC channel</title>
+        <para><link xlink:href="https://marc.info/?l=gtkmm";>MARC</link> archives messages even from before 
2002, and has a more reliable search engine.</para>
+      </section>
+
+      <section>
+      <title>IRC channel</title>
         <para>We also discuss development in the <emphasis role="bold">#c++</emphasis> channel on
     irc.gnome.org, but questions are more likely to be answered properly on
     the mailing list. Plus, the mailing list is archived, so others can
     benefit from the answers.</para>
-      </sect2>
-    </sect1>
+      </section>
+    </section>
  </article>
diff --git a/docs/C/main.xml b/docs/C/main.xml
index 3fe31bf..b142c2d 100644
--- a/docs/C/main.xml
+++ b/docs/C/main.xml
@@ -1,32 +1,35 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"; [
-  <!ENTITY gtkmm "<application>gtkmm</application>">
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book [
+  <!ENTITY gtkmm "<application xmlns='http://docbook.org/ns/docbook'>gtkmm</application>">
 ]>
 
-  <article id="index">
-    <highlights>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="index">
+    <title/>
+      <note>
       <para>
    &gtkmm; is the official C++ interface for the popular GUI library
-   <ulink url="https://www.gtk.org/";>GTK</ulink>. Highlights include
+   <link xlink:href="https://www.gtk.org/";>GTK</link>. Highlights include
    typesafe callbacks, and a comprehensive set of widgets that are
    easily extensible via inheritance. You can create user interfaces
-   either in code or with the <ulink url="https://glade.gnome.org/";>Glade User Interface designer</ulink>, 
using Gtk::Builder. There&apos;s
-   <ulink url="documentation.html">extensive documentation</ulink>,
+   either in code or with the <link xlink:href="https://glade.gnome.org/";>Glade User Interface 
designer</link>, using Gtk::Builder. There's
+   <link xlink:href="documentation.html">extensive documentation</link>,
    including API reference and a tutorial.
   </para>
       <para>
    &gtkmm; is free software distributed under the GNU Library General
-    Public License (<ulink url="license.html">LGPL</ulink>).
+    Public License (<link xlink:href="license.html">LGPL</link>).
   </para>
       <para>
-   &gtkmm; follows the official <ulink url="https://www.gnome.org/start/unstable/";> GNOME Platform Bindings 
release schedule</ulink>. This guarantees
+   &gtkmm; follows the official <link xlink:href="https://www.gnome.org/start/unstable/";> GNOME Platform 
Bindings release schedule</link>. This guarantees
    API/ABI-stability and new releases on a predictable schedule,
    delivering C++ API for the underlying GTK and GNOME APIs as soon as possible.
   </para>
-    </highlights>
-    <sect1>
-      <title>Features</title>
+    </note>
+
+    <section>
+    <title>Features</title>
       <para>
   <itemizedlist>
           <listitem>
@@ -75,36 +78,38 @@
           </listitem>
         </itemizedlist>
   </para>
-    </sect1>
-    <sect1>
-      <title>Other gtkmm-related libraries</title>
-      <sect2>
-        <title>gnomemm</title>
+    </section>
+
+    <section>
+    <title>Other gtkmm-related libraries</title>
+      <section>
+      <title>gnomemm</title>
         <para>
    gtkmm is a GUI toolkit and nothing more, and it strives to be the
    best C++ GUI toolkit. That mandate does not cover generic C++ data
    structures, an XML parser, or database access. Even our signal/slots
-   system is part of a separate (<ulink 
url="https://libsigcplusplus.github.io/libsigcplusplus/";>libsigc++</ulink>) library.
+   system is part of a separate (<link 
xlink:href="https://libsigcplusplus.github.io/libsigcplusplus/";>libsigc++</link>) library.
    However, gtkmm is designed to work well with all other C++ libraries.
    </para>
         <para>
    The gnomemm libraries cover some of these other tasks, but they are
    optional.
    </para>
-      </sect2>
-      <sect2>
-        <title>libsigc++</title>
+      </section>
+
+      <section>
+      <title>libsigc++</title>
         <para>
-    Also, be sure to check out our companion libraries, glibmm (UTF8 strings, threading, etc) and <ulink 
url="https://libsigcplusplus.github.io/libsigcplusplus/";>libsigc++</ulink> (signal/slots).
+    Also, be sure to check out our companion libraries, glibmm (UTF8 strings, threading, etc) and <link 
xlink:href="https://libsigcplusplus.github.io/libsigcplusplus/";>libsigc++</link> (signal/slots).
    </para>
-      </sect2>
-      <sect2>
-        <title>Others</title>
+      </section>
+
+      <section>
+      <title>Others</title>
         <para>
-    Be sure to check out <ulink url="http://bakery.sourceforge.net/";>Bakery</ulink>,
+    Be sure to check out <link xlink:href="http://bakery.sourceforge.net/";>Bakery</link>,
     a framework for constructing gtkmm/gnomemm applications.  It allows use of the Document/View 
architecture.
    </para>
-      </sect2>
-    </sect1>
+      </section>
+    </section>
   </article>
-
diff --git a/docs/C/news.xml b/docs/C/news.xml
index 04f8651..fef16b1 100644
--- a/docs/C/news.xml
+++ b/docs/C/news.xml
@@ -1,37 +1,38 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd";
->
+<?xml version="1.0" encoding="utf-8"?>
+<article xmlns="http://docbook.org/ns/docbook";
+         xmlns:xlink="http://www.w3.org/1999/xlink";
+         version="5.0" xml:id="news">
 
-<article id="news">
-    <sect1>
-      <title>News</title>
+    <title/>
+
+    <section>
+    <title>News</title>
       <para>This list will not be updated each time a new release is made.
         The listed versions are the latest ones at the time of writing, but
         there may be newer releases when you read this text. See
-        <ulink url="https://download.gnome.org/sources/";>download.gnome.org/sources/</ulink>
-        and <ulink 
url="https://www.cairographics.org/releases/";>www.cairographics.org/releases/</ulink>.</para>
+        <link xlink:href="https://download.gnome.org/sources/";>download.gnome.org/sources/</link>
+        and <link 
xlink:href="https://www.cairographics.org/releases/";>www.cairographics.org/releases/</link>.</para>
       <para><itemizedlist>
           <listitem>
             <para>
-  September 9, 2021: <ulink url="https://download.gnome.org/sources/gtkmm/4.4/";>gtkmm 4.4.0</ulink>
+  September 9, 2021: <link xlink:href="https://download.gnome.org/sources/gtkmm/4.4/";>gtkmm 4.4.0</link>
   </para>
           </listitem>
           <listitem>
             <para>
-  May 21, 2021: <ulink url="https://download.gnome.org/sources/gtkmm/3.24/";>gtkmm 3.24.5</ulink>
+  May 21, 2021: <link xlink:href="https://download.gnome.org/sources/gtkmm/3.24/";>gtkmm 3.24.5</link>
   </para>
           </listitem>
           <listitem>
             <para>
-  October 6, 2021: <ulink url="https://download.gnome.org/sources/glibmm/2.70/";>glibmm 2.70.0</ulink>
+  October 6, 2021: <link xlink:href="https://download.gnome.org/sources/glibmm/2.70/";>glibmm 2.70.0</link>
   </para>
           </listitem>
           <listitem>
             <para>
-  October 6, 2021: <ulink url="https://download.gnome.org/sources/glibmm/2.66/";>glibmm 2.66.2</ulink>
+  October 6, 2021: <link xlink:href="https://download.gnome.org/sources/glibmm/2.66/";>glibmm 2.66.2</link>
   </para>
           </listitem>
         </itemizedlist></para>
-    </sect1>
+    </section>
   </article>
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 63ab112..be69c55 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -55,7 +55,9 @@ dist_noinst_DATA =            \
        C/index.docbook \
        $(tutorial_po_files)    \
        $(tutorial_xml_files)   \
-       $(tutorial_html_files)
+       $(tutorial_html_files) \
+       param.rng \
+       param.xsl
 
 dist_tutorial_figures_DATA = $(addprefix C/,$(HELP_MEDIA))
 
@@ -81,7 +83,7 @@ html/en/index.html: $(addprefix $(srcdir)/C/,$(HELP_FILES))
        $(AM_V_GEN)$(XSLTPROC) -o html/en/ --xinclude $(srcdir)/param.xsl $(srcdir)/C/$(help_index_file)
        
 validate: $(addprefix $(srcdir)/C/,$(HELP_FILES))
-       $(XMLLINT) --xinclude --postvalid --noout $<
+       $(XMLLINT) --xinclude --noout --relaxng $(srcdir)/param.rng $<
 
 
 .PHONY: install-tutorial uninstall-tutorial
diff --git a/docs/can_use_xmllint.xml b/docs/can_use_xmllint.xml
new file mode 100644
index 0000000..8ff1b0d
--- /dev/null
+++ b/docs/can_use_xmllint.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<book xmlns="http://docbook.org/ns/docbook";
+      version="5.0" xml:id="index" xml:lang="en">
+
+<title>xmllint test</title>
+
+<chapter xml:id="chapter-introduction">
+<title>Introduction</title>
+  <para>
+  This is a short DocBook V5.0 document. It can be used for testing if the installed
+  version of xmllint or a similar program can validate a DocBook V5.0 document.
+  </para>
+</chapter>
+
+</book>
diff --git a/docs/meson.build b/docs/meson.build
index 70cce04..9383ee5 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -9,6 +9,30 @@ xsltproc = find_program('xsltproc', required: true)
 xmllint = find_program('xmllint', required: false)
 can_parse_and_validate = xmllint.found()
 validate = get_option('validation') ? 'true' : 'false'
+allow_network_access = get_option('allow-network-access') ? 'true' : 'false'
+
+relax_ng_schema_file = meson.current_source_dir() / 'param.rng'
+stylesheet_file = meson.current_source_dir() / 'param.xsl'
+
+# Check if xmllint can be used.
+if xmllint.found()
+  can_parse_and_validate = run_command(
+    python3, website_custom_cmd, 'xmllint',
+    validate,
+    allow_network_access,
+    relax_ng_schema_file,
+    meson.current_source_dir() / 'can_use_xmllint.xml',
+    meson.current_build_dir() / 'can_use_xmllint.stamp',
+  ).returncode() == 0
+  if not can_parse_and_validate
+    # The DocBook V5.0 package is called docbook5-xml in Ubuntu,
+    # docbook5-schemas in Fedora. It may have other names in other distros.
+    warning('Can\'t validate XML file.\n' +
+      'xmllint does not support Relax NG schemas and DocBook V5.0.\n' +
+      'DocBook V5.0 support may require docbook5-xml, docbook5-schemas or a similar package.'
+    )
+  endif
+endif
 
 can_build_translations = find_program('msgfmt', required: false).found() and \
                          find_program('itstool', required: false).found()
@@ -51,20 +75,20 @@ endif
 if can_parse_and_validate
   # Parse and possibly validate the C locale's version of the DocBook.
   custom_target('C-xmllint',
-    input: xml_C_files,
+    input: [relax_ng_schema_file] + xml_C_files,
     output: 'C_xmllint.stamp',
     command: [
       python3, website_custom_cmd, 'xmllint',
       validate,
+      allow_network_access,
       '@INPUT0@',
+      '@INPUT1@',
       '@OUTPUT@'
     ],
     build_by_default: true,
   )
 endif
 
-stylesheet_file = meson.current_source_dir() / 'param.xsl'
-
 publishing_targets = []
 
 # Create an html version of the C locale's version of the DocBook.
@@ -73,6 +97,7 @@ publishing_targets += custom_target('en_html_index.html',
   output: 'en_html.stamp',
   command: [
     python3, website_custom_cmd, 'html',
+    allow_network_access,
     '@INPUT0@',
     '@INPUT1@',
     meson.current_build_dir() / 'html' / 'en',
@@ -91,7 +116,7 @@ install_data(xml_C_files, install_dir: install_datadir / 'help' / 'C' / meson.pr
 
 foreach language : languages
   # Create translated XML files.
-  tanslated_xml_target = custom_target(language + '_xml_index.docbook',
+  translated_xml_target = custom_target(language + '_xml_index.docbook',
     input: [language / language + '.po'] + xml_C_files,
     output: language + '_xml.stamp',
     command: [
@@ -108,10 +133,11 @@ foreach language : languages
   
   # Create an html version of the translated version of the DocBook.
   publishing_targets += custom_target(language + '_html_index.html',
-    input: [stylesheet_file, tanslated_xml_target],
+    input: [stylesheet_file, translated_xml_target],
     output: language + '_html.stamp',
     command: [
       python3, website_custom_cmd, 'html',
+      allow_network_access,
       '@INPUT0@',
       meson.current_build_dir() / language / xml_files[0],
       meson.current_build_dir() / 'html' / language,
diff --git a/docs/param.rng b/docs/param.rng
new file mode 100644
index 0000000..4f85da8
--- /dev/null
+++ b/docs/param.rng
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar xmlns:db="http://docbook.org/ns/docbook";
+         ns="http://docbook.org/ns/docbook";
+         xmlns="http://relaxng.org/ns/structure/1.0";
+         xmlns:its="http://www.w3.org/2005/11/its";>
+
+<include href="http://docbook.org/xml/5.0/rng/docbook.rng"/>
+
+<!-- Allow an its:translate="yes" or its:translate="no" attribute on <imagedata> elements. -->
+  <define name="db.imagedata.attlist" combine="interleave">
+    <interleave>
+      <optional>
+        <attribute name="its:translate">
+          <choice>
+            <value>yes</value>
+            <value>no</value>
+          </choice>
+        </attribute>
+      </optional>
+    </interleave>
+  </define>
+</grammar>
diff --git a/docs/param.xsl b/docs/param.xsl
index 732cfcc..337de33 100644
--- a/docs/param.xsl
+++ b/docs/param.xsl
@@ -1,9 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
-xmlns="http://www.w3.org/1999/xhtml";
-version="1.0">
-<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"; />
-
+<xsl:stylesheet
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+  xmlns:d="http://docbook.org/ns/docbook";
+  xmlns:xlink="http://www.w3.org/1999/xlink";
+  xmlns="http://www.w3.org/1999/xhtml";
+  exclude-result-prefixes="d xlink"
+  version="1.0">
+
+<!-- See "Customizing DocBook 5 XSL" at http://www.sagehill.net/docbookxsl/CustomDb5Xsl.html -->
+<xsl:import href="http://docbook.sourceforge.net/release/xsl-ns/current/xhtml/chunk.xsl"; />
+
+<!-- For a list of available parameters, see http://docbook.sourceforge.net/release/xsl/current/doc/html/ -->
 <xsl:param name="html.stylesheet" select="'../style/style.css'" />
 <xsl:param name="chunker.output.encoding" select="'utf-8'" />
 <xsl:param name="chunker.output.indent" select="'yes'" />
@@ -44,8 +51,8 @@ book nop
 
       <div id="content-wrapper">
         <div id="sidebar">
-          <xsl:apply-templates select="//bookinfo/*/formalpara" />
-          <xsl:apply-templates select="//bookinfo/*/para[@id='sidebar-credits']" />
+          <xsl:apply-templates select="//d:book/d:info/*/d:formalpara" />
+          <xsl:apply-templates select="//d:book/d:info/*/d:para[@xml:id='sidebar-credits']" />
         </div>
         <div id="content">
           <xsl:copy-of select="$content"/>
@@ -76,9 +83,9 @@ book nop
        </xsl:if>
        <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
        <title>
-               <xsl:value-of select="sect1/title"/>
-               - <xsl:value-of select="//bookinfo/title"/>
-               - <xsl:value-of select="//bookinfo/subtitle"/>
+               <xsl:value-of select="d:section/d:title"/>
+               - <xsl:value-of select="//d:book/d:info/d:title"/>
+               - <xsl:value-of select="//d:book/d:info/d:subtitle"/>
        </title>
 
        <xsl:call-template name="user.head.content"/>
@@ -86,13 +93,13 @@ book nop
 </xsl:template>
 
 <xsl:template name="user.header.navigation">
-       <xsl:apply-templates select="//bookinfo" />
+       <xsl:apply-templates select="//d:book/d:info" />
 </xsl:template>
 
 <!-- <xsl:template name="user.header.content"></xsl:template> -->
 
 <xsl:template name="footer.navigation">
-       <xsl:apply-templates select="//bookinfo/*/para[@id='footer']" />
+       <xsl:apply-templates select="//d:book/d:info/*/d:para[@xml:id='footer']" />
 </xsl:template>
 
 <xsl:template name="article.titlepage"></xsl:template>
@@ -100,56 +107,56 @@ book nop
 <xsl:template name="article.titlepage.separator">
 </xsl:template>
 
-<xsl:template match="bookinfo">
+<xsl:template match="d:book/d:info">
        <div id="header">
                <div class="content">
-                       <h1><xsl:value-of select="title" /></h1>
-                       <p><xsl:value-of select="subtitle" /></p>
+                       <h1><xsl:value-of select="d:title" /></h1>
+                       <p><xsl:value-of select="d:subtitle" /></p>
                </div>
                <div class="banner">
-                       <xsl:apply-templates select="//para[@id='banner']/itemizedlist" />
+                       <xsl:apply-templates select="//d:para[@xml:id='banner']/d:itemizedlist" />
                </div>
        </div>
 </xsl:template>
 
-<xsl:template match="listitem/para">
+<xsl:template match="d:listitem/d:para">
   <xsl:apply-templates />
 </xsl:template>
 
-<xsl:template match="bookinfo/*/formalpara">
-       <div id="{@id}">
-               <h2><xsl:value-of select="title" /></h2>
-               <xsl:apply-templates select="para" />
+<xsl:template match="d:book/d:info/*/d:formalpara">
+       <div id="{@xml:id}">
+               <h2><xsl:value-of select="d:title" /></h2>
+               <xsl:apply-templates select="d:para" />
   </div>
 </xsl:template>
 
-<xsl:template match="bookinfo/*/para[@id='sidebar-credits']">
-       <div id="{@id}">
+<xsl:template match="d:book/d:info/*/d:para[@xml:id='sidebar-credits']">
+       <div id="{@xml:id}">
     <xsl:apply-templates />
   </div>
 </xsl:template>
 
-<xsl:template match="bookinfo/*/para[@id='footer']">
+<xsl:template match="d:book/d:info/*/d:para[@xml:id='footer']">
        <div id="footer">
                <xsl:apply-templates />
        </div>
 </xsl:template>
 
-<xsl:template match="highlights">
+<xsl:template match="d:note">
        <div class="highlight">
                <xsl:apply-templates />
        </div>
 </xsl:template>
 
-<xsl:template match="application">
+<xsl:template match="d:application">
        <strong><xsl:value-of select="." /></strong>
 </xsl:template>
 
-<xsl:template match="command">
+<xsl:template match="d:command">
   <pre class="command"><xsl:value-of select="." /></pre>
 </xsl:template>
 
-<xsl:template match="informalfigure">
-  <a href="{ulink/@url}"><xsl:apply-templates select="mediaobject/imageobject" /></a>
+<xsl:template match="d:informalfigure">
+  <a href="{@xlink:href}"><xsl:apply-templates select="d:mediaobject/d:imageobject" /></a>
 </xsl:template>
 </xsl:stylesheet>
diff --git a/meson.build b/meson.build
index 65f612d..3257624 100644
--- a/meson.build
+++ b/meson.build
@@ -62,7 +62,7 @@ endif
 validate = get_option('validation') and can_parse_and_validate
 explain_val = ''
 if get_option('validation') and not validate
-  explain_val = ' (requires xmllint)'
+  explain_val = ' (requires xmllint with Relax NG and DocBook V5.0 support)'
 endif
 
 build_translations = build_translations_by_default and can_build_translations
@@ -76,11 +76,12 @@ summary = [
   '------',
   meson.project_name() + ' ' + meson.project_version(),
   '',
-  '    XML validation: @0@@1@'.format(validate, explain_val),
-  'Build translations: @0@@1@'.format(build_translations, explain_trans),
+  '      XML validation: @0@@1@'.format(validate, explain_val),
+  'Allow network access: @0@'.format(get_option('allow-network-access')),
+  '  Build translations: @0@@1@'.format(build_translations, explain_trans),
   'Directories:',
-  '            prefix: @0@'.format(install_prefix),
-  '           datadir: @0@'.format(install_prefix / install_datadir),
+  '              prefix: @0@'.format(install_prefix),
+  '             datadir: @0@'.format(install_prefix / install_datadir),
   '------'
 ]
 
diff --git a/meson_options.txt b/meson_options.txt
index 00296ba..985ce19 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -2,4 +2,5 @@ option('validation', type: 'boolean', value: false,
   description: 'Validate the untranslated XML file')
 option('build-translations', type: 'boolean', value: true,
   description: 'Build translated website')
-
+option('allow-network-access', type: 'boolean', value: true,
+  description: 'Allow xmllint and xsltproc to fetch files over the network')
diff --git a/tools/website-custom-cmd.py b/tools/website-custom-cmd.py
index 093042c..9e8919f 100755
--- a/tools/website-custom-cmd.py
+++ b/tools/website-custom-cmd.py
@@ -61,12 +61,22 @@ def get_languages():
 
 # Called from custom_target()
 def xmllint():
-  #  argv[2]       argv[3]          argv[4]
-  # <validate> <input_xml_file> <stamp_file_path>
+  #   argv[2]         argv[3]                argv[4]            argv[5]            argv[6]
+  # <validate> <allow_network_access> <relax_ng_schema_file> <input_xml_file> <stamp_file_path>
 
   validate = sys.argv[2]
-  input_xml_file = sys.argv[3]
-  stamp_file_path = sys.argv[4]
+  allow_network_access = sys.argv[3]
+  relax_ng_schema_file = sys.argv[4]
+  input_xml_file = sys.argv[5]
+  stamp_file_path = sys.argv[6]
+
+  # schematron_schema = 'http://docbook.org/xml/5.0/sch/docbook.sch'
+
+  # Validation against the Schematron schema does not work on Ubuntu 21.04:
+  # file:///usr/share/xml/docbook/schema/schematron/5.0/docbook.sch:6: element rule:
+  #   Schemas parser error : Failed to compile context expression db:firstterm[@linkend]
+  # .....
+  # Schematron schema http://docbook.org/xml/5.0/sch/docbook.sch failed to compile
 
   cmd = [
     'xmllint',
@@ -75,7 +85,12 @@ def xmllint():
     '--xinclude',
   ]
   if validate == 'true':
-    cmd += ['--postvalid']
+    cmd += [
+      '--relaxng', relax_ng_schema_file,
+      #'--schematron', schematron_schema,
+    ]
+  if allow_network_access != 'true':
+    cmd += ['--nonet']
   cmd += [input_xml_file]
   result = subprocess.run(cmd)
   if result.returncode:
@@ -125,13 +140,14 @@ def translate_xml():
 
 # Called from custom_target()
 def html():
-  #      argv[2]          argv[3]          argv[4]            argv[5]
-  # <stylesheet_file> <input_xml_file> <output_html_dir> <stamp_file_path>
+  #        argv[2]              argv[3]          argv[4]            argv[5]          argv[6]
+  # <allow_network_access> <stylesheet_file> <input_xml_file> <output_html_dir> <stamp_file_path>
 
-  stylesheet_file = sys.argv[2]
-  input_xml_file = sys.argv[3]
-  output_html_dir = sys.argv[4]
-  stamp_file_path = sys.argv[5]
+  allow_network_access = sys.argv[2]
+  stylesheet_file = sys.argv[3]
+  input_xml_file = sys.argv[4]
+  output_html_dir = sys.argv[5]
+  stamp_file_path = sys.argv[6]
 
   # Remove old files and create the destination directory.
   shutil.rmtree(output_html_dir, ignore_errors=True)
@@ -141,6 +157,10 @@ def html():
     'xsltproc',
     '-o', output_html_dir + '/',
     '--xinclude',
+  ]
+  if allow_network_access != 'true':
+    cmd += ['--nonet']
+  cmd += [
     stylesheet_file,
     input_xml_file,
   ]


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]