diff --git a/XmlCross/xmlcross.xml b/XmlCross/xmlcross.xml
index db7da594d7042e48e8bc4e57d4ba0f37f937da2d..e4a6e9efe1d997fb24c96a0ad6530cb359412e37 100644
--- a/XmlCross/xmlcross.xml
+++ b/XmlCross/xmlcross.xml
@@ -208,7 +208,7 @@
     <para>Single source publishing aims at creating different output formats
     from a given document source:</para>
 
-    <figure xml:id="xmlc_fig_MultiFormat">
+    <figure xml:id="xmlc_fig_sourceToMultiFormat">
       <title>Single source publishing</title>
 
       <mediaobject>
@@ -2423,6 +2423,9 @@ xmlns="http://docbook.org/ns/docbook"&gt;
       <qandadiv>
         <qandaentry>
           <question>
+            <para>In this exercise we develop a simple grammar aiming at
+            <quote>book</quote> style documents.</para>
+
             <para>Read the <link
             xlink:href="http://relaxng.org/tutorial-20011203.html">RELAX NG
             Tutorial</link>. You may want to import the examples into your
@@ -2436,6 +2439,7 @@ xmlns="http://docbook.org/ns/docbook"&gt;
             schema suiting the subsequent document sample:</para>
 
             <programlisting language="xml">&lt;book lang="en"&gt;
+   &lt;title&gt;My first book&lt;/title&gt;
    &lt;chapter&gt;
        &lt;title&gt;Introduction&lt;/title&gt;
        &lt;paragraph&gt;Some text.&lt;/paragraph&gt;
@@ -2476,8 +2480,9 @@ xmlns="http://docbook.org/ns/docbook"&gt;
               </listitem>
 
               <listitem>
-                <para>A <tag class="starttag">book</tag> element must have at
-                least one <tag class="starttag">chapter</tag>.</para>
+                <para>A <tag class="starttag">book</tag> element contains a
+                <tag class="starttag">title</tag> followed by at least one
+                <tag class="starttag">chapter</tag>.</para>
               </listitem>
 
               <listitem>
@@ -2541,5 +2546,297 @@ xmlns="http://docbook.org/ns/docbook"&gt;
     </qandaset>
   </chapter>
 
