You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by cr...@apache.org on 2007/04/10 08:05:09 UTC

svn commit: r527041 [2/5] - in /forrest/trunk/whiteboard/forrest2: core/ core/src/conf/ core/src/core/xdocs/samples/xslt/ core/src/docs/ core/src/examples/affiliateProductCatalogue/src/ core/src/examples/affiliateProductCatalogue/src/xdocs/ core/src/ex...

Modified: forrest/trunk/whiteboard/forrest2/core/src/core/xdocs/samples/xslt/internal-to-html.xsl
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/core/xdocs/samples/xslt/internal-to-html.xsl?view=diff&rev=527041&r1=527040&r2=527041
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/core/xdocs/samples/xslt/internal-to-html.xsl (original)
+++ forrest/trunk/whiteboard/forrest2/core/src/core/xdocs/samples/xslt/internal-to-html.xsl Mon Apr  9 23:05:03 2007
@@ -32,1041 +32,989 @@
 <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/2002/06/xhtml2"
 	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 	xmlns:html="http://www.w3.org/2002/06/xhtml2">
-	<!-- If imported into another stylesheet, allow the first level heading
+<!-- If imported into another stylesheet, allow the first level heading
 		-  depth to be configured -->
-	<xsl:param name="xhtml-heading" select="1" />
-
-	<!-- Use XHTML 1.0 as the output schema -->
-	<xsl:output method="html" version="1.0" encoding="utf-8"
+  <xsl:param name="xhtml-heading" select="1" />
+<!-- Use XHTML 1.0 as the output schema -->
+  <xsl:output method="html" version="1.0" encoding="utf-8"
 		omit-xml-declaration="yes" media-type="text/html"
 		doctype-public="-//W3C//DTD HTML 4.01//EN"
 		doctype-system="http://www.w3.org/TR/html4/strict.dtd" />
-
-	<!-- Copy elements by default -->
-	<xsl:template match="comment()">
-		<xsl:comment>
-			<xsl:value-of select="." />
-		</xsl:comment>
-	</xsl:template>
-
-	<!-- Do not process elements and attributes by default -->
-	<xsl:template match="html:*" />
-	<xsl:template match="html:*/@*" priority="0" />
-	<xsl:template match="html:*/@*" mode="insdel" priority="0" />
-	<xsl:template match="html:*/@*" mode="image" priority="0" />
-	<xsl:template match="html:*/@*" mode="quote" priority="0" />
-	<xsl:template match="html:*/@*" mode="link" priority="0" />
-
-	<!--
+<!-- Copy elements by default -->
+  <xsl:template match="comment()">
+    <xsl:comment>
+      <xsl:value-of select="." />
+    </xsl:comment>
+  </xsl:template>
+<!-- Do not process elements and attributes by default -->
+  <xsl:template match="html:*" />
+  <xsl:template match="html:*/@*" priority="0" />
+  <xsl:template match="html:*/@*" mode="insdel" priority="0" />
+  <xsl:template match="html:*/@*" mode="image" priority="0" />
+  <xsl:template match="html:*/@*" mode="quote" priority="0" />
+  <xsl:template match="html:*/@*" mode="link" priority="0" />
+<!--
 		- XHTML Attribute Collections
 	-->
-
-	<!-- Core Attribute Collection -->
-	<xsl:template match="@class">
-		<xsl:param name="class" />
-		<xsl:attribute name="class">
-			<xsl:if test="$class">
-				<xsl:value-of select="$class" />
-				<xsl:text></xsl:text>
-			</xsl:if>
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-	<xsl:template match="@id|@title">
-		<xsl:attribute name="{local-name()}">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!-- I18N Attribute Collection -->
-	<xsl:template match="@xml:lang">
-		<xsl:attribute name="lang">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!-- Bi-directional Text Collection -->
-	<xsl:template match="@dir">
-		<!-- TODO: Need to handle lro and rlo.  Not in HTML4 -->
-		<xsl:attribute name="dir">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!-- Edit Collection -->
-	<xsl:template match="@edit" mode="insdel" />
-	<xsl:template match="@datetime" mode="insdel">
-		<xsl:attribute name="datetime">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!-- Hypertext Attribute Collection -->
-	<xsl:template match="@href|@rel|@rev|@accesskey|@target"
+<!-- Core Attribute Collection -->
+  <xsl:template match="@class">
+    <xsl:param name="class" />
+    <xsl:attribute name="class">
+      <xsl:if test="$class">
+        <xsl:value-of select="$class" />
+<xsl:text></xsl:text>
+      </xsl:if>
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+  <xsl:template match="@id|@title">
+    <xsl:attribute name="{local-name()}">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- I18N Attribute Collection -->
+  <xsl:template match="@xml:lang">
+    <xsl:attribute name="lang">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- Bi-directional Text Collection -->
+  <xsl:template match="@dir">
+<!-- TODO: Need to handle lro and rlo.  Not in HTML4 -->
+    <xsl:attribute name="dir">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- Edit Collection -->
+  <xsl:template match="@edit" mode="insdel" />
+  <xsl:template match="@datetime" mode="insdel">
+    <xsl:attribute name="datetime">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- Hypertext Attribute Collection -->
+  <xsl:template match="@href|@rel|@rev|@accesskey|@target"
 		mode="link">
