You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by lm...@apache.org on 2005/09/07 09:56:32 UTC

svn commit: r279270 [2/3] - in /incubator/woden/Site: ./ build/site/images/ build/site/skin/ build/site/skin/images/ build/site/skin/translations/ build/tmp/ build/tmp/cocoon-work/ build/tmp/cocoon-work/cache-dir/ build/webapp/ build/webapp/WEB-INF/ bu...

Added: incubator/woden/Site/build/tmp/resources.xmap
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/build/tmp/resources.xmap?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/build/tmp/resources.xmap (added)
+++ incubator/woden/Site/build/tmp/resources.xmap Wed Sep  7 00:55:30 2005
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2002-2004 The Apache Software Foundation or its licensors,
+  as applicable.
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- ============================================================ -->
+<!-- Plugin Sitemap                                               -->
+<!--                                                              -->
+<!-- This sitemap includes all enabled plugins in the generation  -->
+<!-- process. It is mounted from the main Forrest sitemap after   -->
+<!-- any project specific sitemap but before the default Forrest  -->
+<!-- matchers. This enables plugins to override or extend default -->
+<!-- Forrest behaviour whilst individual projects can override    -->
+<!-- or extend the plugins behaviour.                             -->
+<!-- ============================================================ -->
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+  <map:pipelines>
+    <map:pipeline>
+    <map:select type="exists">
+<map:when test="{forrest:plugins}/org.apache.forrest.plugin.input.projectInfo/resources.xmap">
+<map:mount uri-prefix="" src="{forrest:plugins}/org.apache.forrest.plugin.input.projectInfo/resources.xmap" check-reload="yes" pass-through="true"/>
+</map:when>
+</map:select>
+</map:pipeline>
+  </map:pipelines>
+</map:sitemap>

Added: incubator/woden/Site/forrest-targets.ent
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/forrest-targets.ent?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/forrest-targets.ent (added)
+++ incubator/woden/Site/forrest-targets.ent Wed Sep  7 00:55:30 2005
@@ -0,0 +1,174 @@
+<!--
+This build.xml snippet contains Forrest targets for Ant 1.5+.  It checks that
+the user has set ${forrest.home}, either in one of:
+  build.properties
+  project.properties
+  ant.properties
+  .ant.properties
+or with the FORREST_HOME environment variable, and prints an informative error
+message if not found.
+
+Usage:
+1) Copy this file to somewhere in your project.
+2) Add the following to the top of your project's Ant build.xml script
+(adjusting the path):
+
+  <!DOCTYPE project [
+    <!ENTITY forrest-targets SYSTEM "file:./forrest-targets.ent">
+  ]>
+
+3) Before the closing '</project>' in your build.xml, add this:
+
+  &forrest-targets;
+  
+This is like expanding a macro: it pulls in the contents of this file.
+
+A minimal build.xml would thus be:
+
+<!DOCTYPE project [
+<!ENTITY forrest-targets SYSTEM "file:./forrest-targets.ent">
+]>
+
+<project default="site">
+    &forrest-targets;
+</project>
+-->
+
+  <target name="site" depends="forrest.init" description="Generates static HTML documentation">
+    <ant antfile="${forrest.home}/forrest.antproxy.xml" target="site"/>
+  </target>
+
+  <target name="webapp" depends="forrest.init" description="Generates an unpackaged webapp of the website">
+    <ant antfile="${forrest.home}/forrest.antproxy.xml" target="webapp"/>
+  </target>
+
+  <target name="war" depends="forrest.init" description="Generates a .war file containing the website">
+    <ant antfile="${forrest.home}/forrest.antproxy.xml" target="war"/>
+  </target>
+
+  <target name="validate" depends="forrest.init" description="Validates XML documentation files">
+    <ant antfile="${forrest.home}/forrest.antproxy.xml" target="validate"/>
+  </target>
+
+  <target name="forrest.init" depends="forrest.sethome, forrest.home.defined"/>
+
+  <target name="forrest.sethome" depends="forrest.loadenv,
+  forrest.checkenv, forrest.checkhome, forrest.check-build.properties,
+  forrest.check-project.properties, forrest.check-ant.properties,
+  forrest.check-.ant.properties"/>
+
+  <target name="forrest.loadenv" unless="forrest.home.present">
+    <property environment="env"/>
+    <echo level="verbose">Forrest: Got ${env.FORREST_HOME}</echo>
+  </target>
+
+  <target name="forrest.checkenv" if="env.FORREST_HOME">
+    <echo level="verbose">Found $FORREST_HOME..</echo>
+    <property name="forrest.home" location="${env.FORREST_HOME}"/>
+    <echo level="verbose">forrest.home set to ${forrest.home}</echo>
+    <available file="${forrest.home}" type="dir" property="forrest.home.present"/>
+  </target>
+
+
+  <target name="forrest.checkhome">
+    <available file="${forrest.home}" type="dir" property="forrest.home.present"/>
+    <available file="build.properties" type="file" property="build.properties.present"/>
+    <available file="project.properties" type="file" property="project.properties.present"/>
+    <available file="ant.properties" type="file" property="ant.properties.present"/>
+    <available file=".ant.properties" type="file" property=".ant.properties.present"/>
+  </target>
+
+  <!-- No we can't extract the commonalities below into an antcall'ed target,
+  because it wouldn't be able to set forrest.home -->
+  <target name="forrest.check-build.properties" unless="forrest.home.present"
+  if="build.properties.present">
+    <echo level="verbose">Forrest: Checking build.properties..</echo>
+    <loadproperties srcfile="build.properties">
+      <filterchain>
+        <linecontains>
+          <contains value="forrest.home"/>
+        </linecontains>
+      </filterchain>
+    </loadproperties>
+    <available file="${forrest.home}" type="dir" property="forrest.home.present"/>
+
+  </target>
+
+  <target name="forrest.check-project.properties" unless="forrest.home.present"
+  if="project.properties.present">
+    <echo level="verbose">Forrest: Checking project.properties..</echo>
+    <loadproperties srcfile="project.properties">
+      <filterchain>
+        <linecontains>
+          <contains value="forrest.home"/>
+        </linecontains>
+      </filterchain>
+    </loadproperties>
+    <available file="${forrest.home}" type="dir" property="forrest.home.present"/>
+  </target>
+
+  <target name="forrest.check-ant.properties" unless="forrest.home.present"
+  if="ant.properties.present">
+    <echo level="verbose">Forrest: Checking ant.properties..</echo>
+    <loadproperties srcfile="ant.properties">
+      <filterchain>
+        <linecontains>
+          <contains value="forrest.home"/>
+        </linecontains>
+      </filterchain>
+    </loadproperties>
+    <available file="${forrest.home}" type="dir" property="forrest.home.present"/>
+  </target>
+
+  <target name="forrest.check-.ant.properties" unless="forrest.home.present"
+  if=".ant.properties.present">
+    <echo level="verbose">Forrest: Checking .ant.properties..</echo>
+    <loadproperties srcfile=".ant.properties">
+      <filterchain>
+        <linecontains>
+          <contains value="forrest.home"/>
+        </linecontains>
+      </filterchain>
+    </loadproperties>
+    <available file="${forrest.home}" type="dir" property="forrest.home.present"/>
+  </target>
+
+  <target name="forrest.home.defined" depends="forrest.sethome" unless="forrest.home.present">
+    <property name="path" value="${user.home}/xml-forrest/build/dist/shbat"/>
+    <pathconvert targetos="windows" property="winpath">
+      <path>
+        <pathelement location="${path}"/>
+      </path>
+    </pathconvert>
+    <pathconvert targetos="unix" property="unixpath">
+      <path>
+        <pathelement
+          location="${path}"/>
+      </path>
+    </pathconvert>
+
+    <echo>
+      ----------------------------------------------
+      To run this target, you need Forrest installed.
+      Please do the following:
+
+      export CVSROOT=:pserver:anoncvs@cvs.apache.org:/home/cvspublic
+      cvs checkout xml-forrest
+      cd xml-forrest
+      build      (Windows)
+      ./build.sh (Unix)
+
+      Then either:
+
+      - Set FORREST_HOME as the Forrest build instructions describe
+      - Create a build.properties, with the forrest.home property pointing to
+        the forrest shbat directory, eg:
+
+        forrest.home=${winpath}  (Windows)
+        forrest.home=${unixpath}  (Unix)
+
+        (adjusting the path according to where your xml-forrest is)
+      ----------------------------------------------
+    </echo>
+    <fail message="Need to define $${forrest.home}"/>
+  </target>

Added: incubator/woden/Site/src/documentation/classes/CatalogManager.properties
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/classes/CatalogManager.properties?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/classes/CatalogManager.properties (added)
+++ incubator/woden/Site/src/documentation/classes/CatalogManager.properties Wed Sep  7 00:55:30 2005
@@ -0,0 +1,37 @@
+# Copyright 2002-2004 The Apache Software Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#=======================================================================
+# CatalogManager.properties
+#
+# This is the default properties file for Apache Forrest.
+# This facilitates local configuration of application-specific catalogs.
+#
+# See the Apache Forrest documentation:
+# http://forrest.apache.org/docs/your-project.html
+# http://forrest.apache.org/docs/validation.html
+
+# verbosity ... level of messages for status/debug
+# See forrest/src/core/context/WEB-INF/cocoon.xconf
+
+# catalogs ... list of additional catalogs to load
+#  (Note that Apache Forrest will automatically load its own default catalog
+#  from src/core/context/resources/schema/catalog.xcat)
+# use full pathnames
+# pathname separator is always semi-colon (;) regardless of operating system
+# directory separator is always slash (/) regardless of operating system
+#
+#catalogs=/home/me/forrest/my-site/src/documentation/resources/schema/catalog.xcat
+catalogs=
+

