<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="4.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:fn="http://www.w3.org/2005/xpath-functions"
  xmlns:map="http://www.w3.org/2005/xpath-functions/map"
  xmlns:math="http://www.w3.org/2005/xpath-functions/math"
  xmlns:array="http://www.w3.org/2005/xpath-functions/array"
  xmlns:tm="http://www.datenverdrahten.de/tm"
  xmlns="http://www.w3.org/1999/xhtml"
  exclude-result-prefixes="#all"
  expand-text="yes">

  <!-- by T. Meinike 11/22 -->

  <xsl:output method="xml" version="1.0" html-version="5" encoding="UTF-8"
    indent="yes" include-content-type="no" omit-xml-declaration="yes"/>

  <xsl:template name="xsl:initial-template">

    <xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html>&#xA;</xsl:text>
    <html lang="de">
      <head>
        <meta charset="UTF-8"/>
        <title>xsl:switch</title>
        <style>* {{ font-family: sans-serif; }}</style>
      </head>
      <body>

        <h1>xsl:switch</h1>
        <xsl:variable name="tekom" select="xs:date('2022-11-08'), xs:date('2022-11-09'), xs:date('2022-11-10')" as="xs:date*"/>
        <xsl:variable name="datum" select="xs:date('2022-11-09')" as="xs:date"/> <!-- hier fn:current-date() abfragen -->
        <xsl:variable name="check" select="fn:index-of($tekom, $datum)" as="xs:integer"/>

        <p>
          <xsl:choose>
            <xsl:when test="$check = 1">1. Tag der tekom-Jahrestagung.</xsl:when>
            <xsl:when test="$check = 2">2. Tag der tekom-Jahrestagung.</xsl:when>
            <xsl:when test="$check = 3">3. Tag der tekom-Jahrestagung.</xsl:when>
            <xsl:otherwise>Ein anderer Tag.</xsl:otherwise>
          </xsl:choose>
        </p>

        <!-- Alternative mit xsl:switch | select muss atomaren Wert zurückgeben, also ggf. keine leere Sequenz -->
        <p>
          <xsl:switch select="if(fn:exists($check)) then $check else 0">
            <xsl:when test="1">1. Tag der tekom-Jahrestagung.</xsl:when>
            <xsl:when test="2">2. Tag der tekom-Jahrestagung.</xsl:when>
            <xsl:when test="3">3. Tag der tekom-Jahrestagung.</xsl:when>
            <xsl:when test="0">Ein anderer Tag.</xsl:when>
            <!-- oder statt 0-Prüfung: -->
            <!-- <xsl:otherwise>Ein anderer Tag.</xsl:otherwise> -->
          </xsl:switch>
        </p>
      </body>
    </html>

  </xsl:template>

</xsl:stylesheet>