-		<xsl:attribute name="{local-name()}">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-	<xsl:template match="@navindex" mode="link">
-		<xsl:attribute name="tabindex">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-	<!-- Make sure only one tag gets the cite attribute -->
-	<xsl:template match="@cite" mode="insdel">
-		<xsl:attribute name="cite">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-	<xsl:template match="@cite" mode="quote">
-		<xsl:if test="count(@edit)=0">
-			<xsl:attribute name="cite">
-				<xsl:value-of select="." />
-			</xsl:attribute>
-		</xsl:if>
-	</xsl:template>
-
-	<!-- Embedding Attribute Collection -->
-	<xsl:template match="@src" mode="image">
-		<xsl:attribute name="src">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-	<xsl:template match="html:link/@type" mode="link">
-		<xsl:attribute name="type">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!-- Image Map Attribute Collection -->
-	<xsl:template match="@usemap|@ismap" mode="image">
-		<xsl:attribute name="{local-name()}">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!-- Style Attribute Collection -->
-	<xsl:template match="@style">
-		<xsl:attribute name="style">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!--
+    <xsl:attribute name="{local-name()}">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+  <xsl:template match="@navindex" mode="link">
+    <xsl:attribute name="tabindex">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- Make sure only one tag gets the cite attribute -->
+  <xsl:template match="@cite" mode="insdel">
+    <xsl:attribute name="cite">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+  <xsl:template match="@cite" mode="quote">
+    <xsl:if test="count(@edit)=0">
+      <xsl:attribute name="cite">
+        <xsl:value-of select="." />
+      </xsl:attribute>
+    </xsl:if>
+  </xsl:template>
+<!-- Embedding Attribute Collection -->
+  <xsl:template match="@src" mode="image">
+    <xsl:attribute name="src">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+  <xsl:template match="html:link/@type" mode="link">
+    <xsl:attribute name="type">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- Image Map Attribute Collection -->
+  <xsl:template match="@usemap|@ismap" mode="image">
+    <xsl:attribute name="{local-name()}">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- Style Attribute Collection -->
+  <xsl:template match="@style">
+    <xsl:attribute name="style">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!--
 		- Block rendering templates
 	-->
-	<!-- If the edit attribute has been used, add a ins or del as appropriate -->
-	<xsl:template name="block">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- No edit attribute, just call next level -->
-			<xsl:when test="count(@edit)=0">
-				<xsl:call-template name="block-element">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- Edit attribute set to "deleted", create a del element -->
-			<xsl:when test="@edit='deleted'">
-				<del>
-					<xsl:apply-templates select="@*" mode="insdel">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="block-element">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</del>
-			</xsl:when>
-			<!-- Edit attribute set to "inserted", "changed", "moved", create an ins
+<!-- If the edit attribute has been used, add a ins or del as appropriate -->
+  <xsl:template name="block">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- No edit attribute, just call next level -->
+      <xsl:when test="count(@edit)=0">
+        <xsl:call-template name="block-element">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- Edit attribute set to "deleted", create a del element -->
+      <xsl:when test="@edit='deleted'">
+        <del>
+          <xsl:apply-templates select="@*" mode="insdel">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="block-element">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </del>
+      </xsl:when>
+<!-- Edit attribute set to "inserted", "changed", "moved", create an ins
 				-  element -->
-			<xsl:otherwise>
-				<ins>
-					<xsl:apply-templates select="@*" mode="insdel">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="block-element">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</ins>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- Create the element before any automatic inline children -->
-	<xsl:template name="block-element">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- The hr element is empty -->
-			<xsl:when test="$element='hr'">
-				<hr>
-					<xsl:apply-templates select="@*">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-				</hr>
-			</xsl:when>
-			<!-- Create element -->
-			<xsl:otherwise>
-				<xsl:element name="{$element}">
-					<xsl:if test="$class">
-						<xsl:attribute name="class">
-							<xsl:value-of select="$class" />
-						</xsl:attribute>
-					</xsl:if>
-					<xsl:apply-templates select="@*">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="block-quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</xsl:element>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the cite attribute appears without edit, create a quote element -->
-	<xsl:template name="block-quote">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no cite attribute or edit was defined, continue to next level -->
-			<xsl:when
+      <xsl:otherwise>
+        <ins>
+          <xsl:apply-templates select="@*" mode="insdel">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="block-element">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </ins>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- Create the element before any automatic inline children -->
+  <xsl:template name="block-element">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- The hr element is empty -->
+      <xsl:when test="$element='hr'">
+        <hr>
+          <xsl:apply-templates select="@*">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+        </hr>
+      </xsl:when>
+<!-- Create element -->
+      <xsl:otherwise>
+        <xsl:element name="{$element}">
+          <xsl:if test="$class">
+            <xsl:attribute name="class">
+              <xsl:value-of select="$class" />
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:apply-templates select="@*">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="block-quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the cite attribute appears without edit, create a quote element -->
+  <xsl:template name="block-quote">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no cite attribute or edit was defined, continue to next level -->
+      <xsl:when
 				test="(count(@cite)=0) or (count(@edit)!=0)
       or ($element='blockquote')">
-				<xsl:call-template name="block-link">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- Create the quote element -->
-			<xsl:otherwise>
-				<q>
-					<xsl:apply-templates select="@*" mode="quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="block-link">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</q>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the href attribute appears, make a hyperlink -->
-	<xsl:template name="block-link">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no href attribute appears, continue to next level -->
-			<xsl:when test="count(@href)=0">
-				<xsl:call-template name="block-image">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- href has been used, so create an anchor -->
-			<xsl:otherwise>
-				<a>
-					<xsl:apply-templates select="@*" mode="link">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="block-image">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</a>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the src attribute appears, make an image -->
-	<xsl:template name="block-image">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no src attribute appears, continue to next level -->
-			<xsl:when test="count(@src)=0">
-				<xsl:apply-templates />
-			</xsl:when>
-			<!-- src has been used, so replace with an image -->
-			<xsl:otherwise>
-				<img alt="{.}">
-					<xsl:apply-templates select="@*" mode="image">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-				</img>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!--
+        <xsl:call-template name="block-link">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- Create the quote element -->
+      <xsl:otherwise>
+        <q>
+          <xsl:apply-templates select="@*" mode="quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="block-link">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </q>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the href attribute appears, make a hyperlink -->
+  <xsl:template name="block-link">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no href attribute appears, continue to next level -->
+      <xsl:when test="count(@href)=0">
+        <xsl:call-template name="block-image">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- href has been used, so create an anchor -->
+      <xsl:otherwise><a>
+        <xsl:apply-templates select="@*" mode="link">
+          <xsl:with-param name="element"
+							select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:apply-templates>
+        <xsl:call-template name="block-image">
+          <xsl:with-param name="element"
+							select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template></a>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the src attribute appears, make an image -->
+  <xsl:template name="block-image">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no src attribute appears, continue to next level -->
+      <xsl:when test="count(@src)=0">
+        <xsl:apply-templates />
+      </xsl:when>
+<!-- src has been used, so replace with an image -->
+      <xsl:otherwise>
+        <img alt="{.}">
+          <xsl:apply-templates select="@*" mode="image">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+        </img>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!--
 		- Inline rendering templates
 	-->