Added: incubator/woden/Site/src/documentation/skins/common/images/README.txt
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/images/README.txt?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/images/README.txt (added)
+++ incubator/woden/Site/src/documentation/skins/common/images/README.txt Wed Sep  7 00:55:30 2005
@@ -0,0 +1,3 @@
+This directory is currently useless, as the sitemap only looks in
+skins/{forrest:skin}, so files must be kept in synch manually until this is
+fixed.

Added: incubator/woden/Site/src/documentation/skins/common/images/built-with-forrest-button.png
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/images/built-with-forrest-button.png?rev=279270&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/woden/Site/src/documentation/skins/common/images/built-with-forrest-button.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/woden/Site/src/documentation/skins/common/images/pdfdoc.gif
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/images/pdfdoc.gif?rev=279270&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/woden/Site/src/documentation/skins/common/images/pdfdoc.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/woden/Site/src/documentation/skins/common/images/printer.gif
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/images/printer.gif?rev=279270&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/woden/Site/src/documentation/skins/common/images/printer.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/woden/Site/src/documentation/skins/common/images/spacer.gif
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/images/spacer.gif?rev=279270&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/woden/Site/src/documentation/skins/common/images/spacer.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/woden/Site/src/documentation/skins/common/images/valid-html401.png
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/images/valid-html401.png?rev=279270&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/woden/Site/src/documentation/skins/common/images/valid-html401.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/woden/Site/src/documentation/skins/common/images/xmldoc.gif
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/images/xmldoc.gif?rev=279270&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/woden/Site/src/documentation/skins/common/images/xmldoc.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/woden/Site/src/documentation/skins/common/xslt/fo/document2fo.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/fo/document2fo.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/fo/document2fo.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/fo/document2fo.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,705 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version="1.0">
+
+  <xsl:output method="xml"/>
+  <xsl:param name="numbersections" select="'true'"/>
+
+  <!-- Section depth at which we stop numbering and just indent -->
+  <xsl:param name="numbering-max-depth" select="'3'"/>
+  <xsl:param name="ctxbasedir" select="."/>
+  <xsl:param name="xmlbasedir"/>
+  <xsl:include href="pdfoutline.xsl"/>
+  <xsl:include href="footerinfo.xsl"/>
+
+  <xsl:template match="/">
+    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+      <fo:layout-master-set>
+
+        <fo:simple-page-master master-name="first-page"
+          page-height="11in" 
+          page-width="8.5in"
+          margin-top="1in" 
+          margin-bottom="1in" 
+          margin-left="1.25in" 
+          margin-right="1in">
+          <fo:region-body
+            margin-top="0.5in"
+            margin-bottom=".5in"/>
+          <fo:region-after 
+            region-name="first-footer"
+            extent=".5in"
+            display-align="before"/>
+        </fo:simple-page-master>
+
+        <fo:simple-page-master master-name="even-page"
+          page-height="11in" 
+          page-width="8.5in"
+          margin-top="1in" 
+          margin-bottom="1in" 
+          margin-left="1.25in" 
+          margin-right="1in">
+          <fo:region-before
+            region-name="even-header"
+            extent="0.5in"
+            border-bottom="0.5pt solid"/>
+          <fo:region-body
+            margin-top="0.5in"
+            margin-bottom=".5in"/>
+          <fo:region-after 
+            region-name="even-footer"
+            extent=".5in"
+            display-align="before"/>
+        </fo:simple-page-master>
+
+        <fo:simple-page-master master-name="odd-page"
+          page-height="11in" 
+          page-width="8.5in"
+          margin-top="1in" 
+          margin-bottom="1in" 
+          margin-left="1.25in" 
+          margin-right="1in">
+          <fo:region-before
+            region-name="odd-header"
+            extent="0.5in"
+            border-bottom="0.5pt solid"/>
+          <fo:region-body
+            margin-top="0.5in"
+            margin-bottom=".5in"/>
+          <fo:region-after 
+            region-name="odd-footer"
+            extent=".5in"
+            display-align="before"/>
+        </fo:simple-page-master>
+
+        <fo:page-sequence-master master-name="book">
+          <fo:repeatable-page-master-alternatives>
+            <fo:conditional-page-master-reference
+              page-position="first"
+              master-reference="first-page"/>
+            <fo:conditional-page-master-reference
+              odd-or-even="odd"
+              master-reference="odd-page"/>
+            <fo:conditional-page-master-reference
+              odd-or-even="even"
+              master-reference="even-page"/>
+          </fo:repeatable-page-master-alternatives>
+        </fo:page-sequence-master>
+      </fo:layout-master-set>
+
+      <xsl:apply-templates select="/document" mode="outline"/>
+
+      <fo:page-sequence master-reference="book">
+        <fo:title><xsl:value-of select="document/header/title"/></fo:title>
+        <xsl:apply-templates/>
+      </fo:page-sequence>
+      
+    </fo:root>
+  </xsl:template>
+
+  <xsl:template match="document">
+    <fo:title><xsl:value-of select="header/title"/></fo:title>
+    
+    <fo:static-content flow-name="first-footer">
+      <fo:block
+        border-top="0.25pt solid"
+        padding-before="6pt"
+        text-align="center">
+        <xsl:apply-templates select="footer"/>
+      </fo:block>
+      <fo:block
+        text-align="start">
+        Page <fo:page-number/>
+      </fo:block>
+      <xsl:call-template name="info"/>
+    </fo:static-content>
+
+    <fo:static-content flow-name="even-header">
+      <fo:block
+        text-align="end"
+        font-style="italic">
+        <xsl:value-of select="header/title"/>
+      </fo:block>
+    </fo:static-content>
+
+    <fo:static-content flow-name="even-footer">
+      <fo:block
+        border-top="0.25pt solid"
+        padding-before="6pt"
+        text-align="center">
+        <xsl:apply-templates select="footer"/>
+      </fo:block>
+      <fo:block
+        text-align="end">
+        Page <fo:page-number/>
+      </fo:block>
+      <xsl:call-template name="info"/>
+    </fo:static-content>
+
+    <fo:static-content flow-name="odd-header">
+      <fo:block
+        text-align="start"
+        font-style="italic">
+        <xsl:value-of select="header/title"/>
+      </fo:block>
+    </fo:static-content>
+    
+    <fo:static-content flow-name="odd-footer">
+      <fo:block
+        border-top="0.25pt solid"
+        padding-before="6pt"
+        text-align="center">
+        <xsl:apply-templates select="footer"/>
+      </fo:block>
+      <fo:block
+        text-align="start">
+        Page <fo:page-number/>
+      </fo:block>
+      <xsl:call-template name="info"/>
+    </fo:static-content>
+
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block
+        padding-before="24pt"
+        padding-after="24pt"
+        font-size="24pt"
+        font-weight="bold"
+        id="{generate-id()}">
+
+        <xsl:value-of select="header/title"/>
+      </fo:block>
+      
+      <fo:block
+        text-align="justify"
+        padding-before="18pt"
+        padding-after="18pt">
+        <xsl:apply-templates/>
+      </fo:block>
+    </fo:flow>
+  </xsl:template>
+  
+  <xsl:template match="abstract">
+    <fo:block
+      font-size="12pt"
+      text-align="center"
+      space-before="20pt"
+      space-after="25pt"
+      width="7.5in"
+      font-family="serif"
+      font-style="italic">
+      <xsl:apply-templates/>
+    </fo:block>
+  </xsl:template>
+  
+  <xsl:template match="notice">
+    <fo:block
+      font-size="10pt"
+      text-align="left"
+      space-before="20pt"
+      width="7.5in"
+      font-family="serif"
+      border-top="0.25pt solid"
+      border-bottom="0.25pt solid"
+      padding-before="6pt"
+      padding-after="6pt">
+      NOTICE: <xsl:apply-templates/>
+    </fo:block>
+  </xsl:template>
+
+  <xsl:template match="anchor">
+    <fo:block id="{@id}"/>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <xsl:template match="section">
+    
+    <xsl:param name="level">0</xsl:param>
+
+    <xsl:variable name="size">
+      <xsl:choose>
+        <xsl:when test="number($level) = 1">
+          <xsl:value-of select="14"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="12"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    
+    <fo:block
+      font-family="serif"
+      font-size="{$size}pt"
+      font-weight="bold"
+      space-before="12pt"
+      space-after="4pt">
+
+      <xsl:attribute name="id">
+        <xsl:choose>
+          <xsl:when test="normalize-space(@id)!=''">
+            <xsl:value-of select="@id"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="generate-id()"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+
+      <xsl:if test="$numbersections = 'true' and number($level) &lt; $numbering-max-depth+1">
+        <xsl:number format="1.1.1.1.1.1.1" count="section" level="multiple"/>
+        <xsl:text>. </xsl:text>
+      </xsl:if>
+
+      <!-- For sections 4  or more nestings deep, indent instead of number -->
+      <xsl:if test="number($level) &gt; $numbering-max-depth+1">
+        <xsl:attribute name="start-indent">
+          <xsl:value-of select="4+number($level)"/><xsl:text>pt</xsl:text>
+        </xsl:attribute>
+      </xsl:if>
+
+      <xsl:value-of select="title"/>
+    </fo:block>
+    <xsl:apply-templates>
+      <xsl:with-param name="level" select="number($level)+1"/>
+    </xsl:apply-templates>
+    
+  </xsl:template>
+  
+  <xsl:template match="title">
+    <!-- do nothing as titles are handled in their parent templates -->
+  </xsl:template>
+  
+  <xsl:template match="subtitle">
+    <xsl:param name="level">0</xsl:param>
+    <xsl:variable name="size" select="16-(number($level)*1.5)"/>
+
+    <fo:block
+      font-weight="bold"
+      font-size="{$size}pt">
+      <xsl:apply-templates/>
+    </fo:block>
+  </xsl:template>
+
+  <xsl:template match="authors">
+    <fo:block
+      space-before="20pt"
+      font-weight="bold"
+      font-size="9pt">
+      by
+      <xsl:for-each select="person">
+        <xsl:value-of select="@name"/>
+        <xsl:if test="not(position() = last())">, </xsl:if>
+      </xsl:for-each>
+    </fo:block>
+  </xsl:template>
+
+  <xsl:template match="p">
+    <fo:block
+      space-before="4pt"
+      space-after="4pt"
+      font-family="serif">
+      <xsl:apply-templates/>
+    </fo:block>
+  </xsl:template>
+  
+
+  <xsl:template match="source">
+    <fo:block
+      font-family="monospace"
+      font-size="10pt"
+      background-color="#f0f0f0"
+      white-space-collapse="false"
+      linefeed-treatment="preserve"
+      white-space-treatment="preserve"
+      wrap-option="no-wrap"
+      text-align="start">
+      <xsl:apply-templates/>
+    </fo:block>
+  </xsl:template>
+  
+  
+  <xsl:template match="ol|ul">
+    <fo:list-block 
+      provisional-distance-between-starts="18pt"
+      provisional-label-separation="3pt"
+      text-align="start">
+      <xsl:apply-templates/>
+    </fo:list-block>
+  </xsl:template>
+  
+  <xsl:template match="ol/li">
+    <fo:list-item>
+      <fo:list-item-label 
+        end-indent="label-end()">
+        <fo:block>
+          <xsl:number format="1."/>
+        </fo:block>
+      </fo:list-item-label>
+      <fo:list-item-body 
+        start-indent="body-start()">
+        <fo:block
+          font-family="serif">
+          <xsl:apply-templates/>
+        </fo:block>
+      </fo:list-item-body>
+    </fo:list-item>
+  </xsl:template>
+
+  <!-- Emulate browser handling of these invalid combinations that our DTD
+  unfortunately allows -->
+  <xsl:template match="ul/ul | ul/ol | ol/ul | ol/ol">
+    <fo:list-item>
+      <fo:list-item-label end-indent="label-end()">
+        <fo:block></fo:block>
+      </fo:list-item-label>
+      <fo:list-item-body start-indent="body-start()">
+        <fo:block font-family="serif">
+          <xsl:apply-templates/>
+        </fo:block>
+      </fo:list-item-body>
+    </fo:list-item>
+  </xsl:template>
+
+  <xsl:template match="ul/li">
+    <fo:list-item>
+      <fo:list-item-label end-indent="label-end()">
+        <fo:block>&#x2022;</fo:block>
+      </fo:list-item-label>
+      <fo:list-item-body start-indent="body-start()">
+        <fo:block
+          font-family="serif">
+          <xsl:apply-templates/>
+        </fo:block>
+      </fo:list-item-body>
+    </fo:list-item>
+  </xsl:template>
+  
+  <xsl:template match="dl">
+    <fo:list-block
+      provisional-distance-between-starts="18pt"
+      provisional-label-separation="3pt"
+      text-align="start">
+      <xsl:apply-templates/>
+    </fo:list-block>
+  </xsl:template>
+  
+  <xsl:template match="dt">
+    <fo:list-item>
+      <fo:list-item-label end-indent="label-end()">
+        <fo:block></fo:block>
+      </fo:list-item-label>
+      <fo:list-item-body start-indent="body-start()">
+        <fo:block
+          font-weight="bold">
+          <xsl:apply-templates/>
+        </fo:block>
+      </fo:list-item-body>
+    </fo:list-item>
+  </xsl:template>
+  
+  <xsl:template match="dd">
+    <fo:list-item>
+      <fo:list-item-label end-indent="label-end()">
+        <fo:block></fo:block>
+      </fo:list-item-label>
+      <fo:list-item-body start-indent="body-start()">
+        <fo:block>
+          <xsl:apply-templates/>
+        </fo:block>
+      </fo:list-item-body>
+    </fo:list-item>
+  </xsl:template>
+  
+  <xsl:template match="strong">
+    <fo:inline font-weight="bold"><xsl:apply-templates/></fo:inline>
+  </xsl:template>
+  
+  <xsl:template match="em">
+    <fo:inline font-style="italic"><xsl:apply-templates/></fo:inline>
+  </xsl:template>
+
+  <xsl:template match="code">
+    <fo:inline font-family="monospace"><xsl:apply-templates/></fo:inline>
+  </xsl:template>
+
+  <xsl:template match="warning">
+    <fo:block
+      margin-left="0.25in"
+      margin-right="0.25in"
+      font-weight="bold"
+      font-size="10pt"
+      font-family="serif"
+      space-before="10pt"
+      border-before-style="solid"
+      border-start-style="solid"
+      border-end-style="solid"
+      border-color="#D00000"
+      background-color="#D00000"
+      color="#ffffff">
+      <xsl:choose>
+        <xsl:when test="@label"><xsl:value-of select="@label"/></xsl:when>
+        <xsl:otherwise>Note: </xsl:otherwise>
+      </xsl:choose><xsl:value-of select="title"/>       
+    </fo:block>
+    <fo:block
+      margin-left="0.25in"
+      margin-right="0.25in"
+      font-family="serif"
+      font-size="8pt"
+      border-after-style="solid"
+      border-start-style="solid"
+      border-end-style="solid"
+      border-color="#D00000"
+      background-color="#fff0f0"
+      padding-start="3pt"
+      padding-end="3pt"
+      padding-before="3pt"
+      padding-after="3pt"
+      space-after="10pt">
+      <xsl:apply-templates/>
+    </fo:block>
+  </xsl:template>
+
+  <xsl:template match="note">
+    <fo:block
+      margin-left="0.25in"
+      margin-right="0.25in"
+      font-weight="bold"
+      font-size="10pt"
+      color="#ffffff"
+      font-family="serif"
+      space-before="10pt"
+      border-before-style="solid"
+      border-start-style="solid"
+      border-end-style="solid"
+      border-color="#A0C9F5"
+      background-color="#A0C9F5">
+      <xsl:choose>
+        <xsl:when test="@label"><xsl:value-of select="@label"/></xsl:when>
+        <xsl:otherwise>Note: </xsl:otherwise>
+      </xsl:choose><xsl:value-of select="title"/>
+    </fo:block>
+    <fo:block
+      margin-left="0.25in"
+      margin-right="0.25in"
+      font-family="serif"
+      font-size="8pt"
+      space-after="10pt"
+      border-after-style="solid"
+      border-start-style="solid"
+      border-end-style="solid"
+      border-color="#A0C9F5"
+      background-color="#F0F0FF"
+      padding-start="3pt"
+      padding-end="3pt"
+      padding-before="3pt"
+      padding-after="3pt">
+      <xsl:apply-templates/>
+    </fo:block>
+  </xsl:template>
+
+  <xsl:template match="fixme">
+    <fo:block
+      margin-left="0.25in"
+      margin-right="0.25in"
+      font-weight="bold"
+      font-size="10pt"
+      color="#FFFFFF"
+      font-family="serif"
+      space-before="10pt"
+      border-before-style="solid"
+      border-start-style="solid"
+      border-end-style="solid"
+      border-color="#C6C650"
+      background-color="#C6C650">
+      FIXME (<xsl:value-of select="@author"/>): <xsl:value-of select="title"/>
+    </fo:block>
+    <fo:block
+      margin-left="0.25in"
+      margin-right="0.25in"
+      font-family="serif"
+      font-size="8pt"
+      space-after="10pt"
+      border-after-style="solid"
+      border-start-style="solid"
+      border-end-style="solid"
+      border-color="#C6C650"
+      background-color="#FFF0F0"
+      padding-start="3pt"
+      padding-end="3pt"
+      padding-before="3pt"
+      padding-after="3pt">
+      <xsl:apply-templates/>
+    </fo:block>
+  </xsl:template>
+
+  <xsl:template match="link">
+    <xsl:choose>
+      <xsl:when test="starts-with(@href, '#')">
+    <fo:basic-link color="blue" text-decoration="underline" internal-destination="{substring(@href,2)}">
+      <xsl:apply-templates/>
+    </fo:basic-link>
+      </xsl:when>
+      <xsl:otherwise>
+    <fo:basic-link color="blue" text-decoration="underline" external-destination="{@href}"><xsl:apply-templates/></fo:basic-link>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="figure|img">
+    <fo:block text-align="center">
+      <xsl:if test="normalize-space(@id)!=''">
+          <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
+      </xsl:if>
+
+      <!-- Make relative paths absolute -->
+      <xsl:variable name="imgpath">
+      <xsl:choose>
+        <xsl:when test="starts-with(string(@src), 'images/') or contains(string(@src), '../images')">
+          <xsl:value-of select="concat($ctxbasedir, 'resources/images/' , substring-after(@src, 'images'))"/>
+        </xsl:when>
+        <xsl:otherwise><xsl:value-of select="concat($ctxbasedir, $xmlbasedir, @src)"/></xsl:otherwise>
+      </xsl:choose>
+      </xsl:variable>
+      <fo:external-graphic src="{$imgpath}">
+        <xsl:if test="@height">
+          <xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute>
+        </xsl:if>
+        <xsl:if test="@width">
+          <xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
+        </xsl:if>
+      </fo:external-graphic>
+      <!-- alt text -->
+      <xsl:if test="normalize-space(@alt)!=''">
+          <fo:block><xsl:value-of select="@alt"/></fo:block>
+      </xsl:if>
+    </fo:block>
+  </xsl:template>
+
+  <xsl:template match="table">
+    <!-- FIXME: Apache FOP must have column widths specified at present,
+         this section can be removed when this limitation is removed from Fop. 
+         Unfortunately, this means that each column is a fixed width,
+         but at least the table displays! -->
+
+    <xsl:variable name="max-number-columns">
+      <xsl:for-each select="tr">
+        <xsl:sort select="count(td|th)" data-type="number" order="descending"/>
+        <xsl:if test="position() = 1">
+          <xsl:value-of select="count(td|th)"/>
+        </xsl:if>
+      </xsl:for-each>
+    </xsl:variable>
+
+
+    <xsl:variable name="column-width">
+      <xsl:value-of select="6.25 div number($max-number-columns)"/>in
+    </xsl:variable>
+
+    <fo:table>
+                  
+      <fo:table-column>
+        <xsl:attribute name="column-width">
+          <xsl:value-of select="$column-width"/>
+        </xsl:attribute>
+
+        <xsl:attribute name="number-columns-repeated">
+          <xsl:value-of select="number($max-number-columns)"/>
+        </xsl:attribute>
+      </fo:table-column>
+
+      <!-- End of hack for Fop support (if removing this hack, remember 
+           you need the <fo:table> element) -->
+
+      <fo:table-body
+        font-size="10pt"
+        font-family="sans-serif">
+        <xsl:apply-templates select="tr"/>
+      </fo:table-body>
+    </fo:table>
+
+    <!-- FIXME: Apache Fop does not support the caption element yet.
+         This hack will display the table caption accordingly. -->
+    <xsl:if test="caption">
+      <fo:block
+        text-align="center"
+        font-weight="bold">
+        Table
+        <xsl:text> </xsl:text>
+        <xsl:number count="table" level="multiple"/>
+        <xsl:text>: </xsl:text>
+        <xsl:value-of select="caption"/>
+      </fo:block>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="tr">
+    <fo:table-row>
+      <xsl:apply-templates/>
+    </fo:table-row>
+  </xsl:template>
+
+  <xsl:template match="th">
+      <fo:table-cell
+        padding-before="4pt"
+        padding-after="4pt"
+        padding-start="4pt"
+        padding-end="4pt"
+        background-color="#A0C9F5">
+        <xsl:attribute name="number-columns-spanned">
+          <xsl:value-of select="@colspan"/>
+        </xsl:attribute>
+        <xsl:attribute name="number-rows-spanned">
+          <xsl:value-of select="@rowspan"/>
+        </xsl:attribute>
+        <fo:block
+          text-align="center">
+          <xsl:apply-templates/>
+        </fo:block>
+      </fo:table-cell>
+  </xsl:template>
+
+  <xsl:template match="td">
+    <fo:table-cell
+      padding-before="4pt"
+      padding-after="4pt"
+      padding-start="4pt"
+      padding-end="4pt"
+      border="1pt solid #A0C9F5">
+      <xsl:attribute name="number-columns-spanned">
+          <xsl:value-of select="@colspan"/>
+        </xsl:attribute>
+        <xsl:attribute name="number-rows-spanned">
+          <xsl:value-of select="@rowspan"/>
+        </xsl:attribute>
+      <fo:block>
+        <xsl:apply-templates/>
+      </fo:block>
+    </fo:table-cell>
+  </xsl:template>
+
+  <xsl:template match="br">
+    <fo:block></fo:block>
+  </xsl:template>
+
+  <xsl:template match="legal">
+    <fo:inline
+      font-size="8pt">
+      <xsl:apply-templates/>
+    </fo:inline>
+  </xsl:template>
+
+<!-- ====================================================================== -->
+<!-- Local Extensions section -->
+<!-- ====================================================================== -->
+
+ <xsl:template match="citation">
+   <fo:inline>
+     [<xsl:value-of select="@def"/>]
+   </fo:inline>
+ </xsl:template>
+
+
+
+</xsl:stylesheet>

