vkládání zápatí, jmenné prostory, saxon
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sat, 02 Apr 2011 23:54:23 +0200
changeset 2 ab9099ff88fa
parent 1 a05c6f3cbc3e
child 3 1529a89b61a5
vkládání zápatí, jmenné prostory, saxon
build.xml
vstup/index.xml
vstup/zápatí.inc
šablona/stránka.xsl
--- a/build.xml	Sat Apr 02 19:20:45 2011 +0200
+++ b/build.xml	Sat Apr 02 23:54:23 2011 +0200
@@ -1,13 +1,25 @@
 <project name="xhtml-web" basedir="." default="generuj">
 
-	<!-- Používané adresáře (pravděpodobně nepotřebujete měnit) -->
+	<!-- Používané adresáře – např. zde můžete vstup a výstup nasměrovat do jiného verzovaného úložiště -->
 	<property name="vstup" value="vstup"/>
 	<property name="výstup" value="výstup"/>
 	<property name="šablona" value="šablona"/>
 	<property name="temp" value="temp"/>
+	<property name="funkce" value="${šablona}/funkce/build/classes"/>
 	
-	<target name="generuj" description="">		
-		<xslt basedir="${vstup}" destdir="${výstup}" includes="*.xml" extension=".xhtml" style="${šablona}/stránka.xsl"></xslt>
+	<target name="generuj" description="Vygeneruje XHTML webové stránky.">		
+		<xslt basedir="${vstup}" destdir="${výstup}" includes="*.xml" extension=".xhtml" style="${šablona}/stránka.xsl">
+			<classpath location="/usr/share/java/saxonb-9.0.jar"/>
+            <classpath location="${funkce}"/>
+			
+            <factory name="net.sf.saxon.TransformerFactoryImpl">
+				<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>
+			</factory>
+			
+			<sysproperty key="javax.xml.parsers.DocumentBuilderFactory" value="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
+			<sysproperty key="javax.xml.parsers.SAXParserFactory" value="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
+			<sysproperty key="org.apache.xerces.xni.parser.XMLParserConfiguration" value="org.apache.xerces.parsers.XIncludeParserConfiguration"/>			
+		</xslt>
 	</target>
 	
 </project>
--- a/vstup/index.xml	Sat Apr 02 19:20:45 2011 +0200
+++ b/vstup/index.xml	Sat Apr 02 23:54:23 2011 +0200
@@ -1,8 +1,12 @@
-<stránka titulek="Chovatelská stanice">
-    
-    <p>
-    	Vítejte na našich stránkách :-)
-    	Jsme chovatelská stanice zaměřená na chov tučňáků.
-    </p>
+<stránka xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor">
+	<nadpis>Chovatelská stanice</nadpis>
+	<perex>Úvodní stránka našeho webu.</perex>
+	
+	<text xmlns="http://www.w3.org/1999/xhtml">
+		<p>
+			Vítejte na našich stránkách :-)
+			Jsme chovatelská stanice zaměřená na chov tučňáků.
+		</p>
+    </text>
     
 </stránka>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vstup/zápatí.inc	Sat Apr 02 23:54:23 2011 +0200
@@ -0,0 +1,8 @@
+<stránka xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor">
+	<text xmlns="http://www.w3.org/1999/xhtml">
+		<p class="zápatí">
+			Zápatí, které bude na <strong>všech</strong> stránkách.
+		</p>
+    </text>    
+</stránka>
+
--- a/šablona/stránka.xsl	Sat Apr 02 19:20:45 2011 +0200
+++ b/šablona/stránka.xsl	Sat Apr 02 23:54:23 2011 +0200
@@ -1,41 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="2.0"
 	xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-	<xsl:output method="xml" indent="yes" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"/>
+	xmlns:h="http://www.w3.org/1999/xhtml"
+	xmlns:g="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:fn="http://www.w3.org/2005/xpath-functions"
+	exclude-result-prefixes="fn h g">
+	<xsl:output 
+		method="xml" 
+		indent="yes" 
+		encoding="UTF-8"		
+		doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" 
+		doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"/>
+		
 	
 	<xsl:template match="/">
 		<html>
 			<head>
-				<title><xsl:value-of select="stránka/@titulek"/></title>
+				<title><xsl:value-of select="g:stránka/g:nadpis"/></title>				
 			</head>
 			<body>
-				<xsl:choose>
-					<xsl:when test="stránka/nadpis">						
-						<!--
-							Element nadpis je nepovinný, můžeme ho použít, pokud zde chceme formátovaný text
-							nebo prostě jiný text než v titulku stránky.						
-						-->
-						<h1><xsl:value-of select="stránka/nadpis"/></h1>
-					</xsl:when>
-					<xsl:otherwise>
-						<h1><xsl:value-of select="stránka/@titulek"/></h1>
-					</xsl:otherwise>
-				</xsl:choose>
+				<h1><xsl:value-of select="g:stránka/g:nadpis"/></h1>				
 			
-				<!--
-					Vložíme obsah stránky:
-				-->				
-				<xsl:apply-templates select="stránka/node()"/>
+				<!-- Vložíme obsah stránky: -->				
+				<xsl:apply-templates select="g:stránka/h:text/node()"/>
+				
+				<!-- Vložíme zápatí: -->
+				<xsl:apply-templates select="document(fn:encode-for-uri('../vstup/zápatí.inc'))/g:stránka/h:text/node()"/>
+				
 			</body>
 		</html>
 	</xsl:template>
 	
-	
 	<xsl:template match="node()|@*">
-	  <xsl:copy>
-		<xsl:apply-templates select="node()|@*"/>
-	  </xsl:copy>
-  	</xsl:template>
+		<xsl:copy>
+			<xsl:apply-templates select="node()|@*"/>
+		</xsl:copy>
+	</xsl:template>
 
 </xsl:stylesheet>