-	<!-- If the edit attribute has been used, add a ins or del as appropriate -->
-	<xsl:template name="inline">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- No edit attribute, just call next level -->
-			<xsl:when test="count(@edit)=0">
-				<xsl:call-template name="inline-quote">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- Edit attribute set to "deleted", create a del element -->
-			<xsl:when test="@edit='deleted'">
-				<del>
-					<xsl:apply-templates select="@*" mode="insdel">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="inline-quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</del>
-			</xsl:when>
-			<!-- Edit attribute set to "inserted", "changed", "moved", create an ins
+<!-- If the edit attribute has been used, add a ins or del as appropriate -->
+  <xsl:template name="inline">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- No edit attribute, just call next level -->
+      <xsl:when test="count(@edit)=0">
+        <xsl:call-template name="inline-quote">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- Edit attribute set to "deleted", create a del element -->
+      <xsl:when test="@edit='deleted'">
+        <del>
+          <xsl:apply-templates select="@*" mode="insdel">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="inline-quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </del>
+      </xsl:when>
+<!-- Edit attribute set to "inserted", "changed", "moved", create an ins
 				-  element -->
-			<xsl:otherwise>
-				<ins>
-					<xsl:apply-templates select="@*" mode="insdel">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="inline-quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</ins>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the cite attribute appears without edit, create a quote element -->
-	<xsl:template name="inline-quote">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no cite attribute or edit was defined, continue to next level -->
-			<xsl:when test="(count(@cite)=0) or (count(@edit)!=0)">
-				<xsl:call-template name="inline-link">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- Create the quote element -->
-			<xsl:otherwise>
-				<q>
-					<xsl:apply-templates select="@*" mode="quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="inline-link">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</q>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the href attribute appears, make a hyperlink -->
-	<xsl:template name="inline-link">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no href attribute appears, continue to next level -->
-			<xsl:when test="count(@href)=0">
-				<xsl:call-template name="inline-image">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- href has been used, so create an anchor -->
-			<xsl:otherwise>
-				<a>
-					<xsl:apply-templates select="@*" mode="link">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="inline-image">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</a>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the src attribute appears, make an image -->
-	<xsl:template name="inline-image">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no src attribute appears, continue to next level -->
-			<xsl:when test="count(@src)=0">
-				<xsl:call-template name="inline-element">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- src has been used, so replace with an image -->
-			<xsl:otherwise>
-				<img alt="{.}">
-					<xsl:apply-templates select="@*" mode="image">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-				</img>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- Finally, create the element (assuming not quote) -->
-	<xsl:template name="inline-element">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If element is 'q' or 'a', it has already been made -->
-			<xsl:when test="($element='q') or ($element='a')">
-				<xsl:apply-templates select="@*">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:apply-templates>
-				<xsl:apply-templates />
-			</xsl:when>
-			<!-- If element is 'br', make a span and put br at end -->
-			<xsl:when test="$element='br'">
-				<span class="line">
-					<xsl:apply-templates select="@*">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:apply-templates />
-					<br />
-				</span>
-			</xsl:when>
-			<!-- Create element -->
-			<xsl:otherwise>
-				<xsl:element name="{$element}">
-					<xsl:apply-templates select="@*">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:apply-templates />
-				</xsl:element>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!--
+      <xsl:otherwise>
+        <ins>
+          <xsl:apply-templates select="@*" mode="insdel">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="inline-quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </ins>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the cite attribute appears without edit, create a quote element -->
+  <xsl:template name="inline-quote">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no cite attribute or edit was defined, continue to next level -->
+      <xsl:when test="(count(@cite)=0) or (count(@edit)!=0)">
+        <xsl:call-template name="inline-link">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- Create the quote element -->
+      <xsl:otherwise>
+        <q>
+          <xsl:apply-templates select="@*" mode="quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="inline-link">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </q>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the href attribute appears, make a hyperlink -->
+  <xsl:template name="inline-link">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no href attribute appears, continue to next level -->
+      <xsl:when test="count(@href)=0">
+        <xsl:call-template name="inline-image">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- href has been used, so create an anchor -->
+      <xsl:otherwise><a>
+        <xsl:apply-templates select="@*" mode="link">
+          <xsl:with-param name="element"
+							select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:apply-templates>
+        <xsl:call-template name="inline-image">
+          <xsl:with-param name="element"
+							select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template></a>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the src attribute appears, make an image -->
+  <xsl:template name="inline-image">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no src attribute appears, continue to next level -->
+      <xsl:when test="count(@src)=0">
+        <xsl:call-template name="inline-element">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- src has been used, so replace with an image -->
+      <xsl:otherwise>
+        <img alt="{.}">
+          <xsl:apply-templates select="@*" mode="image">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+        </img>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- Finally, create the element (assuming not quote) -->
+  <xsl:template name="inline-element">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If element is 'q' or 'a', it has already been made -->
+      <xsl:when test="($element='q') or ($element='a')">
+        <xsl:apply-templates select="@*">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:apply-templates>
+        <xsl:apply-templates />
+      </xsl:when>
+<!-- If element is 'br', make a span and put br at end -->
+      <xsl:when test="$element='br'">
+        <span class="line">
+          <xsl:apply-templates select="@*">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:apply-templates />
+          <br />
+        </span>
+      </xsl:when>
+<!-- Create element -->
+      <xsl:otherwise>
+        <xsl:element name="{$element}">
+          <xsl:apply-templates select="@*">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:apply-templates />
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!--
 		- List rendering templates
 	-->
-	<!-- If the edit attribute has been used, add a ins or del as appropriate -->
-	<xsl:template name="list">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- No edit attribute, just call next level -->
-			<xsl:when test="count(@edit)=0">
-				<xsl:call-template name="list-quote">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- Edit attribute set to "deleted", create a del element -->
-			<xsl:when test="@edit='deleted'">
-				<del>
-					<xsl:apply-templates select="@*" mode="insdel">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="list-quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</del>
-			</xsl:when>
-			<!-- Edit attribute set to "inserted", "changed", "moved", create an ins
+<!-- If the edit attribute has been used, add a ins or del as appropriate -->
+  <xsl:template name="list">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- No edit attribute, just call next level -->
+      <xsl:when test="count(@edit)=0">
+        <xsl:call-template name="list-quote">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- Edit attribute set to "deleted", create a del element -->
+      <xsl:when test="@edit='deleted'">
+        <del>
+          <xsl:apply-templates select="@*" mode="insdel">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="list-quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </del>
+      </xsl:when>
+<!-- Edit attribute set to "inserted", "changed", "moved", create an ins
 				-  element -->