Added: incubator/woden/Site/src/documentation/skins/common/xslt/fo/footerinfo.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/fo/footerinfo.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/fo/footerinfo.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/fo/footerinfo.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version="1.0">
+
+<!--
+Named template to generate a short message in the PDF footer, from text in
+skinconf.xml.  By default, the message is a copyright statement.  If a credit
+with @role='pdf' is present, that is used instead.  Eg:
+
+<credit role="pdf">
+  <name>Generated by Apache FOP 1.0-dev</name>
+  <url>http://xml.apache.org/forrest/fop/dev/</url>
+</credit>
+-->
+
+  <xsl:param name="config-file" select="'../../../../skinconf.xml'"/>
+  <xsl:variable name="config" select="document($config-file)/skinconfig"/>
+
+  <xsl:template name="info">
+    <xsl:variable name="pdfcredit" select="$config/credits/credit[@role = 'pdf']"/>
+    <xsl:variable name="text">
+      <xsl:if test="$pdfcredit">
+        <xsl:value-of select="$pdfcredit/name"/>
+      </xsl:if>
+      <xsl:if test="not($pdfcredit)">
+        <xsl:text>Copyright &#169; </xsl:text><xsl:value-of select="$config/year"/>&#160;<xsl:value-of
+          select="$config/vendor"/><xsl:text> All rights reserved.</xsl:text>
+      </xsl:if>
+    </xsl:variable>
+    <xsl:variable name="url" select="$pdfcredit/url"/>
+
+    <fo:block-container font-style="italic" absolute-position="absolute"
+      left="0pt" top="0pt" right="6.25in" bottom="150pt"
+      font-size="10pt">
+      <xsl:if test="not($url)">
+        <fo:block text-align="center" color="lightgrey">
+          <xsl:value-of select="$text"/>
+        </fo:block>
+      </xsl:if>
+      <xsl:if test="$url">
+        <fo:block text-align="center">
+          <fo:basic-link color="lightgrey"
+            external-destination="{$url}">
+            <xsl:value-of select="$text"/>
+          </fo:basic-link>
+        </fo:block>
+        <fo:block text-align="center">
+          <fo:basic-link color="lightgrey"
+            external-destination="{$url}">
+            <xsl:value-of select="$url"/>
+          </fo:basic-link>
+        </fo:block>
+      </xsl:if>
+    </fo:block-container>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: incubator/woden/Site/src/documentation/skins/common/xslt/fo/pdfoutline.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/fo/pdfoutline.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/fo/pdfoutline.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/fo/pdfoutline.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:fox="http://xml.apache.org/fop/extensions"
+                version="1.0">
+
+<xsl:template match="document" mode="outline">
+      <xsl:apply-templates select="body/section" mode="outline"/>
+</xsl:template>
+
+<xsl:template match="section" mode="outline">
+  <fox:outline>
+    <xsl:attribute name="internal-destination">
+      <xsl:choose>
+        <xsl:when test="normalize-space(@id)!=''">
+          <xsl:value-of select="@id"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="generate-id()"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+    <fox:label>
+      <xsl:number format="1.1.1.1.1.1.1" count="section" level="multiple"/>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="title"/>
+
+    </fox:label>
+    <xsl:apply-templates select="section" mode="outline"/>
+  </fox:outline>
+</xsl:template>
+
+</xsl:stylesheet>