+  <chapter annotations="slide" xml:id="xmlc_chap_transform">
+    <title>Transforming documents</title>
+
+    <figure xml:id="xmlc_fig_problemConvert">
+      <title>Format conversion problem</title>
+
+      <para>Problem regarding <xref
+      linkend="xmlc_fig_sourceToMultiFormat"/>:</para>
+
+      <informaltable border="0">
+        <tr>
+          <td valign="top"><programlisting language="xml">&lt;book version="5.1" ...&gt;
+  ...
+  &lt;chapter&gt;
+    &lt;title&gt;Introduction&lt;/title&gt;
+    &lt;para&gt;First section.&lt;/para&gt;    
+  &lt;/chapter&gt; ...
+&lt;/book&gt;</programlisting></td>
+
+          <td valign="top"><programlisting language="xml">&lt;html&gt;
+  &lt;head&gt;...&lt;/head&gt;
+  &lt;body&gt;
+     &lt;h1&gt;Introduction&lt;/h1&gt;
+     &lt;p&gt;First section.&lt;/p&gt; ...   
+  &lt;/body&gt;
+&lt;/html&gt;</programlisting></td>
+        </tr>
+      </informaltable>
+    </figure>
+
+    <figure xml:id="xmlc_fig_convertByTemplates">
+      <title><xref linkend="glo_XSL"/> template rules</title>
+
+      <programlisting language="xml">&lt;xsl:template match="/book"&gt;
+  &lt;html&gt;
+    &lt;head&gt; ... &lt;/head&gt;
+    &lt;body&gt;
+      &lt;h1&gt;
+        &lt;xsl:value-of select="title"/&gt;
+      &lt;/h1&gt;
+    &lt;/body&gt;
+  &lt;/html&gt;        
+&lt;/xsl:template&gt;</programlisting>
+    </figure>
+
+    <figure xml:id="xmlc_fig_xsl_para">
+      <title>Example: Formatting <tag class="starttag">title</tag>
+      elements</title>
+
+      <informaltable border="1">
+        <tr>
+          <td rowspan="3"><programlisting language="xml">&lt;xsl:template match="title"&gt;
+  &lt;h1&gt;
+    &lt;xsl:value-of select="."/&gt;    
+  &lt;/h1&gt;        
+&lt;/xsl:template&gt;</programlisting></td>
+
+          <td><programlisting language="xml">&lt;title&gt;Some content&lt;/title&gt;   </programlisting></td>
+        </tr>
+
+        <tr>
+          <td><para>gets converted to:</para></td>
+        </tr>
+
+        <tr>
+          <td><programlisting language="xml">&lt;h1&gt;Some content&lt;/h1&gt;   </programlisting></td>
+        </tr>
+      </informaltable>
+    </figure>
+
+    <qandaset defaultlabel="qanda" xml:id="xmlc_qanda_xslMyDocbook">
+      <title>Formatting <tag class="starttag">book</tag> instances</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>In <xref linkend="xmlc_qandaBookGrammar"/> you developed a
+            grammar being capable to describe <xref linkend="glo_XML"/>
+            document instances. This exercise aims at transforming arbitrary
+            instances into <xref linkend="glo_HTML"/>.</para>
+
+            <para>Start by reading the beginning of the <link
+            xlink:href="https://www.w3schools.com/xml/xsl_intro.asp">XSLT
+            Tutorial</link> and follow the subsequent steps:</para>
+
+            <orderedlist>
+              <listitem>
+                <para>Provide a reasonable instance example like:</para>
+
+                <programlisting language="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;?xml-model href="mybook.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?&gt;
+&lt;book&gt;
+    &lt;title&gt;Introducing Java&lt;/title&gt;
+    &lt;chapter&gt;
+        &lt;title&gt;General&lt;/title&gt;
+        &lt;paragraph&gt;Java is a programming language offering:&lt;/paragraph&gt;
+        &lt;itemizedlist&gt;           
+            
+            &lt;listitem&gt;
+                &lt;paragraph&gt;Procedural elements&lt;/paragraph&gt;
+                &lt;itemizedlist&gt;
+                    &lt;listitem&gt;
+                        &lt;paragraph&gt;Control structures: if/else, switch&lt;/paragraph&gt;
+                    &lt;/listitem&gt;
+                    &lt;listitem&gt;
+                        &lt;paragraph&gt;Loops: while, do ... while, for&lt;/paragraph&gt;
+                    &lt;/listitem&gt;
+                    &lt;listitem&gt;
+                        &lt;paragraph&gt;prcedures (static methods)&lt;/paragraph&gt;
+                    &lt;/listitem&gt;
+                &lt;/itemizedlist&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
+                &lt;paragraph&gt;OO support albeit limited (no multiple inheritance implementation support)&lt;/paragraph&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
+                &lt;paragraph&gt;Functional elements&lt;/paragraph&gt;
+            &lt;/listitem&gt;
+            
+        &lt;/itemizedlist&gt;
+    &lt;/chapter&gt;
+    &lt;chapter&gt;
+        &lt;title&gt;JDK&lt;/title&gt;
+        &lt;paragraph&gt;The Java developers kit (JDK) provides both a runtime environment
+             and a compiler.&lt;/paragraph&gt;
+    &lt;/chapter&gt;
+&lt;/book&gt;</programlisting>
+              </listitem>
+
+              <listitem>
+                <para>Create a <link
+                xlink:href="https://www.oxygenxml.com/doc/versions/18/ug-editor/topics/defining-new-transformation-scenario.html">XML
+                Transformation with XSLT</link> starting from the following
+                skeleton:</para>
+
+                <programlisting language="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    exclude-result-prefixes="xs"
+    version="2.0"&gt;
+    
+    &lt;xsl:output method="xml" indent="yes"/&gt;
+    &lt;xsl:template match="/book"&gt;
+        &lt;html&gt;
+            &lt;head&gt;
+                &lt;title&gt;
+                    &lt;xsl:value-of select="title"/&gt;
+                &lt;/title&gt;
+            &lt;/head&gt;
+            &lt;body&gt;
+                &lt;h1&gt;
+                    &lt;xsl:value-of select="title"/&gt;
+                &lt;/h1&gt;
+                &lt;!-- See match="chapter" template below --&gt;
+                &lt;xsl:apply-templates select="chapter"/&gt;
+            &lt;/body&gt;
+        &lt;/html&gt;        
+    &lt;/xsl:template&gt;
+    
+    &lt;xsl:template match="chapter"&gt;
+        &lt;!-- TODO: Implement me! --&gt;
+    &lt;/xsl:template&gt;
+    
+    
+    &lt;!-- TODO: More templates have to be defined 
+               addressing &lt;title&gt;, &lt;paragraph&gt;, ...    
+    --&gt;
+    
+    
+    &lt;!-- Protecting against missing template definitions --&gt;
+    &lt;xsl:template match="*"&gt;
+        &lt;p style="color:red;"&gt;
+            &lt;xsl:text&gt;No template defined for element '&lt;/xsl:text&gt;
+            &lt;xsl:value-of select="name(.)"/&gt;
+            &lt;xsl:text&gt;'&lt;/xsl:text&gt;
+        &lt;/p&gt;
+    &lt;/xsl:template&gt;
+    
+&lt;/xsl:stylesheet&gt;</programlisting>
+              </listitem>
+
+              <listitem>
+                <para>Test your transformation. The output should be quite
+                limited containing only your document's title string:</para>
+
+                <programlisting language="xml">&lt;html&gt;
+   &lt;head&gt;
+      &lt;title&gt;Introducing Java&lt;/title&gt;
+   &lt;/head&gt;
+   &lt;body&gt;
+      &lt;h1&gt;Introducing Java&lt;/h1&gt;        
+    &lt;/body&gt;
+&lt;/html&gt;</programlisting>
+              </listitem>
+
+              <listitem>
+                <para>Extend the XSL stylesheet in a step- by- step fashion
+                until finally producing:</para>
+
+                <programlisting language="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;html&gt;
+   &lt;head&gt;
+      &lt;title&gt;Introducing Java&lt;/title&gt;
+   &lt;/head&gt;
+   &lt;body&gt;
+      &lt;h1&gt;Introducing Java&lt;/h1&gt;
+        &lt;h2&gt;General&lt;/h2&gt;
+        &lt;p&gt;Java is a programming language offering:&lt;/p&gt;
+        &lt;ul&gt;           
+            
+            &lt;li&gt;
+                &lt;p&gt;Procedural elements&lt;/p&gt;
+                &lt;ul&gt;
+                    &lt;li&gt;
+                        &lt;p&gt;Control structures: if/else, switch&lt;/p&gt;
+                    &lt;/li&gt;
+                    &lt;li&gt;
+                        &lt;p&gt;Loops: while, do ... while, for&lt;/p&gt;
+                    &lt;/li&gt;
+                    &lt;li&gt;
+                        &lt;p&gt;prcedures (static methods)&lt;/p&gt;
+                    &lt;/li&gt;
+                &lt;/ul&gt;
+            &lt;/li&gt;
+            &lt;li&gt;
+                &lt;p&gt;OO Support albeit limited (no multiple inheritance implementation support)&lt;/p&gt;
+            &lt;/li&gt;
+            &lt;li&gt;
+                &lt;p&gt;Functional elements&lt;/p&gt;
+            &lt;/li&gt;
+            
+        &lt;/ul&gt;
+    
+        &lt;h2&gt;JDK&lt;/h2&gt;
+        &lt;p&gt;The Java developers kit (JDK) provides both a runtime environment
+             and a compiler.&lt;/p&gt;
+    &lt;/body&gt;
+&lt;/html&gt;</programlisting>
+              </listitem>
+            </orderedlist>
+
+            <tip>
+              <para>Follow the embedded comment hints provided inside the
+              <xref linkend="glo_XSL"/> skeleton. You'll have to define more
+              <tag class="starttag">xsl:template match="..."</tag> rules and
+              <tag class="starttag">xsl:apply-templates ...</tag> calls at
+              appropriate places.</para>
+            </tip>
+          </question>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+
+    <qandaset defaultlabel="qanda" xml:id="xmlc_qanda_xslMyDocbookLangColor">
+      <title>Providing red background indicating foreign phrases</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Extend the previous exercise by providing highlighting to
+            indicate uses of foreign languages. Let's consider:</para>
+
+            <programlisting language="xml">&lt;paragraph&gt;I am normal&lt;/paragraph&gt; &lt;!-- Default language --&gt;
+&lt;paragraph lang="rf"&gt;Je suis Français&lt;/paragraph&gt; &lt;!-- Non-default language --&gt;</programlisting>
+
+            <para>The intended output being:</para>
+
+            <programlisting language="xml">&lt;p&gt;I am normal&lt;/p&gt;
+&lt;p <emphasis role="bold">style="background-color: red;"</emphasis>&gt;Je suis Français&lt;/p&gt;</programlisting>
+
+            <tip>
+              <para>You may want to define two templates like:</para>
+
+              <programlisting language="xml">&lt;!-- Default language --&gt;
+&lt;xsl:template match="paragraph"&gt;
+        ...
+&lt;/xsl:template&gt;
+    
+&lt;!-- Non-default language --&gt;
+&lt;xsl:template match="paragraph[@lang]"&gt;
+        ...
+&lt;/xsl:template&gt;</programlisting>
+
+              <para>Read the documentation regarding the
+              <code>paragraph[@lang]</code> XPath syntax.</para>
+            </tip>
+          </question>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+  </chapter>
+
   <xi:include href="../Doc/Common/glossary.xml" xpointer="element(/1)"/>
 </book>