-			<xsl:otherwise>
-				<ins>
-					<xsl:apply-templates select="@*" mode="insdel">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="list-quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</ins>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the cite attribute appears without edit, create a quote element -->
-	<xsl:template name="list-quote">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no cite attribute or edit was defined, continue to next level -->
-			<xsl:when test="(count(@cite)=0) or (count(@edit)!=0)">
-				<xsl:call-template name="list-element">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- Create the quote element -->
-			<xsl:otherwise>
-				<blockquote>
-					<xsl:apply-templates select="@*" mode="quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="list-element">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</blockquote>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- Create the element before any automatic inline children -->
-	<xsl:template name="list-element">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If going to be replaced with an image, create a para instead -->
-			<xsl:when test="count(@src)">
-				<p>
-					<xsl:apply-templates select="@*">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="list-link">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</p>
-			</xsl:when>
-			<!-- Create element and continue to children -->
-			<xsl:otherwise>
-				<xsl:element name="{$element}">
-					<xsl:if test="$class">
-						<xsl:attribute name="class">
-							<xsl:value-of select="$class" />
-						</xsl:attribute>
-					</xsl:if>
-					<xsl:if test="count(html:summary)">
-						<xsl:attribute name="summary">
-							<xsl:value-of select="html:summary" />
-						</xsl:attribute>
-					</xsl:if>
-					<xsl:apply-templates select="@*">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:apply-templates />
-				</xsl:element>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the href and src are provided, make a linked image -->
-	<xsl:template name="list-link">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no href attribute appears, continue to next level -->
-			<xsl:when test="count(@href)=0">
-				<xsl:call-template name="list-image">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- href has been used, so create an anchor -->
-			<xsl:otherwise>
-				<a>
-					<xsl:apply-templates select="@*" mode="link">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="list-image">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</a>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the src attribute appears, make an image -->
-	<xsl:template name="list-image">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<img alt="{.}">
-			<xsl:apply-templates select="@*" mode="image">
-				<xsl:with-param name="element" select="$element" />
-				<xsl:with-param name="class" select="$class" />
-			</xsl:apply-templates>
-		</img>
-	</xsl:template>
-
-	<!--
+      <xsl:otherwise>
+        <ins>
+          <xsl:apply-templates select="@*" mode="insdel">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="list-quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </ins>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the cite attribute appears without edit, create a quote element -->
+  <xsl:template name="list-quote">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no cite attribute or edit was defined, continue to next level -->
+      <xsl:when test="(count(@cite)=0) or (count(@edit)!=0)">
+        <xsl:call-template name="list-element">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- Create the quote element -->
+      <xsl:otherwise>
+        <blockquote>
+          <xsl:apply-templates select="@*" mode="quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="list-element">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </blockquote>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- Create the element before any automatic inline children -->
+  <xsl:template name="list-element">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If going to be replaced with an image, create a para instead -->
+      <xsl:when test="count(@src)">
+        <p>
+          <xsl:apply-templates select="@*">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="list-link">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </p>
+      </xsl:when>
+<!-- Create element and continue to children -->
+      <xsl:otherwise>
+        <xsl:element name="{$element}">
+          <xsl:if test="$class">
+            <xsl:attribute name="class">
+              <xsl:value-of select="$class" />
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:if test="count(html:summary)">
+            <xsl:attribute name="summary">
+              <xsl:value-of select="html:summary" />
+            </xsl:attribute>
+          </xsl:if>
+          <xsl:apply-templates select="@*">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:apply-templates />
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the href and src are provided, make a linked image -->
+  <xsl:template name="list-link">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no href attribute appears, continue to next level -->
+      <xsl:when test="count(@href)=0">
+        <xsl:call-template name="list-image">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- href has been used, so create an anchor -->
+      <xsl:otherwise><a>
+        <xsl:apply-templates select="@*" mode="link">
+          <xsl:with-param name="element"
+							select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:apply-templates>
+        <xsl:call-template name="list-image">
+          <xsl:with-param name="element"
+							select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template></a>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the src attribute appears, make an image -->
+  <xsl:template name="list-image">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <img alt="{.}">
+      <xsl:apply-templates select="@*" mode="image">
+        <xsl:with-param name="element" select="$element" />
+        <xsl:with-param name="class" select="$class" />
+      </xsl:apply-templates>
+    </img>
+  </xsl:template>
+<!--
 		- List Item rendering templates
 	-->
-	<!-- Create the element before any automatic inline children -->
-	<xsl:template name="listitem">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:element name="{$element}">
-			<xsl:if test="$class">
-				<xsl:attribute name="class">
-					<xsl:value-of select="$class" />
-				</xsl:attribute>
-			</xsl:if>
-			<xsl:apply-templates select="@*">
-				<xsl:with-param name="element" select="$element" />
-				<xsl:with-param name="class" select="$class" />
-			</xsl:apply-templates>
-			<xsl:call-template name="listitem-insdel">
-				<xsl:with-param name="element" select="$element" />
-				<xsl:with-param name="class" select="$class" />
-			</xsl:call-template>
-		</xsl:element>
-	</xsl:template>
-
-	<!-- If the edit attribute has been used, add a ins or del as appropriate -->
-	<xsl:template name="listitem-insdel">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- No edit attribute, just call next level -->
-			<xsl:when test="count(@edit)=0">
-				<xsl:call-template name="listitem-link">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- Edit attribute set to "deleted", create a del element -->
-			<xsl:when test="@edit='deleted'">
-				<del>
-					<xsl:apply-templates select="@*" mode="insdel">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="listitem-quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</del>
-			</xsl:when>
-			<!-- Edit attribute set to "inserted", "changed", "moved", create an ins
+<!-- Create the element before any automatic inline children -->
+  <xsl:template name="listitem">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:element name="{$element}">
+      <xsl:if test="$class">
+        <xsl:attribute name="class">
+          <xsl:value-of select="$class" />
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:apply-templates select="@*">
+        <xsl:with-param name="element" select="$element" />
+        <xsl:with-param name="class" select="$class" />
+      </xsl:apply-templates>
+      <xsl:call-template name="listitem-insdel">
+        <xsl:with-param name="element" select="$element" />
+        <xsl:with-param name="class" select="$class" />
+      </xsl:call-template>
+    </xsl:element>
+  </xsl:template>
+<!-- If the edit attribute has been used, add a ins or del as appropriate -->
+  <xsl:template name="listitem-insdel">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- No edit attribute, just call next level -->
+      <xsl:when test="count(@edit)=0">
+        <xsl:call-template name="listitem-link">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- Edit attribute set to "deleted", create a del element -->
+      <xsl:when test="@edit='deleted'">
+        <del>
+          <xsl:apply-templates select="@*" mode="insdel">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="listitem-quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </del>
+      </xsl:when>
+<!-- Edit attribute set to "inserted", "changed", "moved", create an ins
 				-  element -->