Added: incubator/woden/Site/src/documentation/skins/common/xslt/html/book2menu.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/html/book2menu.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/html/book2menu.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/html/book2menu.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,163 @@
+<?xml version="1.0"?>
+<!--
+book2menu.xsl generates the HTML menu. It outputs XML/HTML of the form:
+  <div class="menu">
+     ...
+  </div>
+which is then merged with other HTML by site2xhtml.xsl
+
+$Id: book2menu.xsl 263284 2003-10-11 16:57:20Z tetsuya $
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <!-- ================================================================ -->
+  <!-- These templates SHOULD be overridden                             -->
+  <!-- ================================================================ -->
+
+  <xsl:template name="selected">
+    <xsl:value-of select="@label"/>
+  </xsl:template>
+
+  <xsl:template name="unselected">
+    <a href="{@href}">
+      <xsl:if test="@description">
+        <xsl:attribute name="title">
+          <xsl:value-of select="@description"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:value-of select="@label"/>
+    </a>
+  </xsl:template>
+
+  <xsl:template name="print-external">
+    <!-- Use apply-imports when overriding -->
+    <xsl:value-of select="@label"/>
+  </xsl:template>
+
+
+  <!-- ================================================================ -->
+  <!-- These templates CAN be overridden                                -->
+  <!-- ================================================================ -->
+
+  <!-- Eg, if tab href is 'index.html#foo', this will be called when index.html
+  is selected -->
+  <xsl:template name="selected-anchor">
+    <!-- By default, render as unselected so that it is clickable (takes user
+    to the anchor) -->
+    <xsl:call-template name="unselected"/>
+  </xsl:template>
+
+  <xsl:template name="unselected-anchor">
+    <xsl:call-template name="unselected"/>
+  </xsl:template>
+
+
+  <xsl:template match="book">
+    <xsl:apply-templates select="menu"/>
+  </xsl:template>
+
+
+  <xsl:template match="menu">
+    <div class="menu">
+      <xsl:call-template name="base-menu"/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="menu-item">
+    <!-- Use apply-imports when overriding -->
+
+    <xsl:variable name="href-nofrag">
+      <xsl:call-template name="path-nofrag">
+        <xsl:with-param name="path" select="@href"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="node-path">
+      <xsl:call-template name="normalize">
+        <xsl:with-param name="path" select="concat($dirname, $href-nofrag)"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:choose>
+      <!-- Compare with extensions stripped -->
+      <xsl:when test="$node-path = $path-nofrag">
+        <xsl:choose>
+          <xsl:when test="contains(@href, '#')">
+            <xsl:call-template name="selected-anchor"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="selected"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <xsl:when test="contains(@href, '#')">
+            <xsl:call-template name="unselected-anchor"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="unselected"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- ================================================================ -->
+  <!-- These templates SHOULD NOT be overridden                         -->
+  <!-- ================================================================ -->
+
+
+  <xsl:param name="path"/>
+
+  <xsl:include href="pathutils.xsl"/>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="filename">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="path-nofrag">
+    <xsl:call-template name="path-nofrag">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="path-nofrag">
+    <xsl:call-template name="path-nofrag">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="dirname">
+    <xsl:call-template name="dirname">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:template match="external">
+    <li>
+      <xsl:choose>
+        <xsl:when test="starts-with(@href, $path-nofrag)">
+          <span class="externalSelected">
+            <xsl:call-template name="print-external"/>
+          </span>
+        </xsl:when>
+        <xsl:otherwise>
+          <a href="{@href}" target="_blank"><xsl:value-of select="@label"/></a>
+        </xsl:otherwise>
+      </xsl:choose>
+    </li>
+  </xsl:template>
+
+  <xsl:template match="menu-item[@type='hidden']"/>
+
+  <xsl:template match="external[@type='hidden']"/>
+
+  <xsl:template name="base-menu">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: incubator/woden/Site/src/documentation/skins/common/xslt/html/document2html.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/html/document2html.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/html/document2html.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/html/document2html.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,450 @@
+<?xml version="1.0"?>
+<!--
+This stylesheet contains the majority of templates for converting documentv11
+to HTML.  It renders XML as HTML in this form:
+
+  <div class="content">
+   ...
+  </div>
+
+..which site2xhtml.xsl then combines with HTML from the index (book2menu.xsl)
+and tabs (tab2menu.xsl) to generate the final HTML.
+
+Section handling
+  - <a name/> anchors are added if the id attribute is specified
+
+$Id: document2html.xsl 263284 2003-10-11 16:57:20Z tetsuya $
+-->
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <!-- the skinconf file -->
+  <xsl:param name="config-file" select="'../../../../skinconf.xml'"/>
+  <xsl:variable name="config" select="document($config-file)/skinconfig"/>
+  
+  <!-- If true, a PDF link for this page will not be generated -->
+  <xsl:variable name="disable-pdf-link" select="$config/disable-pdf-link"/>
+  <!-- If true, a "print" link for this page will not be generated -->
+  <xsl:variable name="disable-print-link" select="$config/disable-print-link"/>
+  <!-- If true, an XML link for this page will not be generated -->
+  <xsl:variable name="disable-xml-link" select="$config/disable-xml-link"/>  
+  <!-- Get the section depth to use when generating the minitoc (default is 2) -->
+  <xsl:variable name="config-max-depth" select="$config/toc/@level"/>
+  <!-- Whether to obfuscate email links -->
+  <xsl:variable name="obfuscate-mail-links" select="$config/obfuscate-mail-links"/>
+
+  <xsl:variable name="max-depth">
+    <xsl:choose>
+      <xsl:when test="string-length($config-max-depth)&gt;0">
+        <xsl:value-of select="$config-max-depth"/>
+      </xsl:when>
+      <xsl:otherwise>2</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+    
+  <xsl:param name="notoc"/>
+  <xsl:param name="path"/>
+  <!-- <xsl:include href="split.xsl"/> -->
+  <xsl:include href="dotdots.xsl"/>
+  <xsl:include href="pathutils.xsl"/>
+
+  <!-- Path to site root, eg '../../' -->
+  <xsl:variable name="root">
+    <xsl:call-template name="dotdots">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="filename-noext">
+    <xsl:call-template name="filename-noext">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+ 
+  <xsl:variable name="skin-img-dir" select="concat(string($root), 'skin/images')"/>
+
+  <xsl:template match="document">
+    <div class="content">
+      <table summary="" class="title">
+        <tr> 
+          <td valign="middle"> 
+            <xsl:if test="normalize-space(header/title)!=''">
+              <h1>
+                <xsl:value-of select="header/title"/>
+              </h1>
+            </xsl:if>
+          </td>
+          <xsl:call-template name="printlink"/> 
+          <xsl:call-template name="pdflink"/>
+          <xsl:call-template name="xmllink"/>
+        </tr>
+      </table>
+      <xsl:if test="normalize-space(header/subtitle)!=''">
+        <h3>
+          <xsl:value-of select="header/subtitle"/>
+        </h3>
+      </xsl:if>
+      <xsl:apply-templates select="header/type"/>
+      <xsl:apply-templates select="header/notice"/>
+      <xsl:apply-templates select="header/abstract"/>
+      <xsl:apply-templates select="body"/>
+      <div class="attribution">
+        <xsl:apply-templates select="header/authors"/>
+        <xsl:if test="header/authors and header/version">
+          <xsl:text>; </xsl:text>
+        </xsl:if>
+        <xsl:apply-templates select="header/version"/>
+      </div>
+    </div>
+  </xsl:template>
+
+  <!-- Generates the "printer friendly version" link -->
+  <xsl:template name="printlink">
+    <xsl:if test="$disable-print-link = 'false'"> 
+<script type="text/javascript" language="Javascript">
+function printit() {  
+if (window.print) {
+    window.print() ;  
+} else {
+    var WebBrowser = '&lt;OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">&lt;/OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
+}
+}
+</script>
+
+<script type="text/javascript" language="Javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+    document.write('<td align="center" width="40" nowrap="nowrap">');
+    document.write('  <a href="javascript:printit()" class="dida">');
+    document.write('    <img class="skin" src="{$skin-img-dir}/printer.gif" alt="Print this Page"/><br />');
+    document.write('  print</a>');
+    document.write('</td>');
+}
+</script>
+
+    </xsl:if>
+  </xsl:template>
+
+  <!-- Generates the PDF link -->
+  <xsl:template name="pdflink">
+    <xsl:if test="not($config/disable-pdf-link) or $disable-pdf-link = 'false'"> 
+      <td align="center" width="40" nowrap="nowrap"><a href="{$filename-noext}.pdf" class="dida">
+          <img class="skin" src="{$skin-img-dir}/pdfdoc.gif" alt="PDF"/><br/>
+          PDF</a>
+      </td>
+    </xsl:if>
+  </xsl:template>
+  
+
+  <!-- Generates the XML link -->
+  <xsl:template name="xmllink">
+    <xsl:if test="$disable-xml-link = 'false'">
+      <td align="center" width="40" nowrap="nowrap"><a href="{$filename-noext}.xml" class="dida">
+          <img class="skin" src="{$skin-img-dir}/xmldoc.gif" alt="xml"/><br/>
+          xml</a>
+      </td>
+    </xsl:if>
+  </xsl:template>
+  
+  <xsl:template match="body">
+    <xsl:if test="$max-depth&gt;0 and not($notoc='true')" >
+      <xsl:call-template name="minitoc">
+        <xsl:with-param name="tocroot" select="."/>
+        <xsl:with-param name="depth">1</xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+
+  <!-- Generate a <a name="..."> tag for an @id -->
+  <xsl:template match="@id">
+    <xsl:if test="normalize-space(.)!=''">
+      <a name="{.}"/>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="section">
+    <!-- count the number of section in the ancestor-or-self axis to compute
+         the title element name later on -->
+    <xsl:variable name="sectiondepth" select="count(ancestor-or-self::section)"/>
+    <a name="{generate-id()}"/>
+    <xsl:apply-templates select="@id"/>
+    <!-- generate a title element, level 1 -> h3, level 2 -> h4 and so on... -->
+    <xsl:element name="{concat('h',$sectiondepth + 2)}">
+      <xsl:value-of select="title"/>
+      <xsl:if test="$notoc='true' and $sectiondepth = 3">
+        <span style="float: right"><a href="#{@id}-menu">^</a></span>
+      </xsl:if>
+    </xsl:element>
+
+    <!-- Indent FAQ entry text 15 pixels -->
+    <xsl:variable name="indent">
+      <xsl:choose>
+        <xsl:when test="$notoc='true' and $sectiondepth = 3">
+          <xsl:text>15</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>0</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <div style="margin-left: {$indent} ; border: 2px">
+          <xsl:apply-templates select="*[not(self::title)]"/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="note | warning | fixme">
+    <xsl:apply-templates select="@id"/>
+    <div class="frame {local-name()}">
+      <div class="label">
+        <xsl:choose>
+          <xsl:when test="@label"><xsl:value-of select="@label"/></xsl:when>
+          <xsl:when test="local-name() = 'note'">Note</xsl:when>
+          <xsl:when test="local-name() = 'warning'">Warning</xsl:when>
+          <xsl:otherwise>Fixme (<xsl:value-of select="@author"/>)</xsl:otherwise>
+        </xsl:choose>
+      </div>
+      <div class="content">
+        <xsl:apply-templates/>
+      </div>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="notice">
+    <div class="notice">
+    <!-- FIXME: i18n Transformer here -->
+    <xsl:text>Notice: </xsl:text>
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="link">
+    <xsl:apply-templates select="@id"/>
+    <xsl:choose>
+      <xsl:when test="$obfuscate-mail-links='true' and starts-with(@href, 'mailto:') and contains(@href, '@')">
+        <xsl:variable name="mailto-1" select="substring-before(@href,'@')"/>
+        <xsl:variable name="mailto-2" select="substring-after(@href,'@')"/>
+          <a href="{$mailto-1}.at.{$mailto-2}">
+            <xsl:apply-templates/>
+          </a>
+       </xsl:when>
+       <xsl:otherwise>
+          <a href="{@href}">
+            <xsl:apply-templates/>
+          </a>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="jump">
+    <xsl:apply-templates select="@id"/>
+    <a href="{@href}" target="_top">
+      <xsl:apply-templates/>
+    </a>
+  </xsl:template>
+
+  <xsl:template match="fork">
+    <xsl:apply-templates select="@id"/>
+    <a href="{@href}" target="_blank">
+      <xsl:apply-templates/>
+    </a>
+  </xsl:template>
+
+  <xsl:template match="p[@xml:space='preserve']">
+    <xsl:apply-templates select="@id"/>
+    <div class="pre">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="source">
+    <xsl:apply-templates select="@id"/>
+    <pre class="code">
+<!-- Temporarily removed long-line-splitter ... gives out-of-memory problems -->
+      <xsl:apply-templates/>
+<!--
+    <xsl:call-template name="format">
+    <xsl:with-param select="." name="txt" /> 
+     <xsl:with-param name="width">80</xsl:with-param> 
+     </xsl:call-template>
+-->
+    </pre>
+  </xsl:template>
+
+  <xsl:template match="anchor">
+    <a name="{@id}"/>
+  </xsl:template>
+
+  <xsl:template match="icon">
+    <xsl:apply-templates select="@id"/>
+    <img src="{@src}" alt="{@alt}" class="icon">
+      <xsl:if test="@height">
+        <xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute>
+      </xsl:if>
+      <xsl:if test="@width">
+        <xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
+      </xsl:if>
+    </img>
+  </xsl:template>
+
+  <xsl:template match="code">
+    <xsl:apply-templates select="@id"/>
+    <span class="codefrag"><xsl:value-of select="."/></span>
+  </xsl:template>
+
+  <xsl:template match="figure">
+    <xsl:apply-templates select="@id"/>
+    <div align="center">
+      <img src="{@src}" alt="{@alt}" class="figure">
+        <xsl:if test="@height">
+          <xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute>
+        </xsl:if>
+        <xsl:if test="@width">
+          <xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
+        </xsl:if>
+      </img>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="table">
+    <xsl:apply-templates select="@id"/>
+    <table cellpadding="4" cellspacing="1" class="ForrestTable">
+      <xsl:if test="@cellspacing"><xsl:attribute name="cellspacing"><xsl:value-of select="@cellspacing"/></xsl:attribute></xsl:if>
+      <xsl:if test="@cellpadding"><xsl:attribute name="cellpadding"><xsl:value-of select="@cellpadding"/></xsl:attribute></xsl:if>
+      <xsl:if test="@border"><xsl:attribute name="border"><xsl:value-of select="@border"/></xsl:attribute></xsl:if>
+      <xsl:if test="@class"><xsl:attribute name="class"><xsl:value-of select="@class"/></xsl:attribute></xsl:if>
+      <xsl:if test="@bgcolor"><xsl:attribute name="bgcolor"><xsl:value-of select="@bgcolor"/></xsl:attribute></xsl:if>
+      <xsl:apply-templates/>
+    </table>
+  </xsl:template>
+
+  <xsl:template match="acronym/@title">
+    <xsl:attribute name="title">
+      <xsl:value-of select="normalize-space(.)"/>
+    </xsl:attribute>
+  </xsl:template>
+
+  <xsl:template name="minitoc">  
+    <xsl:param name="tocroot"/>
+    <xsl:param name="depth"/>     
+    <xsl:if test="count($tocroot/section) > 0">
+      <ul class="minitoc">
+        <xsl:for-each select="$tocroot/section">
+          <li>
+            <xsl:call-template name="toclink"/>
+            <xsl:if test="$depth&lt;$max-depth">
+              <xsl:call-template name="minitoc">
+                <xsl:with-param name="tocroot" select="."/>
+                <xsl:with-param name="depth" select="$depth + 1"/>
+              </xsl:call-template>
+            </xsl:if>
+          </li>
+        </xsl:for-each>
+      </ul>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="toclink">
+    <xsl:variable name="tocitem" select="normalize-space(title)"/>
+    <xsl:if test="string-length($tocitem)>0">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:text>#</xsl:text>
+          <xsl:if test="@id">
+            <xsl:value-of select="@id"/>
+          </xsl:if>
+        </xsl:attribute>
+        <xsl:value-of select="$tocitem"/>
+      </a>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="header/authors">
+    <xsl:for-each select="person">
+      <xsl:choose>
+        <xsl:when test="position()=1">by&#160;</xsl:when>
+        <xsl:otherwise>,&#160;</xsl:otherwise>
+      </xsl:choose>
+      <xsl:value-of select="@name"/>
+    </xsl:for-each>
+  </xsl:template>
+
+  <xsl:template match="version">
+    <span class="version">
+      <xsl:apply-templates select="@major"/>
+      <xsl:apply-templates select="@minor"/>
+      <xsl:apply-templates select="@fix"/>
+      <xsl:apply-templates select="@tag"/>
+      <xsl:choose>
+        <xsl:when test="starts-with(., '$Revision: ')">
+          version <xsl:value-of select="substring(., 12, string-length(.) -11-2)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="."/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </span>
+  </xsl:template>
+  
+  <xsl:template match="@major">
+     v<xsl:value-of select="."/>
+  </xsl:template>
+  
+  <xsl:template match="@minor">
+     <xsl:value-of select="concat('.',.)"/>
+  </xsl:template>
+  
+  <xsl:template match="@fix">
+     <xsl:value-of select="concat('.',.)"/>
+  </xsl:template>
+  
+  <xsl:template match="@tag">
+     <xsl:value-of select="concat('-',.)"/>
+  </xsl:template>
+
+  <xsl:template match="type">
+    <p class="type">
+    <!-- FIXME: i18n Transformer here -->
+    <xsl:text>Type: </xsl:text>
+    <xsl:value-of select="."/>
+    </p>
+  </xsl:template>
+
+  <xsl:template match="abstract">
+    <p>
+      <xsl:apply-templates/>
+    </p>
+  </xsl:template>
+
+  <xsl:template name="email">
+    <a>
+    <xsl:attribute name="href">
+      <xsl:choose>
+      <xsl:when test="$obfuscate-mail-links='true'">
+        <xsl:variable name="user" select="substring-before(@email,'@')"/>
+	<xsl:variable name="host" select="substring-after(@email,'@')"/>
+	<xsl:value-of select="concat('mailto:',$user,'.at.',$host)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="concat('mailto:',@email)"/>
+      </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+       <xsl:value-of select="@name"/>
+    </a>
+  </xsl:template>
+
+  <xsl:template match="node()|@*" priority="-1">
+    <xsl:copy>
+      <xsl:apply-templates select="@*"/>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+  
+</xsl:stylesheet>
+

