    <!--
      - This example is based off the textRotate.svg example that comes
      - with Batik.  The original example was written by Bill Haneman.
      - This version by Mark Roth.
      -->
    <svg xmlns="http://www.w3.org/2000/svg"
         width="450" height="500" viewBox="0 0 450 500"
         xmlns:c="http://java.sun.com/jsp/jstl/core"
         xmlns:fn="http://java.sun.com/jsp/jstl/functions"
         xmlns:jsp="http://java.sun.com/JSP/Page">
      <jsp:directive.page contentType="image/svg+xml" />
      <title>JSP 2.0 JSPX</title>
      <!-- select name parameter, or default to JSPX -->
      <c:set var="name" value='${empty fn:escapeXml(param["name"]) ? "JSPX" : fn:escapeXml(param["name"])}'/>
      <g id="testContent">
        <text class="title" x="50%" y="10%" font-size="15" text-anchor="middle" >
                JSP 2.0 XML Syntax (.jspx) Demo</text>
        <text class="title" x="50%" y="15%" font-size="15" text-anchor="middle" >
                Try changing the name parameter!</text>
        <g opacity="1.0" transform="translate(225, 250)" id="rotatedText">
          <c:forEach var="i" begin="1" end="24">
            <jsp:text>
              <![CDATA[<g opacity="0.95" transform="scale(1.05) rotate(15)">]]>
            </jsp:text>
            <text x="0" y="0" transform="scale(1.6, 1.6)" fill="DarkSlateBlue"
                  text-anchor="middle" font-size="40" font-family="Serif"
                  id="words">${name}</text>
          </c:forEach>
          <c:forEach var="i" begin="1" end="24">
            <jsp:text><![CDATA[</g>]]></jsp:text>
          </c:forEach>
          <text style="font-size:75;font-family:Serif;fill:white"
                text-anchor="middle">${name}</text>
        </g>
      </g>
    </svg>