-			<xsl:otherwise>
-				<ins>
-					<xsl:apply-templates select="@*" mode="insdel">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="listitem-quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</ins>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the cite attribute appears without edit, create a quote element -->
-	<xsl:template name="listitem-quote">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no cite attribute or edit was defined, continue to next level -->
-			<xsl:when test="(count(@cite)=0) or (count(@edit)!=0)">
-				<xsl:call-template name="listitem-link">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- Create the quote element -->
-			<xsl:otherwise>
-				<q>
-					<xsl:apply-templates select="@*" mode="quote">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="listitem-link">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</q>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the href attribute appears, make a hyperlink -->
-	<xsl:template name="listitem-link">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no href attribute appears, continue to next level -->
-			<xsl:when test="count(@href)=0">
-				<xsl:call-template name="listitem-image">
-					<xsl:with-param name="element" select="$element" />
-					<xsl:with-param name="class" select="$class" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- href has been used, so create an anchor -->
-			<xsl:otherwise>
-				<a>
-					<xsl:apply-templates select="@*" mode="link">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-					<xsl:call-template name="listitem-image">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:call-template>
-				</a>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!-- If the src attribute appears, make an image -->
-	<xsl:template name="listitem-image">
-		<xsl:param name="element" />
-		<xsl:param name="class" />
-		<xsl:choose>
-			<!-- If no src attribute appears, continue to next level -->
-			<xsl:when test="count(@src)=0">
-				<xsl:apply-templates />
-			</xsl:when>
-			<!-- src has been used, so replace with an image -->
-			<xsl:otherwise>
-				<img alt="{.}">
-					<xsl:apply-templates select="@*" mode="image">
-						<xsl:with-param name="element"
-							select="$element" />
-						<xsl:with-param name="class" select="$class" />
-					</xsl:apply-templates>
-				</img>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-
-	<!--
+      <xsl:otherwise>
+        <ins>
+          <xsl:apply-templates select="@*" mode="insdel">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="listitem-quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </ins>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the cite attribute appears without edit, create a quote element -->
+  <xsl:template name="listitem-quote">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no cite attribute or edit was defined, continue to next level -->
+      <xsl:when test="(count(@cite)=0) or (count(@edit)!=0)">
+        <xsl:call-template name="listitem-link">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- Create the quote element -->
+      <xsl:otherwise>
+        <q>
+          <xsl:apply-templates select="@*" mode="quote">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+          <xsl:call-template name="listitem-link">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:call-template>
+        </q>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the href attribute appears, make a hyperlink -->
+  <xsl:template name="listitem-link">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no href attribute appears, continue to next level -->
+      <xsl:when test="count(@href)=0">
+        <xsl:call-template name="listitem-image">
+          <xsl:with-param name="element" select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- href has been used, so create an anchor -->
+      <xsl:otherwise><a>
+        <xsl:apply-templates select="@*" mode="link">
+          <xsl:with-param name="element"
+							select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:apply-templates>
+        <xsl:call-template name="listitem-image">
+          <xsl:with-param name="element"
+							select="$element" />
+          <xsl:with-param name="class" select="$class" />
+        </xsl:call-template></a>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- If the src attribute appears, make an image -->
+  <xsl:template name="listitem-image">
+    <xsl:param name="element" />
+    <xsl:param name="class" />
+    <xsl:choose>
+<!-- If no src attribute appears, continue to next level -->
+      <xsl:when test="count(@src)=0">
+        <xsl:apply-templates />
+      </xsl:when>
+<!-- src has been used, so replace with an image -->
+      <xsl:otherwise>
+        <img alt="{.}">
+          <xsl:apply-templates select="@*" mode="image">
+            <xsl:with-param name="element"
+							select="$element" />
+            <xsl:with-param name="class" select="$class" />
+          </xsl:apply-templates>
+        </img>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!--
 		- XHTML Structure Module
 	-->
-	<!-- Add our Subversion/CVS Id to the root element -->
-	<xsl:template match="html:html">
-		<xsl:comment>
+<!-- Add our Subversion/CVS Id to the root element -->
+  <xsl:template match="html:html">
+    <xsl:comment>
 			$Id: xhtml2html.xslt 127 2004-11-14 03:06:21Z etherealwake $
 		</xsl:comment>
-		<html>
-			<xsl:apply-templates select="@*" />
-			<xsl:apply-templates />
-		</html>
-	</xsl:template>
-	<!-- Specify namespace for metadata (if not using schema.X links) -->
-	<xsl:template match="html:html/@profile">
-		<xsl:attribute name="profile">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-	<!-- Add a generator tag to the head section -->
-	<xsl:template match="html:head">
-		<head>
-			<xsl:apply-templates select="@*" />
-			<meta http-equiv="Content-Type"
+    <html>
+      <xsl:apply-templates select="@*" />
+      <xsl:apply-templates />
+    </html>
+  </xsl:template>
+<!-- Specify namespace for metadata (if not using schema.X links) -->
+  <xsl:template match="html:html/@profile">
+    <xsl:attribute name="profile">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- Add a generator tag to the head section -->
+  <xsl:template match="html:head">
+    <head>
+      <xsl:apply-templates select="@*" />
+      <meta http-equiv="Content-Type"
 				content="text/html; charset=utf-8" />