Added: incubator/woden/Site/src/documentation/skins/common/xslt/html/dotdots.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/html/dotdots.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/html/dotdots.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/html/dotdots.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+Contains the 'dotdots' template, which, given a path, will output a set of
+directory traversals to get back to the source directory. Handles both '/' and
+'\' directory separators.
+
+Examples:
+  Input                           Output 
+    index.html                    ""
+    dir/index.html                "../"
+    dir/subdir/index.html         "../../"
+    dir//index.html              "../"
+    dir/                          "../"
+    dir//                         "../"
+    \some\windows\path            "../../"
+    \some\windows\path\           "../../../"
+    \Program Files\mydir          "../"
+
+Cannot handle ..'s in the path, so don't expect 'dir/subdir/../index.html' to
+work.
+
+jefft@apache.org
+-->
+
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template name="dotdots">
+    <xsl:param name="path"/>
+    <xsl:variable name="dirs" select="normalize-space(translate(concat($path, 'x'), ' /\', '_  '))"/>
+    <!-- The above does the following:
+       o Adds a trailing character to the path. This prevents us having to deal
+         with the special case of ending with '/'
+       o Translates all directory separators to ' ', and normalize spaces,
+		 cunningly eliminating duplicate '//'s. We also translate any real
+		 spaces into _ to preserve them.
+    -->
+    <xsl:variable name="remainder" select="substring-after($dirs, ' ')"/>
+    <xsl:if test="$remainder">
+      <xsl:text>../</xsl:text>
+      <xsl:call-template name="dotdots">
+        <xsl:with-param name="path" select="translate($remainder, ' ', '/')"/>
+		<!-- Translate back to /'s because that's what the template expects. -->
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+
+<!--
+  Uncomment to test.
+  Usage: saxon dotdots.xsl dotdots.xsl path='/my/test/path'
+
+  <xsl:param name="path"/>
+  <xsl:template match="/">
+    <xsl:message>Path: <xsl:value-of select="$path"/></xsl:message>
+    <xsl:call-template name="dotdots">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:template>
+ -->
+
+</xsl:stylesheet>

