Ukázka uživatelského „makra“ a vkládání odkazů na CSS a JS soubory.
1.1 --- a/build.xml Sun Apr 03 18:44:35 2011 +0200
1.2 +++ b/build.xml Sun Apr 03 20:12:33 2011 +0200
1.3 @@ -12,6 +12,7 @@
1.4
1.5 <target name="stránky" description="Vygeneruje XHTML webové stránky.">
1.6 <xslt basedir="${vstup}" destdir="${výstup}" includes="*.xml" extension=".xhtml" style="${šablona}/stránka.xsl">
1.7 + <param name="konfigurák" expression="../${vstup}/web.conf"/>
1.8 <classpath location="/usr/share/java/saxonb-9.0.jar"/>
1.9 <classpath location="${funkce}"/>
1.10 <factory name="net.sf.saxon.TransformerFactoryImpl">
2.1 --- a/vstup/produkty.xml Sun Apr 03 18:44:35 2011 +0200
2.2 +++ b/vstup/produkty.xml Sun Apr 03 20:12:33 2011 +0200
2.3 @@ -1,4 +1,6 @@
2.4 -<stránka xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor">
2.5 +<stránka
2.6 + xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor"
2.7 + xmlns:g="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor">
2.8 <nadpis>Produkty</nadpis>
2.9 <perex>Co vyrábíme.</perex>
2.10 <pořadí>20</pořadí>
2.11 @@ -7,6 +9,9 @@
2.12 <p>
2.13 naše produkty…
2.14 </p>
2.15 +
2.16 + <p>Vhodnost zvířete do domácnosti:</p>
2.17 + <g:měřák hodnota="80"/>
2.18 </text>
2.19
2.20 </stránka>
3.1 --- a/vstup/web.conf Sun Apr 03 18:44:35 2011 +0200
3.2 +++ b/vstup/web.conf Sun Apr 03 20:12:33 2011 +0200
3.3 @@ -5,8 +5,23 @@
3.4 <jméno>František Kučera</jméno>
3.5 <email>nereknu_nechci_spam@example.com</email>
3.6 </autor>
3.7 +
3.8 + <!-- TODO: XML Schéma a popisy v něm-->
3.9 +
3.10 + <!-- Základní URL našeho webu, mělo by končit pomlčkou – pro generování RSS/Atom -->
3.11 <url>https://trac.frantovo.cz/xml-web-generator/</url>
3.12 +
3.13 + <!-- ID našeho webu (každý by si měl vygenerovat svoje) – pro Atom -->
3.14 <uuid>399a714c-956e-444c-a8f4-afe8f0df802a</uuid>
3.15 +
3.16 + <!-- Kód našeho webu, použije se jako součást identifikátoru položek v RSS/Atomu -->
3.17 <kod>PokusnyWeb123</kod>
3.18
3.19 + <!--
3.20 + Odkazy na JavaScripty a kaskádové styly, které se vloží do hlavičky každé stránky.
3.21 + Můžeme jich uvést libovolné množství.
3.22 + -->
3.23 + <css>css/styl.css</css>
3.24 + <js>js/skript.js</js>
3.25 +
3.26 </web>
4.1 --- a/šablona/stránka.xsl Sun Apr 03 18:44:35 2011 +0200
4.2 +++ b/šablona/stránka.xsl Sun Apr 03 20:12:33 2011 +0200
4.3 @@ -13,14 +13,19 @@
4.4 encoding="UTF-8"
4.5 doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
4.6 doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"/>
4.7 +
4.8 + <xsl:param name="konfigurák"/>
4.9
4.10 <!-- Celý dokument: -->
4.11 <xsl:template match="/">
4.12 + <xsl:variable name="konfigurace" select="document($konfigurák)"/>
4.13 <html>
4.14 <head>
4.15 <title><xsl:value-of select="g:stránka/g:nadpis"/></title>
4.16 <link title="Novinky (Atom)" href="atom.xml" type="application/atom+xml" rel="alternate"/>
4.17 - <link title="Novinky (RSS)" href="rss.xml" type="application/rss+xml" rel="alternate"/>
4.18 + <link title="Novinky (RSS)" href="rss.xml" type="application/rss+xml" rel="alternate"/>
4.19 + <xsl:apply-templates select="$konfigurace/g:web/g:js"/>
4.20 + <xsl:apply-templates select="$konfigurace/g:web/g:css"/>
4.21 </head>
4.22 <body>
4.23 <xsl:apply-templates select="document(fn:encode-for-uri('../vstup/záhlaví.inc'))/g:stránka/h:text/node()"/>
4.24 @@ -49,5 +54,31 @@
4.25 <xsl:apply-templates/>
4.26 </xsl:element>
4.27 </xsl:template>
4.28 +
4.29 + <xsl:template match="g:web/g:js">
4.30 + <script src="{text()}" type="text/javascript" />
4.31 + </xsl:template>
4.32 + <xsl:template match="g:web/g:css">
4.33 + <link href="{text()}" type="text/css" rel="StyleSheet" />
4.34 + </xsl:template>
4.35 +
4.36 + <!-- Ukázka vlastního „makra“: -->
4.37 + <xsl:template match="g:měřák">
4.38 + <xsl:variable name="hodnota" select="number(@hodnota)"/>
4.39 + <xsl:variable name="šířkaGrafu" select="128"/>
4.40 + <xsl:choose>
4.41 + <xsl:when test="$hodnota >= 0 and $hodnota <= 100">
4.42 + <div style="border: 1px solid black; width: {$šířkaGrafu}px; height: 16px; padding: 0px; text-align: center; background-color: #cfc;">
4.43 + <div style="margin: 0px; background-color: #A4E666; width: {@hodnota*$šířkaGrafu div 100}px; height: 16px;"/>
4.44 + <p style="margin: 0px; font-size: 12px; position: relative; top: -15px;">
4.45 + <xsl:value-of select="@hodnota"/>/100
4.46 + </p>
4.47 + </div>
4.48 + </xsl:when>
4.49 + <xsl:otherwise>
4.50 + <xsl:message terminate="yes">Hodnota měřáku musí být nejméně 0 a nejvíce 100 (udává procenta).</xsl:message>
4.51 + </xsl:otherwise>
4.52 + </xsl:choose>
4.53 + </xsl:template>
4.54
4.55 </xsl:stylesheet>