-			<xsl:apply-templates />
-			<xsl:if test="count(html:meta[@name='generator'])=0">
-				<meta name="generator"
+      <xsl:apply-templates />
+      <xsl:if test="count(html:meta[@name='generator'])=0">
+        <meta name="generator"
 					content="Ethereal Wake XHTML2 to XHTML1 XSLT" />
-			</xsl:if>
-		</head>
-	</xsl:template>
-	<!-- <title> and <body> are pretty much copied as is -->
-	<xsl:template match="html:title|html:body">
-		<xsl:element name="{local-name()}">
-			<xsl:apply-templates select="@*" />
-			<xsl:apply-templates />
-		</xsl:element>
-	</xsl:template>
-
-	<!--
+      </xsl:if>
+    </head>
+  </xsl:template>
+<!-- <title> and <body> are pretty much copied as is -->
+  <xsl:template match="html:title|html:body">
+    <xsl:element name="{local-name()}">
+      <xsl:apply-templates select="@*" />
+      <xsl:apply-templates />
+    </xsl:element>
+  </xsl:template>
+<!--
 		- XHTML Block Text Module
 	-->
-	<!-- Handle the elements practically unchanged since XHTML 1.0 -->
-	<xsl:template
+<!-- Handle the elements practically unchanged since XHTML 1.0 -->
+  <xsl:template
 		match="html:address|html:blockquote|html:div|html:hr
     |html:pre|html:hr">
-		<xsl:call-template name="block">
-			<xsl:with-param name="element" select="local-name(.)" />
-		</xsl:call-template>
-	</xsl:template>
-	<!-- In XHTML 2.0, paragraphs are a bit more sophisticated than in 1.X -->
-	<xsl:template match="html:p">
-		<xsl:choose>
-			<!-- If we have XHTML 1.0 block children, make us a div -->
-			<xsl:when
+    <xsl:call-template name="block">
+      <xsl:with-param name="element" select="local-name(.)" />
+    </xsl:call-template>
+  </xsl:template>
+<!-- In XHTML 2.0, paragraphs are a bit more sophisticated than in 1.X -->
+  <xsl:template match="html:p">
+    <xsl:choose>
+<!-- If we have XHTML 1.0 block children, make us a div -->
+      <xsl:when
 				test="count(html:ul|html:ol|html:nl|html:dl|html:blockcode
       |html:blockquote|html:pre|html:table)&gt;0">
-				<xsl:call-template name="block">
-					<xsl:with-param name="element" select="'div'" />
-					<xsl:with-param name="class" select="'p'" />
-				</xsl:call-template>
-			</xsl:when>
-			<!-- If no block children, be a traditional paragraph -->
-			<xsl:otherwise>
-				<xsl:call-template name="block">
-					<xsl:with-param name="element" select="'p'" />
-				</xsl:call-template>
-			</xsl:otherwise>
-		</xsl:choose>
-	</xsl:template>
-	<!-- We will treat sections as simple <div>s of class section -->
-	<xsl:template match="html:section">
-		<xsl:call-template name="block">
-			<xsl:with-param name="element" select="'div'" />
-			<xsl:with-param name="class" select="'section'" />
-		</xsl:call-template>
-	</xsl:template>
-	<!-- <h> gets mapped to a h# based on how many parent sections -->
-	<xsl:template match="html:h">
-		<!-- Count the number of sections -->
-		<xsl:variable name="levelbase">
-			<xsl:value-of
+        <xsl:call-template name="block">
+          <xsl:with-param name="element" select="'div'" />
+          <xsl:with-param name="class" select="'p'" />
+        </xsl:call-template>
+      </xsl:when>
+<!-- If no block children, be a traditional paragraph -->
+      <xsl:otherwise>
+        <xsl:call-template name="block">
+          <xsl:with-param name="element" select="'p'" />
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- We will treat sections as simple <div>s of class section -->
+  <xsl:template match="html:section">
+    <xsl:call-template name="block">
+      <xsl:with-param name="element" select="'div'" />
+      <xsl:with-param name="class" select="'section'" />
+    </xsl:call-template>
+  </xsl:template>
+<!-- <h> gets mapped to a h# based on how many parent sections -->
+  <xsl:template match="html:h">
+<!-- Count the number of sections -->
+    <xsl:variable name="levelbase">
+      <xsl:value-of
 				select="count(ancestor::html:section)+$xhtml-heading" />
-		</xsl:variable>
-		<!-- Limit the heading element to h6 -->
-		<xsl:variable name="level">
-			<xsl:choose>
-				<xsl:when test="$levelbase &gt; 6">6</xsl:when>
-				<xsl:otherwise>
-					<xsl:value-of select="$levelbase" />
-				</xsl:otherwise>
-			</xsl:choose>
-		</xsl:variable>
-		<!-- Create the appropriate element -->
-		<xsl:call-template name="block">
-			<xsl:with-param name="element" select="concat('h',$level)" />
-		</xsl:call-template>
-	</xsl:template>
-
-	<!--
+    </xsl:variable>
+<!-- Limit the heading element to h6 -->
+    <xsl:variable name="level">
+      <xsl:choose>
+        <xsl:when test="$levelbase &gt; 6">6</xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$levelbase" />
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+<!-- Create the appropriate element -->
+    <xsl:call-template name="block">
+      <xsl:with-param name="element" select="concat('h',$level)" />
+    </xsl:call-template>
+  </xsl:template>
+<!--
 		- XHTML Inline Text Module
 	-->
-	<!-- Handle the elements practically unchanged since XHTML 1.0 -->
-	<xsl:template
+<!-- Handle the elements practically unchanged since XHTML 1.0 -->
+  <xsl:template
 		match="html:abbr|html:cite|html:code|html:dfn|html:em
     |html:kbd|html:samp|html:span|html:strong|html:sub|html:sup
     |html:var">