Added: incubator/woden/Site/src/documentation/skins/common/xslt/html/pathutils.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/html/pathutils.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/html/pathutils.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/html/pathutils.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,224 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<!--
+PathUtils.xsl
+
+A set of XSLT templates useful for parsing URI paths:
+
+dirname: return the directory part of a path
+filename: return the file part of a path
+ext: return the last extension of the filename in a path
+filename-noext: return the file part of a path without its last extension
+
+@author Jeff Turner <je...@apache.org>
+$Id: pathutils.xsl 263284 2003-10-11 16:57:20Z tetsuya $
+-->
+
+<!-- Returns the directory part of a path.  Equivalent to Unix 'dirname'.
+Examples:
+'' -> ''
+'foo/index.html' -> 'foo/'
+-->
+<xsl:template name="dirname">
+  <xsl:param name="path" />
+  <xsl:if test="contains($path, '/')">
+    <xsl:value-of select="concat(substring-before($path, '/'), '/')" />
+    <xsl:call-template name="dirname">
+      <xsl:with-param name="path"
+        select="substring-after($path, '/')" />
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- Normalized (..'s eliminated) version of 'dirname' -->
+<xsl:template name="dirname-nz">
+  <xsl:param name="path" />
+  <xsl:call-template name="normalize">
+    <xsl:with-param name="path">
+      <xsl:call-template name="dirname">
+        <xsl:with-param name="path" select="$path" />
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+
+<!-- Returns the filename part of a path.  Equivalent to Unix 'basename'
+Examples:
+'index.html'  ->  'index.html' 
+'foo/bar/'  ->  '' 
+'foo/bar/index.html'  ->  'index.html' 
+-->
+<xsl:template name="filename">
+  <xsl:param name="path"/>
+  <xsl:choose>
+    <xsl:when test="contains($path, '/')">
+      <xsl:call-template name="filename">
+        <xsl:with-param name="path" select="substring-after($path, '/')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$path"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Returns the last extension of a filename in a path.
+Examples:
+'index.html'  ->  '.html' 
+'index.dtdx.html'  ->  '.html' 
+'foo/bar/'  ->  '' 
+'foo/bar/index.html'  ->  '.html' 
+'foo/bar/index'  ->  '' 
+-->
+<xsl:template name="ext">
+  <xsl:param name="path"/>
+  <xsl:param name="subflag"/> <!-- Outermost call? -->
+  <xsl:choose>
+    <xsl:when test="contains($path, '.')">
+      <xsl:call-template name="ext">
+        <xsl:with-param name="path" select="substring-after($path, '.')"/>
+        <xsl:with-param name="subflag" select="'sub'"/>
+      </xsl:call-template>
+    </xsl:when>
+    <!-- Handle extension-less filenames by returning '' -->
+    <xsl:when test="not($subflag) and not(contains($path, '.'))">
+      <xsl:text/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="concat('.', $path)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- Returns a filename of a path stripped of its last extension.
+Examples:
+'foo/bar/index.dtdx.html' -> 'index.dtdx'
+-->
+<xsl:template name="filename-noext">
+  <xsl:param name="path"/>
+  <xsl:variable name="filename">
+    <xsl:call-template name="filename">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="ext">
+    <xsl:call-template name="ext">
+      <xsl:with-param name="path" select="$filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:value-of select="substring($filename, 1, string-length($filename) - string-length($ext))"/>
+</xsl:template>
+
+<!-- Returns a path with the filename stripped of its last extension.
+Examples:
+'foo/bar/index.dtdx.html' -> 'foo/bar/index.dtdx'
+-->
+<xsl:template name="path-noext">
+  <xsl:param name="path"/>
+  <xsl:variable name="ext">
+    <xsl:call-template name="ext">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:value-of select="substring($path, 1, string-length($path) - string-length($ext))"/>
+</xsl:template>
+
+<!-- Normalized (..'s eliminated) version of 'path-noext' -->
+<xsl:template name="path-noext-nz">
+  <xsl:param name="path" />
+  <xsl:call-template name="normalize">
+    <xsl:with-param name="path">
+      <xsl:call-template name="path-noext">
+        <xsl:with-param name="path" select="$path" />
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- Returns a path with any fragment identifier ('#...') stripped off
+Examples:
+'foo/bar/index.dtdx.html#blah' -> 'foo/bar/index.dtdx.html'
+-->
+<xsl:template name="path-nofrag">
+  <xsl:param name="path"/>
+  <xsl:if test="not(contains($path, '#'))">
+    <xsl:value-of select="$path"/>
+  </xsl:if>
+  <xsl:if test="contains($path, '#')">
+    <xsl:value-of select="substring-before($path, '#')"/>
+  </xsl:if>
+</xsl:template>
+
+
+
+<!-- Normalizes a path, converting '/' to '\' and eliminating ..'s
+Examples:
+'foo/bar/../baz/index.html' -> foo/baz/index.html'
+-->
+<xsl:template name="normalize">
+  <xsl:param name="path"/>
+  <xsl:variable name="path-" select="translate($path, '\', '/')"/>
+  <xsl:choose>
+    <xsl:when test="contains($path-, '/../')">
+
+      <xsl:variable name="pa" select="substring-before($path-, '/../')"/>
+      <xsl:variable name="th" select="substring-after($path-, '/../')"/>
+      <xsl:variable name="pa-">
+        <xsl:call-template name="dirname">
+          <xsl:with-param name="path" select="$pa"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:variable name="pa-th" select="concat($pa-, $th)"/>
+      <xsl:call-template name="normalize">
+        <xsl:with-param name="path" select="$pa-th"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:value-of select="$path-"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<!--
+Uncomment this to test.
+Usage: saxon pathutils.xsl pathutils.xsl path=foo/bar
+
+<xsl:param name="path" select="'/foo/bar/../baz/index.html'"/>
+<xsl:template match="/">
+  <xsl:message>
+    path           = <xsl:value-of select="$path"/>
+    normalize      = <xsl:call-template name="normalize">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+    dirname        = <xsl:call-template name="dirname">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+    dirname-nz     = <xsl:call-template name="dirname-nz">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+    filename       = <xsl:call-template name="filename">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+    ext            = <xsl:call-template name="ext">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+    filename-noext = <xsl:call-template name="filename-noext">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+    path-noext     = <xsl:call-template name="path-noext">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+    path-noext-nz  = <xsl:call-template name="path-noext-nz">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+    path-nofrag    = <xsl:call-template name="path-nofrag">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+ 
+  </xsl:message>
+</xsl:template>
+-->
+
+</xsl:stylesheet>

Added: incubator/woden/Site/src/documentation/skins/common/xslt/html/renderlogo.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/html/renderlogo.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/html/renderlogo.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/html/renderlogo.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+A simple callable template that renders a logo for an entity. The logo will 
+be a hyperlink and may include an image (with width and height if specified)
+or else it will just include the specified text.
+
+Note that text and image are mandatory parts of the template.
+-->
+
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template name="renderlogo">
+    <xsl:param name="name"/>
+    <xsl:param name="url"/>
+    <xsl:param name="logo"/>
+    <xsl:param name="width"/>
+    <xsl:param name="height"/>
+    <xsl:param name="root"/>
+    <xsl:param name="description"/>
+    <a href="{$url}">
+      <xsl:choose>
+        <xsl:when test="$logo and not($logo = '')">
+          <img alt="{$name}" class="logoImage" border="0">
+            <xsl:attribute name="src">
+	      <xsl:if test="not(starts-with($logo, 'http://'))"><xsl:value-of select="$root"/></xsl:if>
+              <xsl:value-of select="$logo"/>
+            </xsl:attribute>
+            <xsl:if test="$width">
+              <xsl:attribute name="width"><xsl:value-of select="$width"/></xsl:attribute>
+            </xsl:if>
+            <xsl:if test="$height">
+              <xsl:attribute name="height"><xsl:value-of select="$height"/></xsl:attribute>
+            </xsl:if>
+            <xsl:if test="$description">
+              <xsl:attribute name="title"><xsl:value-of select="$description"/></xsl:attribute>
+            </xsl:if>
+	  </img>
+        </xsl:when>
+        <xsl:otherwise><xsl:value-of select="$name"/></xsl:otherwise>
+      </xsl:choose>
+    </a>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: incubator/woden/Site/src/documentation/skins/common/xslt/html/site2xhtml.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/html/site2xhtml.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/html/site2xhtml.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/html/site2xhtml.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,138 @@
+<?xml version="1.0"?>
+<!--
+site2xhtml.xsl is the final stage in HTML page production.  It merges HTML from
+document2html.xsl, tab2menu.xsl and book2menu.xsl, and adds the site header,
+footer, searchbar, css etc.  As input, it takes XML of the form:
+
+<site>
+  <div class="menu">
+    ...
+  </div>
+  <div class="tab">
+    ...
+  </div>
+  <div class="content">
+    ...
+  </div>
+</site>
+
+$Id: site2xhtml.xsl 263284 2003-10-11 16:57:20Z tetsuya $
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <!-- Default skinconf.xml in the skins/ directory -->
+  <xsl:param name="config-file" select="'../../../../skinconf.xml'"/>
+  <xsl:variable name="config" select="document($config-file)/skinconfig"/>
+  <xsl:param name="path"/>
+
+  <xsl:include href="dotdots.xsl"/>
+  <xsl:include href="pathutils.xsl"/>
+  <xsl:include href="renderlogo.xsl"/>
+
+  <!-- Path (..'s) to the root directory -->
+  <xsl:variable name="root">
+    <xsl:call-template name="dotdots">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Source filename (eg 'foo.xml') of current page -->
+  <xsl:variable name="filename">
+    <xsl:call-template name="filename">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="skin-img-dir" select="concat(string($root), 'skin/images')"/>
+  <xsl:variable name="spacer" select="concat($root, 'skin/images/spacer.gif')"/>
+
+  <xsl:template match="site">
+    <html>
+      <head>
+        <title><xsl:value-of select="div[@class='content']/table/tr/td/h1"/></title>
+      </head>
+      <body>
+        <xsl:if test="$config/group-url">
+          <xsl:call-template name="renderlogo">
+            <xsl:with-param name="name" select="$config/group-name"/>
+            <xsl:with-param name="url" select="$config/group-url"/>
+            <xsl:with-param name="logo" select="$config/group-logo"/>
+            <xsl:with-param name="root" select="$root"/>
+            <xsl:with-param name="description" select="$config/group-description"/>
+          </xsl:call-template>
+        </xsl:if>
+        <xsl:call-template name="renderlogo">
+          <xsl:with-param name="name" select="$config/project-name"/>
+          <xsl:with-param name="url" select="$config/project-url"/>
+          <xsl:with-param name="logo" select="$config/project-logo"/>
+          <xsl:with-param name="root" select="$root"/>
+          <xsl:with-param name="description" select="$config/project-description"/>
+        </xsl:call-template>
+        <xsl:comment>================= start Tabs ==================</xsl:comment>
+        <xsl:apply-templates select="div[@class='tab']"/>
+        <xsl:comment>================= end Tabs ==================</xsl:comment>
+        <xsl:comment>================= start Menu items ==================</xsl:comment>
+        <xsl:apply-templates select="div[@class='menu']"/>
+        <xsl:comment>================= end Menu items ==================</xsl:comment>
+        <xsl:comment>================= start Content==================</xsl:comment>
+        <xsl:apply-templates select="div[@class='content']"/>
+        <xsl:comment>================= end Content==================</xsl:comment>
+
+        <xsl:comment>================= start Footer ==================</xsl:comment>
+        Copyright &#169; <xsl:value-of select="$config/year"/>&#160;<xsl:value-of
+          select="$config/vendor"/> All rights reserved.
+        <script language="JavaScript" type="text/javascript"><![CDATA[<!--
+          document.write(" - "+"Last Published: " + document.lastModified);
+          //  -->]]></script>
+        <xsl:if test="$config/host-logo and not($config/host-logo = '')">
+          <a href="{$config/host-url}">
+            <xsl:call-template name="renderlogo">
+              <xsl:with-param name="name" select="$config/host-name"/>
+              <xsl:with-param name="url" select="$config/host-url"/>
+              <xsl:with-param name="logo" select="$config/host-logo"/>
+              <xsl:with-param name="root" select="$root"/>
+            </xsl:call-template>
+          </a>
+        </xsl:if>
+        <xsl:if test="$filename = 'index.html' and $config/credits">
+          <xsl:for-each select="$config/credits/credit[not(@role='pdf')]">
+            <xsl:call-template name="renderlogo">
+              <xsl:with-param name="name" select="name"/>
+              <xsl:with-param name="url" select="url"/>
+              <xsl:with-param name="logo" select="image"/>
+              <xsl:with-param name="root" select="$root"/>
+              <xsl:with-param name="width" select="width"/>
+              <xsl:with-param name="height" select="height"/>
+            </xsl:call-template>
+          </xsl:for-each>
+        </xsl:if>
+        <a href="http://validator.w3.org/check/referer"><img class="skin" border="0"
+            src="http://www.w3.org/Icons/valid-html401"
+            alt="Valid HTML 4.01!" height="31" width="88"/></a>
+      </body>
+    </html>
+  </xsl:template>
+
+  <!-- Add links to any standards-compliance logos -->
+  <xsl:template name="compliancy-logos">
+    <xsl:if test="$config/disable-compliance-links = 'false'">
+      <a href="http://validator.w3.org/check/referer"><img class="logoImage" 
+          src="{$skin-img-dir}/valid-html401.png"
+          alt="Valid HTML 4.01!" height="31" width="88"/></a>
+          
+      <a href="http://jigsaw.w3.org/css-validator/"><img class="logoImage" 
+          src="{$skin-img-dir}/vcss.png" 
+          alt="Valid CSS!" height="31" width="88"/></a>
+    </xsl:if>
+  </xsl:template>
+
+
+  <xsl:template match="node()|@*" priority="-1">
+    <xsl:copy>
+      <xsl:apply-templates select="@*"/>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: incubator/woden/Site/src/documentation/skins/common/xslt/html/split.xsl
URL: http://svn.apache.org/viewcvs/incubator/woden/Site/src/documentation/skins/common/xslt/html/split.xsl?rev=279270&view=auto
==============================================================================
--- incubator/woden/Site/src/documentation/skins/common/xslt/html/split.xsl (added)
+++ incubator/woden/Site/src/documentation/skins/common/xslt/html/split.xsl Wed Sep  7 00:55:30 2005
@@ -0,0 +1,141 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!--
+ This stylesheet was taken from the XSLT FAQ http://www.dpawson.co.uk/xsl/
+ 
+ Comments and adaption to be used without normalize-space()
+  by Nicola Ken Barozzi nicolaken@apache.org
+--> 
+
+<!--
+  Input:
+
+<doc>
+
+<para>
+ 123456 2345 343434 545454 43434 343 
+ 12345 343434 545454 43434 343 
+ 32345645 343434 545454 43434 343 
+ 3422222225 343434 545454 43434 343 
+ llllllllllllllllllllllooooooooooooooonnnnnnnnnnnggggggggg
+ 345 343434 545454 43434 343 
+</para>
+
+</doc>
+
+Output:
+
+<HTML>
+<BODY>
+<PRE>123456 2345 343434 545454 
+43434 343 12345 343434 545454 
+43434 343 32345645 343434 
+545454 43434 343 3422222225 
+343434 545454 43434 343 
+lllllllllllllllllllllloooooooo
+ooooooonnnnnnnnnnnggggggggg 
+345 343434 545454 43434 
+343
+</PRE>
+</BODY>
+</HTML>
+
+Fragment ised: 
+
+ <xsl:template match="/doc">
+ <HTML><BODY><PRE>
+    <xsl:call-template name="format">
+    <xsl:with-param select="normalize-space(para)" name="txt" /> 
+     <xsl:with-param name="width">30</xsl:with-param> 
+     </xsl:call-template>
+  </PRE></BODY></HTML>
+  </xsl:template>
+
+
+-->
+
+ <xsl:template match="/body">
+   <body>
+    <xsl:call-template name="format">
+    <xsl:with-param select="source" name="txt" /> 
+     <xsl:with-param name="width">40</xsl:with-param> 
+     </xsl:call-template>
+  </body>
+  </xsl:template>
+  
+  <xsl:template name="format">
+    <xsl:param name="txt" /> 
+    <xsl:param name="width" /> 
+
+    <!-- if there is still text left -->
+    <xsl:if test="$txt">
+    
+    <xsl:variable name = "pretxt" select = "substring($txt,0, $width)" />
+    
+    <xsl:choose>
+      <xsl:when test="contains($pretxt, '&#xA;')">
+        <xsl:value-of select="substring-before($pretxt, '&#xA;')"/>
+        <xsl:text>&#xA;</xsl:text> 
+        <xsl:call-template name="format">
+          <xsl:with-param name="txt" select="substring-after($txt,'&#xA;')"/>
+          <xsl:with-param select="$width" name="width" />           
+        </xsl:call-template>
+      </xsl:when>
+      
+      <xsl:otherwise>
+      <!-- get the width at which to break-->
+      <xsl:variable name="real-width">
+        <xsl:call-template name="tune-width">
+          <xsl:with-param select="$txt" name="txt" /> 
+          <xsl:with-param select="$width" name="width" /> 
+          <xsl:with-param select="$width" name="def" /> 
+        </xsl:call-template>
+      </xsl:variable>
+
+      <!-- output the first part of the broken string -->
+      <xsl:value-of select="substring($txt, 1, $real-width)" /> 
+
+      <!-- output a newline -->
+      <xsl:text>&#xA;</xsl:text> 
+
+      <!-- call itself with the remaining part of the text -->
+      <xsl:call-template name="format">
+       <xsl:with-param select="substring($txt,$real-width + 1)" name="txt" /> 
+       <xsl:with-param select="$width" name="width" /> 
+      </xsl:call-template>
+      </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:template>
+  
+   
+  <!-- used by template "format", it calculates the width at the given def 
+       
+       It starts at def length and comes back till it finds a space -->
+  <xsl:template name="tune-width">
+    <xsl:param name="txt" /> 
+    <xsl:param name="width" /> 
+    <xsl:param name="def" /> 
+
+    <xsl:choose>
+      <xsl:when test="$width = 0">
+       <xsl:value-of select="$def" /> 
+      </xsl:when>
+                 
+      <xsl:when test="substring($txt, $width, 1 ) = ' '">
+          <xsl:value-of select="$width" /> 
+       </xsl:when>
+       
+       <xsl:otherwise>
+         <!-- otherwise need to tune again, trying with $width - 1 -->
+         <xsl:call-template name="tune-width">
+           <xsl:with-param select="$width - 1" name="width" /> 
+           <xsl:with-param select="$txt" name="txt" /> 
+           <xsl:with-param select="$def" name="def" /> 
+         </xsl:call-template>
+       </xsl:otherwise>
+     </xsl:choose>
+
+  </xsl:template>
+
+  </xsl:stylesheet>



---------------------------------------------------------------------
To unsubscribe, e-mail: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org