-		<xsl:call-template name="inline">
-			<xsl:with-param name="element" select="local-name()" />
-		</xsl:call-template>
-	</xsl:template>
-	<!-- quote maps to the 'q' element from XHTML 1.0 -->
-	<xsl:template match="html:quote">
-		<xsl:call-template name="inline">
-			<xsl:with-param name="element" select="'q'" />
-		</xsl:call-template>
-	</xsl:template>
-	<!-- <l> is a more complex version of HTML's <br> -->
-	<xsl:template match="html:l">
-		<xsl:call-template name="inline">
-			<xsl:with-param name="element" select="'br'" />
-		</xsl:call-template>
-	</xsl:template>
-
-	<!--
+    <xsl:call-template name="inline">
+      <xsl:with-param name="element" select="local-name()" />
+    </xsl:call-template>
+  </xsl:template>
+<!-- quote maps to the 'q' element from XHTML 1.0 -->
+  <xsl:template match="html:quote">
+    <xsl:call-template name="inline">
+      <xsl:with-param name="element" select="'q'" />
+    </xsl:call-template>
+  </xsl:template>
+<!-- <l> is a more complex version of HTML's <br> -->
+  <xsl:template match="html:l">
+    <xsl:call-template name="inline">
+      <xsl:with-param name="element" select="'br'" />
+    </xsl:call-template>
+  </xsl:template>
+<!--
 		- XHTML Hypertext Module
 	-->
-	<xsl:template match="html:a">
-		<xsl:call-template name="inline">
-			<xsl:with-param name="element" select="'a'" />
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template match="html:a/@id" mode="link">
-		<xsl:attribute name="id">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-		<xsl:attribute name="name">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!--
+  <xsl:template match="html:a">
+    <xsl:call-template name="inline">
+      <xsl:with-param name="element" select="'a'" />
+    </xsl:call-template>
+  </xsl:template>
+  <xsl:template match="html:a/@id" mode="link">
+    <xsl:attribute name="id">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+    <xsl:attribute name="name">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!--
 		- XHTML List Module
 	-->
-	<xsl:template match="html:ul|html:ol|html:dl">
-		<xsl:call-template name="list">
-			<xsl:with-param name="element" select="local-name(.)" />
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template match="html:li|html:dt|html:dd">
-		<xsl:call-template name="listitem">
-			<xsl:with-param name="element" select="local-name(.)" />
-		</xsl:call-template>
-	</xsl:template>
-
-	<!--
+  <xsl:template match="html:ul|html:ol|html:dl">
+    <xsl:call-template name="list">
+      <xsl:with-param name="element" select="local-name(.)" />
+    </xsl:call-template>
+  </xsl:template>
+  <xsl:template match="html:li|html:dt|html:dd">
+    <xsl:call-template name="listitem">
+      <xsl:with-param name="element" select="local-name(.)" />
+    </xsl:call-template>
+  </xsl:template>
+<!--
 		- XHTML Linking Module
 	-->
-	<xsl:template match="html:link">
-		<link>
-			<xsl:apply-templates select="@*" mode="link" />
-		</link>
-	</xsl:template>
-	<xsl:template match="html:link/@media" mode="link">
-		<xsl:attribute name="media">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-	<xsl:template match="html:link/@xml:lang" mode="link">
-		<xsl:attribute name="hreflang">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!--
+  <xsl:template match="html:link"><link>
+    <xsl:apply-templates select="@*" mode="link" /></link>
+  </xsl:template>
+  <xsl:template match="html:link/@media" mode="link">
+    <xsl:attribute name="media">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+  <xsl:template match="html:link/@xml:lang" mode="link">
+    <xsl:attribute name="hreflang">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!--
 		- XHTML Metainformation Module
 	-->
-	<xsl:template match="html:meta">
-		<meta>
-			<xsl:attribute name="content">
-				<xsl:value-of select="." />
-			</xsl:attribute>
-			<xsl:apply-templates select="@*" />
-		</meta>
-	</xsl:template>
-	<xsl:template match="html:meta/@name">
-		<xsl:attribute name="name">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!--
+  <xsl:template match="html:meta">
+    <meta>
+      <xsl:attribute name="content">
+        <xsl:value-of select="." />
+      </xsl:attribute>
+      <xsl:apply-templates select="@*" />
+    </meta>
+  </xsl:template>
+  <xsl:template match="html:meta/@name">
+    <xsl:attribute name="name">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!--
 		- XHTML Object Module
 	-->
-	<!--
+<!--
 		- Ruby Module
 	-->
-	<!--
+<!--
 		- XHTML Scripting Module
 	-->
-	<!--
+<!--
 		- XHTML Style Sheet Module
 	-->
-	<xsl:template match="html:style">
-		<style>
-			<xsl:apply-templates select="@*" />
-			<xsl:apply-templates />
-		</style>
-	</xsl:template>
-	<xsl:template match="html:style/@media">
-		<xsl:attribute name="media">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-
-	<!--
+  <xsl:template match="html:style">
+    <style>
+      <xsl:apply-templates select="@*" />
+      <xsl:apply-templates />
+    </style>
+  </xsl:template>
+  <xsl:template match="html:style/@media">
+    <xsl:attribute name="media">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!--
 		- XHTML Tables Module
 	-->
-	<!-- Some table elements are pretty much left unchanged -->
-	<xsl:template
+<!-- Some table elements are pretty much left unchanged -->
+  <xsl:template
 		match="html:caption|html:col|html:colgroup|html:thead
     |html:tfoot|html:tbody|html:tr">
-		<xsl:element name="{local-name()}">
-			<xsl:apply-templates select="@*" />
-			<xsl:apply-templates />
-		</xsl:element>
-	</xsl:template>
-	<xsl:template match="html:col/@span|html:colspan/@span">
-		<xsl:attribute name="span">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-	<!-- td and th are pretty much as they were -->
-	<xsl:template match="html:td|html:th">
-		<xsl:call-template name="listitem">
-			<xsl:with-param name="element" select="local-name()" />
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template
+    <xsl:element name="{local-name()}">
+      <xsl:apply-templates select="@*" />
+      <xsl:apply-templates />
+    </xsl:element>
+  </xsl:template>
+  <xsl:template match="html:col/@span|html:colspan/@span">
+    <xsl:attribute name="span">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- td and th are pretty much as they were -->
+  <xsl:template match="html:td|html:th">
+    <xsl:call-template name="listitem">
+      <xsl:with-param name="element" select="local-name()" />
+    </xsl:call-template>
+  </xsl:template>
+  <xsl:template
 		match="html:td/@abbr|html:td/@axis|html:td/@colspan
     |html:td/@headers|html:td/@rowspan|html:td/@scope|html:th/@abbr
     |html:th/@axis|html:th/@colspan|html:th/@headers|html:th/@rowspan
     |html:th/@scope">
-		<xsl:attribute name="{local-name()}">
-			<xsl:value-of select="." />
-		</xsl:attribute>
-	</xsl:template>
-	<!-- The table element acts a lot like a list -->
-	<xsl:template match="html:table">
-		<xsl:call-template name="list">
-			<xsl:with-param name="element" select="'table'" />
-		</xsl:call-template>
-	</xsl:template>
-
+    <xsl:attribute name="{local-name()}">
+      <xsl:value-of select="." />
+    </xsl:attribute>
+  </xsl:template>
+<!-- The table element acts a lot like a list -->
+  <xsl:template match="html:table">
+    <xsl:call-template name="list">
+      <xsl:with-param name="element" select="'table'" />
+    </xsl:call-template>
+  </xsl:template>
 </xsl:stylesheet>

Modified: forrest/trunk/whiteboard/forrest2/core/src/docs/createAPlugin.html
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/docs/createAPlugin.html?view=diff&rev=527041&r1=527040&r2=527041
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/docs/createAPlugin.html (original)
+++ forrest/trunk/whiteboard/forrest2/core/src/docs/createAPlugin.html Mon Apr  9 23:05:03 2007
@@ -15,72 +15,77 @@
   limitations under the License.
 -->
 <html>
-<body>
-
-<h1>How to create an input plugin</h1>
-
-<p>The first thing to do when creating an input plugin is to decide if
-you can best achieve your objectives using XSLT or Java. Generally, if
-your input document is an XML document then you should use XSLT, 
-otherwise you will need to use Java.</p>
-
-<h2>Creating an XSLT Plugin</h2>
-
-<p>Creating an XSLT plugin is a matter of creating an XSLT stylesheet
-and registering a copy of the XSLTInputPlugin that will use your
-stylesheet.</p>
-
-<p>An XSLT plugin has two defining properties. One is the URL
-of the XSLT file to be used, the other is a property that defines
-what type of document can be processed by this plugin.</p>
-
-<h3>Register the Plugin</h3>
-
-<p>Plugins are registered with Forrest2 using the Spring Framework.
-This means that you need to add an entry to the forrestContext.xml
-file, such as:</p>
-
+  <body>
+    <h1>How to create an input plugin</h1>
+    <p>
+      The first thing to do when creating an input plugin is to decide if you
+      can best achieve your objectives using XSLT or Java. Generally, if your
+      input document is an XML document then you should use XSLT, otherwise you
+      will need to use Java.
+    </p>
+    <h2>Creating an XSLT Plugin</h2>
+    <p>
+      Creating an XSLT plugin is a matter of creating an XSLT stylesheet and
+      registering a copy of the XSLTInputPlugin that will use your stylesheet.
+    </p>
+    <p>
+      An XSLT plugin has two defining properties. One is the URL of the XSLT
+      file to be used, the other is a property that defines what type of
+      document can be processed by this plugin.
+    </p>
+    <h3>Register the Plugin</h3>
+    <p>
+      Plugins are registered with Forrest2 using the Spring Framework. This
+      means that you need to add an entry to the forrestContext.xml file, such
+      as:
+    </p>
 <![CDATA[  
 <bean id="org.apache.forrest.example.affiliateProductCatalogue.TradeDoublerProductFeed"
 		class="org.apache.forrest.core.plugin.XSLTInputPlugin">
 		<property name="xsltURL"
 			value="/src/xslt/tradeDoublerFeed-to-internal.xsl" />
 </bean>]]>
-
-<p>This input plugin will take an XML source document and process it with the indicated
-stylesheet. The result is expected to be an document using the internal Forrest2 format.</p>
-
-<h2>Creating an Java Plugin</h2>
-
-<h3>Create a new java project to house your plugin</h3>
-
-<h3>Create a class file that will be the controller for the plugin.</h3>
-<p>This should extend the abstact class <br/>
-	org.apache.forrest.core.plugin.AbstractInputPlugin</p>
-
-<p>You must implement the following method:</p>
-<div class="code"><pre>
+    <p>
+      This input plugin will take an XML source document and process it with the
+      indicated stylesheet. The result is expected to be an document using the
+      internal Forrest2 format.
+    </p>
+    <h2>Creating an Java Plugin</h2>
+    <h3>Create a new java project to house your plugin</h3>
+    <h3>Create a class file that will be the controller for the plugin.</h3>
+    <p>
+      This should extend the abstact class
+      <br/>
+      org.apache.forrest.core.plugin.AbstractInputPlugin
+    </p>
+    <p>
+      You must implement the following method:
+    </p>
+    <div class="code">
+      <pre>
 	public IDocument process(IDocument doc)
-</pre></div>
-
-<p>The process method should create an instance of an 
-	org.apache.forrest.core.document.InternalDocument by performing whatever
-	process is required to generate an internal Forrest document from the
-	source docuemnt.</p>
-
-<h3>Register the Plugin</h3>
-
-<p>Plugins are registered with Forrest2 using the Spring Framework.
-This means that you need to add an entry to the forrestContext.xml
-file, such as:</p>
-
+</pre>
+    </div>
+    <p>
+      The process method should create an instance of an
+      org.apache.forrest.core.document.InternalDocument by performing whatever
+      process is required to generate an internal Forrest document from the
+      source docuemnt.
+    </p>
+    <h3>Register the Plugin</h3>
+    <p>
+      Plugins are registered with Forrest2 using the Spring Framework. This
+      means that you need to add an entry to the forrestContext.xml file, such
+      as:
+    </p>
 <![CDATA[  <bean id="helloWorldInput"
     class="org.apache.forrest.test.core.plugins.input.HelloWorldInputPlugin"/>]]>
-
-<p>The Forrest controller will read all the files that it finds in the classpath that
-match this naming convention.</p>
-
-<pre><![CDATA[
+    <p>
+      The Forrest controller will read all the files that it finds in the
+      classpath that match this naming convention.
+    </p>
+    <pre>
+<![CDATA[
 
 
 
@@ -128,6 +133,7 @@
 ==============================
 How to create an Output Plugin
 ==============================
-]]></pre>
-</body>
+]]>
+    </pre>
+  </body>
 </html>