Moved the site sources common to Axis 1.x/CPP and Axis 1.x/Java.

diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 0000000..378eac2
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1 @@
+build
diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000..1d5edf3
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+    ==================  [AXIS SITE BUILDER]  ==================
+
+    * This is an ant build-file for building whole Axis site.
+    * This version supports only Windows platforms.
+    * You may have to edit the 'IEPath' property below.
+    * The target source you have to edit will be in;
+      'ws-axis/site/src4/java'.
+    * After editing the target, you have to commit a set of
+      updates in 'ws-axis/site/src/java' and
+      'ws-site/target/axis'.
+-->
+
+<project name="BuildSite" default="build-site" basedir=".">
+
+  <property name="version" value="0.1"/>
+  <property name="IEPath" location="C:\Program Files\Internet Explorer"/>
+
+  <description>
+    *=======================================================*
+    |                 Axis Site Builder                     |
+    |                         0.1.0                         |
+    |                                                       |
+    |             $Date$              |
+    *=======================================================*
+  </description>
+
+<!-- ***************************************************************** -->
+<!-- **                                                             ** -->
+<!-- **                  TARGET: build-site                         ** -->
+<!-- **                                                             ** -->
+<!-- ***************************************************************** -->
+  <!-- ===============================================================
+       Main target procedure.
+       =============================================================== -->
+  <target name="build-site" depends="clean">
+    <parallel >
+      <ant target="run-browser"/>
+      <ant target="run-forrest"/>
+    </parallel>
+    <ant target="forrest"/>
+    <ant target="replace"/>
+    <ant target="putmessage"/>
+  </target>
+
+<!-- ***************************************************************** -->
+<!-- **                                                             ** -->
+<!-- **                  TARGET: clean                              ** -->
+<!-- **                                                             ** -->
+<!-- ***************************************************************** -->
+  <target name="clean" description="clean up the build area">
+    <delete dir="./build"/>
+  </target>
+
+<!-- ***************************************************************** -->
+<!-- **                                                             ** -->
+<!-- **                  TARGET: run-browser                        ** -->
+<!-- **                                                             ** -->
+<!-- ***************************************************************** -->
+  <target name="run-browser">
+    <echo message="=> After waiting 15 secs, IE will be comming up ..."/>
+    <sleep seconds="15"/>
+    <echo message="=> A browser (Internet Explorer) is starting up !!"/>
+    <exec executable="${IEPath}\IEXPLORE.EXE">
+      <arg line="http://localhost:8888/"/>
+    </exec>
+  </target>
+
+<!-- ***************************************************************** -->
+<!-- **                                                             ** -->
+<!-- **                  TARGET: run-forrest                        ** -->
+<!-- **                                                             ** -->
+<!-- ***************************************************************** -->
+  <target name="run-forrest">
+    <echo message="=> Starting Forrest with Jetty server ..."/>
+    <exec executable="cmd">
+      <env key="PATH" path="${path}"/>
+      <arg line="/c start forrest run"/>
+    </exec>
+  </target>
+
+<!-- ***************************************************************** -->
+<!-- **                                                             ** -->
+<!-- **                  TARGET: forrest                            ** -->
+<!-- **                                                             ** -->
+<!-- ***************************************************************** -->
+  <target name="forrest">
+    <echo>
+      => Creating static contents with the latest updates ...
+    </echo>
+    <exec executable="cmd">
+      <env key="PATH" path="${path}"/>
+      <arg line="/c forrest"/>
+    </exec>
+    <echo message="=> DONE !!"/>
+    <echo>
+      => Fixing line endings in generated files ...
+    </echo>    
+    <fixcrlf srcdir="build/site" eol="lf" includes="**/*.css, **/*.html, **/*.js, **/*.xsl*" />
+  </target>
+
+<!-- ***************************************************************** -->
+<!-- **                                                             ** -->
+<!-- **                  TARGET: replace                            ** -->
+<!-- **                                                             ** -->
+<!-- ***************************************************************** -->
+  <target name="replace">
+    <echo message="=> Copying the updated (static) contents ..."/>
+    <copy todir="../../../../ws-site/targets/axis">
+      <fileset dir="./build/site">
+        <different targetdir="../../../../ws-site/targets/axis"
+         ignoreFileTimes="true"/>
+      </fileset>
+    </copy>
+    <echo message="=> DONE !!"/>
+  </target>
+
+<!-- ***************************************************************** -->
+<!-- **                                                             ** -->
+<!-- **                  TARGET: putmessage                         ** -->
+<!-- **                                                             ** -->
+<!-- ***************************************************************** -->
+  <target name="putmessage">
+    <echo>
+      (If you are a committer,) please commit your updates in
+      'ws-axis/site/src/java' and 'ws-site/target/axis' !!
+    </echo>
+  </target>
+
+</project>
diff --git a/forrest-targets.ent b/forrest-targets.ent
new file mode 100644
index 0000000..994c0b7
--- /dev/null
+++ b/forrest-targets.ent
@@ -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>
diff --git a/forrest.properties b/forrest.properties
new file mode 100644
index 0000000..1df423e
--- /dev/null
+++ b/forrest.properties
@@ -0,0 +1,97 @@
+##############
+# Properties used by forrest.build.xml for building the website
+##############
+
+# Prints out a summary of Forrest settings for this project
+#forrest.echo=true 
+
+# Project name (used to name .war file)
+#project.name=my-project
+
+# Specifies name of Forrest skin to use
+#project.skin=forrest-site
+#project.skin=avalon-tigris
+#project.skin=krysalis-site
+project.skin=ws-site
+
+
+##############
+# layout properties
+
+# Properties that must be set to override the default locations
+#
+# Parent properties must be set. This usually means uncommenting
+# project.content-dir if any other property using it is uncommented
+
+#project.status=status.xml
+#project.content-dir=src/documentation
+#project.conf-dir=${project.content-dir}/conf
+#project.sitemap=${project.content-dir}/sitemap.xmap
+#project.xdocs-dir=${project.content-dir}/content/xdocs
+#project.stylesheets-dir=${project.content-dir}/resources/stylesheets
+#project.images-dir=${project.content-dir}/resources/images
+#project.schema-dir=${project.content-dir}/resources/schema
+#project.skins-dir=${project.content-dir}/skins
+#project.skinconf=${project.content-dir}/skinconf.xml
+#project.lib-dir=${project.content-dir}/lib
+#project.classes-dir=${project.content-dir}/classes
+
+
+##############
+# Cocoon catalog entity resolver properties
+
+# A local catalog to supplement the default Forrest catalog
+#project.catalog=${project.schema-dir}/catalog
+
+# The verbosity level for the entity resolver (1..10)
+#forrest.catalog.verbosity=1
+
+
+##############
+# validation properties
+
+# These props determine if validation is performed at all
+# Values are inherited unless overridden.
+# Eg, if forrest.validate=false, then all others are false unless set to true.
+forrest.validate=false
+#forrest.validate.xdocs=${forrest.validate}
+#forrest.validate.skinconf=${forrest.validate}
+#forrest.validate.sitemap=${forrest.validate}
+#forrest.validate.stylesheets=${forrest.validate}
+#forrest.validate.skins=${forrest.validate}
+#forrest.validate.skins.stylesheets=${forrest.validate.skins}
+
+
+# Key:
+# *.failonerror=(true|false)    stop when an XML file is invalid
+# *.includes=(pattern)         Comma-separated list of path patterns to validate
+# *.excludes=(pattern)         Comma-separated list of path patterns to not validate
+
+#forrest.validate.failonerror=true
+#forrest.validate.includes=**/*
+#forrest.validate.excludes=
+#
+#forrest.validate.xdocs.failonerror=${forrest.validate.failonerror}
+#
+#forrest.validate.xdocs.includes=**/*.x*
+#forrest.validate.xdocs.excludes=site.xml
+#
+#forrest.validate.skinconf.includes=${skinconf-file}
+#forrest.validate.skinconf.excludes=
+#forrest.validate.skinconf.failonerror=${forrest.validate.failonerror}
+#
+#forrest.validate.sitemap.includes=${sitemap-file}
+#forrest.validate.sitemap.excludes=
+#forrest.validate.sitemap.failonerror=${forrest.validate.failonerror}
+#
+#forrest.validate.stylesheets.includes=**/*.xsl
+#forrest.validate.stylesheets.excludes=
+#forrest.validate.stylesheets.failonerror=${forrest.validate.failonerror}
+#
+#forrest.validate.skins.includes=**/*
+#forrest.validate.skins.excludes=**/*.xsl
+#forrest.validate.skins.failonerror=${forrest.validate.failonerror}
+#
+#forrest.validate.skins.stylesheets.includes=**/*.xsl
+#forrest.validate.skins.stylesheets.excludes=
+#forrest.validate.skins.stylesheets.failonerror=${forrest.validate.skins.failonerror}
diff --git a/src/documentation/README.txt b/src/documentation/README.txt
new file mode 100644
index 0000000..4545b58
--- /dev/null
+++ b/src/documentation/README.txt
@@ -0,0 +1,10 @@
+This is the base documentation directory. It usually contains two files:
+
+skinconf.xml     # This file customizes Forrest for your project. In it, you
+                 # tell forrest the project name, logo, copyright info, etc
+
+sitemap.xmap     # Optional. This sitemap overrides the default one bundled
+                 # with Forrest. Typically, one would copy a sitemap from
+                 # xml-forrest/src/resources/conf/sitemap.xmap, and customize
+                 # it.
+
diff --git a/src/documentation/content/xdocs/bugs.xml b/src/documentation/content/xdocs/bugs.xml
new file mode 100644
index 0000000..7a26206
--- /dev/null
+++ b/src/documentation/content/xdocs/bugs.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="Bugs"/>
+<section>
+<title>WebServices - Axis - </title>
+
+<p>New Axis bugs should be reported using <a href="http://issues.apache.org/jira">JIRA</a> (the Apache bug database).</p>
+
+<ul>
+  <li>Please report bugs against the newest release.</li>
+
+  <li>If you're not sure whether the behavior in question is a bug or a feature, please post a message to the <a href="mailto:axis-dev@ws.apache.org">axis-dev</a> mailing list for clarification.</li>
+
+  <li>To avoid duplicate bug reports, please query JIRA to see whether the bug has already been reported (and perhaps fixed).</li>
+
+  <li>If you can't find your bug in the database, it would help if you could check out Axis from SVN, and build it locally to verify that the bug still exists.</li>
+
+  <li>If you have found a new bug, please enter an Axis bug report in JIRA. Remember to include the following information:
+
+    <ul>
+      <li>Version number of Axis</li>
+
+      <li>Version number of JDK (enter "java -fullversion")</li>
+
+      <li>Instructions for how to reproduce the problem, ideally including a small testcase.</li>
+    </ul>
+
+    <p><i>Before you can enter your first bug report, you must submit your email address to JIRA and receive a password.</i></p>
+  </li>
+</ul>
+
+<p>Bugs related to WSDL4J should be addressed to the Expert Group for JSR110 at <a href="http://groups.yahoo.com/group/jsr110-eg-disc">http://groups.yahoo.com/group/jsr110-eg-disc</a>.</p>
+
+<p>For more information visit the following links:</p>
+<ul>
+  <li><a href="http://issues.apache.org/jira/">Apache JIRA</a></li>
+</ul>
+
+<p>We also encourage you to write patches for problems you find and submit them to the <a href="mailto:axis-dev@ws.apache.org">axis-dev</a> mailing
+list. If we agree the problem is a bug and the patch fixes it and does not break something else, we are likely to include the patch in the next release.</p>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/contact.xml b/src/documentation/content/xdocs/contact.xml
new file mode 100644
index 0000000..6c50fb7
--- /dev/null
+++ b/src/documentation/content/xdocs/contact.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="ContactUs"/>
+<section>
+<title>WebServices - Axis - Contact Us</title>
+
+<p>If you have questions or comments <b>about this site</b>, please send email to:<br/>
+<a href="mailto:axis-dev@ws.apache.org">axis-dev@ws.apache.org</a>.</p>
+
+<p>If you have questions or comments <b>about the software or documentations on this site</b>, please subscribe to the <b>axis-user</b> mailing list:</p>
+
+<p><a href="mail.html">Mailing lists</a></p>
+
+<p>The Axis project is an effort of the Apache Software Foundation.  The address for general ASF correspondence and licensing questions is:</p>
+
+<p><a href="mailto:apache@apache.org">apache@apache.org</a></p>
+
+<p>You can find more contact information for the Apache Software Foundation on the <a href="http://www.apache.org/foundation/contact.html">contact page of the main Apache site</a>.</p>
+
+</section>
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/cvs.xml b/src/documentation/content/xdocs/cvs.xml
new file mode 100644
index 0000000..a0812ab
--- /dev/null
+++ b/src/documentation/content/xdocs/cvs.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="SVNRepositories"/>
+<section>
+<title>WebServices - Axis - SVN Repositories</title>
+
+<p>Most users of the source code probably don't need to have day to day access to the source code as it changes. For these users we provide easy to unpack source code downloads via our <a href="http://ws.apache.org/axis/java/releases.html">download pages</a>.</p>
+
+<p><b>View the Source Tree</b></p>
+
+<p>Latest SVN sources can be viewed at <a href="http://svn.apache.org/viewcvs/webservices/axis/trunk/java/">http://svn.apache.org/viewcvs/webservices/axis/trunk/java/</a></p>
+
+<p><b>Access the Source Tree </b></p>
+
+<p>So, you've decided that you need access to the source tree to see the latest and greatest code. There's two different forms of SVN access. The first is anonymous and anybody can use it. The second is not and you must have a login to the development server. If you don't know what this means, join the <a href="mail.html">mailing list</a> and find out.</p>
+
+<p>Anyone can checkout source code from our SVN server. To do so, simply use the following commands (if you are using a GUI SVN client, configure it appropriately):</p>
+
+<blockquote>
+  <table width="90%">
+    <tr bgcolor="#F2C0F6">
+      <td>
+        <source>svn co http://svn.apache.org/repos/asf/webservices/axis/trunk/java axis</source>
+      </td>
+    </tr>
+  </table>
+</blockquote>
+
+<p><b>Full Remote SVN Access</b></p>
+
+<p>If you are a <i>Committer</i> and have a login on the Apache development server, this section is for you. If you are not a Committer, but you want to submit patches or even request commit privileges, please see the <a href="http://jakarta.apache.org/site/guidelines.html">Jakarta GuideLines</a> page (we follow the same rules) for more information.</p>
+
+<p>Please browse the relevant pages on our Infrastructure site:</p>
+
+<ul>
+  <li><a href="http://www.apache.org/dev/#svn">http://www.apache.org/dev/#svn</a></li>
+</ul>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/docs.xml b/src/documentation/content/xdocs/docs.xml
new file mode 100644
index 0000000..a0435ee
--- /dev/null
+++ b/src/documentation/content/xdocs/docs.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="MiscNotes"/>
+<section>
+<title>WebServices - Axis - Misc Notes</title>
+
+<p>Misc notes and docs that might be of interest...</p>
+
+<ul>
+  <li> Notes from the 1st Face-2-Face</li>
+  <li><a href="docs/F2F-2.html">Notes from the 2nd Face-2-Face</a></li>
+  <li><a href="docs/ms-interop.html">Notes from the Interop meeting with Microsoft</a></li>
+  <li><a href="docs/SOAPVerse.html">Glen's note about SOAPVerse</a></li>
+  <li><a href="docs/CachingEarlDraft2.html">Toshi's note about Caching Mechanism</a></li>
+  <li><a href="java/soapmonitor-user-guide.html">SOAPMonitor User's Guide</a> [for nightly build]</li>
+  <li><a href="http://ws.apache.org/~toshi/jp-site/axis/index.html">Axis site in Japanese</a> [translation]</li>
+</ul>
+
+  </section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/docs/CachingEarlDraft2.xml b/src/documentation/content/xdocs/docs/CachingEarlDraft2.xml
new file mode 100644
index 0000000..d7197ee
--- /dev/null
+++ b/src/documentation/content/xdocs/docs/CachingEarlDraft2.xml
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document> 
+  <header> 
+    <title>WebServices - Axis</title> 
+  </header> 
+  <body> 
+    <section>
+      <title>WebServices - Axis - Caching Early Draft</title>
+<p>
+<TABLE border="0" WIDTH="100%" cellspacing="80">
+ <TR>
+  <TD ALIGN="CENTER">
+   <H1>
+   Draft Proposal of<br/>
+   Caching Mechanism for Axis<br/>
+   as a JAX-RPC runtime system<br/>
+   </H1>
+  </TD>
+ </TR>
+ <TR>
+  <TD ALIGN="CENTER">
+   <H2>
+   Early draft 2<br/>
+   25 Aug, 2003
+   </H2>
+  </TD>
+ </TR>
+ <TR>
+  <TD ALIGN="CENTER">
+   <H2>
+   Toshiyuki Kimura<br/>
+   Apache Axis Committer<br/>
+   toshi@apache.org
+   </H2>
+  </TD>
+ </TR>
+</TABLE>
+
+<hr/>
+<TABLE WIDTH="100%">
+ <TR><TD ALIGN="RIGHT">Copyright &copy; 2003 Toshiyuki Kimura</TD></TR>
+ <TR><TD ALIGN="LEFT" id="page2">- Page 2 -</TD></TR>
+</TABLE>
+<H2>Table of Contents</H2>
+<P>
+<TABLE BORDER="0" cellspacing="20">
+ <TR>
+  <TD>
+<a href="#section1">1. INTRODUCTION</a><br/>
+<a href="#section1.1">1.1 DESIGN GOALS</a><br/>
+<a href="#section1.2">1.2 ACKNOWLEDGMENTS</a><br/>
+<a href="#section1.3">1.3 STATUS</a><br/>
+<a href="#section1.4">1.4 NOTATIONAL CONVENTIONS</a><br/>
+<a href="#section2">2. CACHING MECHANISM USECASE</a><br/>
+<a href="#section2.1">2.1 WEATHER FORECAST SERVICE</a><br/>
+<a href="#section2.1.1">2.1.1 Service Description</a><br/>
+<a href="#section2.1.2">2.1.2 Service Use</a><br/>
+<a href="#section2.2">2.2 CACHING MECHANISMS</a><br/>
+<a href="#section2.2.1">2.2.1 Service Client</a><br/>
+<a href="#section2.2.2">2.2.2 Server Side</a><br/>
+<a href="#section3">3. REQUIREMENTS</a><br/>
+<a href="#section4">4. REFERENCE</a><br/>
+<a href="#section5">5. APPENDIX: PROTOTYPE OF CACHING MECHANISM</a><br/>
+<a href="#section6">6. APPENDIX: SAMPLE APPLICATION</a><br/>
+<a href="#section7">7. APPENDIX: UNRESOLVED ISSUES</a><br/>
+  </TD>
+  <TD>
+<a href="#page3">------ 3<br/></a>
+<a href="#page3">------ 3<br/></a>
+<a href="#page3">------ 3<br/></a>
+<a href="#page3">------ 3<br/></a>
+<a href="#page3">------ 3<br/></a>
+<a href="#page4">------ 4<br/></a>
+<a href="#page4">------ 4<br/></a>
+<a href="#page4">------ 4<br/></a>
+<a href="#page5">------ 5<br/></a>
+<a href="#page5">------ 5<br/></a>
+<a href="#page5">------ 5<br/></a>
+<a href="#page6">------ 6<br/></a>
+<a href="#page7">------ 7<br/></a>
+<a href="#page7">------ 7<br/></a>
+<a href="#page8">------ 8<br/></a>
+<a href="#page8">------ 8<br/></a>
+<a href="#page9">------ 9<br/></a>
+</TD>
+ </TR>
+</TABLE>
+</P>
+<HR id="page3"/>
+<TABLE WIDTH="100%">
+ <TR><TD ALIGN="RIGHT">Copyright &copy; 2003 Toshiyuki Kimura</TD></TR>
+ <TR><TD ALIGN="LEFT">- Page 3 -</TD></TR>
+</TABLE>
+<H1 id="section1">1. Introduction</H1>
+<DIV>
+<p>
+  At the present time, SOAP is actually famous as a transport-independent protocol. But in fact,
+HTTP protocol is the leading binding of SOAP implementations. In addition, a lot of JAX-RPC
+implementations use the HTTP POST method for invoking Web Services based on SOAP 1.1
+specification. The HTTP POST method is specified in HTTP 1.0 specification (RFC 1945) as
+uncacheable. Because of this, SOAP is also uncacheable in the present situation.</p>
+<p>
+  This document proposes a set of APIs for JAX-RPC and Messaging styles to enable the cache
+control mechanism in various SOAP implementations.
+</p>
+</DIV>
+
+<H2 id="section1.1">1.1 Design Goals</H2>
+<DIV>
+  The goals of this document are as follows:<br/>
+<UL>
+  <LI>Specify APIs for supporting Caching Mechanism for both Server side and Client side on the
+  Java platform. Caching Mechanism includes 'Enable/Disable Cache', 'Validate Cache',
+  'Reload Control', and 'Invalidate Cached Data'.</LI>
+  <LI>Define protocol-bindings independent of Caching Mechanism for SOAP Messages</LI>
+  <LI>Support both HTTP POST method and HTTP GET method as cacheable protocol bindings
+  for SOAP Messaging</LI>
+  <LI>Support interoperability across heterogeneous platforms and environments</LI>
+  <LI>Support conformance and interoperability requirements that are testable for an
+  implementation of this proposal</LI>
+</UL>
+
+<H2 id="section1.2">1.2 Acknowledgments</H2>
+  Satoshi Koyama, Takayuki Nagakura, Kenji Suzuki, and Masashi Takeichi (all from NTT DATA
+corporation and its business partners) have provided precious technical input to this document.
+
+<H2 id="section1.3">1.3 Status</H2>
+  This document is the early draft version of the proposal.
+
+<H2 id="section1.4">1.4 Notational Conventions</H2>
+<UL>
+  <LI>Diagrams follow the standard UML notation</LI>
+  <LI>Code snippets are not shown in complete form. Refer to the Java docs for complete and
+  detailed description.</LI>
+  <LI>Examples are illustrative (non-prescriptive)</LI>
+</UL>
+</DIV>
+
+<HR id="page4"/>
+<TABLE WIDTH="100%">
+ <TR><TD ALIGN="RIGHT">Copyright &copy; 2003 Toshiyuki Kimura</TD></TR>
+ <TR><TD ALIGN="LEFT">- Page 4 -</TD></TR>
+</TABLE>
+<H1 id="section2">2. Caching Mechanism Usecase</H1>
+This chapter describes use cases for the Cashing model in a non-prescriptive manner. Later
+chapters of this document specify requirements and APIs in a prescriptive manner.
+
+<H2 id="section2.1">2.1 Weather Forecast Service</H2>
+<DIV>
+  The following description uses a weather forecast service example to illustrate Caching
+Mechanism concepts.
+</DIV>
+
+<DIV ALIGN="CENTER">
+<img src="images/image2-1.gif"/>
+</DIV>
+
+<H2 id="section2.1.1">2.1.1 Service Description</H2>
+<DIV>
+  The WeatherForecastService endpoint defines and implements the following Java interface.
+</DIV>
+<B>Code Example: Interface of WeatherForecastService</B>
+<BLOCKQUOTE>
+package com.example;<br/>
+public interface WeatherForecastProvider extends java.rmi.Remote {<br/>
+int getChanceOfRain ( String areaSymbol ) throws java.rmi.RemoteException;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;// ...<br/>
+}<br/>
+</BLOCKQUOTE>
+The WeatherForecastService has the following features to note:
+<UL>
+  <LI>It returns a chance of rain for the specified area.</LI>
+  <LI>It forecasts chance of rain from observation data which is provided every 3 hours.</LI>
+  <LI>The chance of rain won't be changed until the next update of observation data, even though
+  a client has frequently access to the service.</LI>
+</UL>
+
+<hr/>
+<TABLE WIDTH="100%" id="page5">
+ <TR><TD ALIGN="RIGHT">Copyright &copy; 2003 Toshiyuki Kimura</TD></TR>
+ <TR><TD ALIGN="LEFT">- Page 5 -</TD></TR>
+</TABLE>
+<H2 id="section2.1.2">2.1.2 Service Use</H2>
+<DIV>
+  A service client uses a JAX-RPC service by invoking remote methods on a service endpoint.
+The following diagram shows how a service client uses JAX-RPC runtime and Caching
+Mechanism.
+</DIV>
+
+<DIV ALIGN="CENTER">
+<img src="images/image2-1-2.gif"/>
+</DIV>
+
+<H2 id="section2.2">2.2 Caching Mechanisms</H2>
+<DIV>
+  This section describes an overview of Caching Mechanisms.
+</DIV>
+
+<H2 id="section2.2.1">2.2.1 Service Client</H2>
+<DIV>
+  The following use case diagram shows how a client-side JAX-RPC runtime system uses local
+cached data which is stored by Caching Mechanisms.
+</DIV>
+
+<DIV ALIGN="CENTER">
+<img src="images/image2-2-1.gif"/>
+</DIV>
+
+<HR id="page6"/>
+<TABLE WIDTH="100%">
+ <TR><TD ALIGN="RIGHT">Copyright &copy; 2003 Toshiyuki Kimura</TD></TR>
+ <TR><TD ALIGN="LEFT">- Page 6 -</TD></TR>
+</TABLE>
+<H2 id="section2.2.2">2.2.2 Server Side</H2>
+<DIV>
+  The diagram shows how a server-side JAX-RPC runtime system informs that a response
+message is cacheable to the service client.
+</DIV>
+
+<DIV ALIGN="CENTER">
+<img src="images/image2-2-2.gif"/>
+</DIV>
+
+<HR id="page7"/>
+<TABLE WIDTH="100%">
+ <TR><TD ALIGN="RIGHT">Copyright &copy; 2003 Toshiyuki Kimura</TD></TR>
+ <TR><TD ALIGN="LEFT">- Page 7 -</TD></TR>
+</TABLE>
+<H1 id="section3">3. Requirements</H1>
+<DIV>
+  This chapter specifies the proposed scope and requirements for the 1.0 version of Caching
+Mechanisms. These requirements will be described in more depth in the later chapters.
+</DIV>
+
+<B>R01 Protocol Bindings</B>
+<UL>
+The goal of this document is to enable support for multiple protocol bindings. SOAP 1.1
+specification [1] provides a sample for using SOAP in HTTP protocol [4] with HTTP POST
+methods. An extended version, SOAP 1.2 [2] adds a scenario by using HTTP GET methods.
+<B>Note:</B> HTTP 1.0 [3] does not allow caching for HTTP POST methods, however HTTP 1.1 adds
+some additional rules to enable caching mechanisms for HTTP POST methods.
+</UL>
+
+<B>R02 Transport</B>
+<UL>
+As a minimum this caching mechanism is required to support HTTP 1.1 as the transport for
+SOAP message. HTTP binding for the SOAP message is based on the SOAP 1.1 specification
+[1].
+</UL>
+
+<H1 id="section4">4. Reference</H1>
+<UL>
+  <LI>[1] W3C Note: SOAP 1.1: <link href="http://www.w3c.org./TR/SOAP/">http://www.w3c.org./TR/SOAP/</link></LI>
+  <LI>[2] W3C: SOAP 1.2: <link href="http://www.w3c.org/TR/soap12/">http://www.w3c.org/TR/soap12/</link></LI>
+  <LI>[3] HTTP 1.0 <link href="http://www.w3.org/Protocols/rfc1945/rfc1945">http://www.w3.org/Protocols/rfc1945/rfc1945</link></LI>
+  <LI>[4] HTTP 1.1: <link href="http://www.w3.org/Protocols/rfc2616/rfc2616">http://www.w3.org/Protocols/rfc2616/rfc2616</link></LI>
+</UL>
+
+<HR id="page8"/>
+<TABLE WIDTH="100%">
+ <TR><TD ALIGN="RIGHT">Copyright &copy; 2003 Toshiyuki Kimura</TD></TR>
+ <TR><TD ALIGN="LEFT">- Page 8 -</TD></TR>
+</TABLE>
+<H1 id="section5">5. Appendix: Prototype of Caching mechanism</H1>
+<DIV>
+  In order to demonstrate the feasibility of Caching Mechanisms, I made a prototype of a cache
+controller which provides a local cache on the service client side.
+</DIV>
+
+<DIV ALIGN="CENTER">
+<img src="images/image5.gif"/>
+</DIV>
+
+<DIV>
+  The hatched areas indicate the extended modules for Apache Axis as a typical JAX-RPC
+implementation. The detail of this implementation (i.e. class diagram, sequence diagram, and
+Java docs) will be provided after translation and review.
+</DIV>
+
+<H1 id="section6">6. Appendix: Sample Application</H1>
+<DIV>
+  This sample application uses the WeatherForecastService to enable a cacheable scenario. When
+an end-user sets a location (like as Tokyo, Osaka, or Kyoto) and invokes the service, the
+system returns chance of rains for the specified area. Additionally, if the request is cached data
+and the cache is still valid data, the response message will be picked up from the cache
+repository.
+</DIV>
+
+<DIV ALIGN="CENTER">
+<img src="images/image6.gif"/>
+</DIV>
+
+<DIV>
+<B>Note:</B> The role of the HTTP Header Handler is to set a HTTP protocol header for cache controls.
+</DIV>
+
+<HR id="page9"/>
+<TABLE WIDTH="100%">
+ <TR><TD ALIGN="RIGHT">Copyright &copy; 2003 Toshiyuki Kimura</TD></TR>
+ <TR><TD ALIGN="LEFT">- Page 9 -</TD></TR>
+</TABLE>
+<H1 id="section7">7. Appendix: Unresolved issues</H1>
+<DIV>
+  The following items are to be determined.
+</DIV>
+
+<TABLE BORDER="1" WIDTH="90%" ALIGN="CENTER">
+ <TR ALIGN="CENTER">
+  <TH>ID</TH><TH>Name</TH><TH>Detail (actual state)</TH>
+ </TR>
+ <TR>
+  <TD>1</TD><TD>Dynamic cache-control API</TD><TD>The current version only provides static configurations with
+server-config.wsdd.</TD>
+ </TR>
+ <TR>
+  <TD>2</TD><TD>SwA (SOAP Messages with Attachments)</TD><TD>The current version doesn't support caching a response which
+has attachment parts.</TD>
+ </TR>
+ <TR>
+  <TD>3</TD><TD>Protocol-bindings independent Caching Mechanism</TD><TD>The current version is a prototype for HTTP bindings. To
+create a protocol-bindings independent Caching Mechanism,
+the following needs to be done;
+  <UL>
+    <LI> Specify a standard SOAP Message header to cache</LI>
+    <LI> Implement a SOAP Message setter on server side</LI>
+    <LI> Implement a SOAP Message parser on client side</LI>
+  </UL></TD>
+ </TR>
+</TABLE>
+
+<HR id="page10"/>
+<TABLE WIDTH="100%">
+ <TR><TD ALIGN="RIGHT">Copyright &copy; 2003 Toshiyuki Kimura</TD></TR>
+ <TR><TD ALIGN="LEFT">- Page 10 -</TD></TR>
+</TABLE>
+<TABLE BORDER="0" WIDTH="100%" CELLSPACING="100">
+ <TR><TD></TD></TR>
+ <TR><TD>
+  <BLOCKQUATE>
+  Sun, Sun Microsystems, and Java are trademarks or registered trademarks of
+  Sun Microsystems, Inc. All other product names mentioned herein are
+  trademarks of their respective owners.
+  </BLOCKQUATE>
+ </TD></TR>
+</TABLE>
+</p>
+    </section>
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/docs/F2F-2.xml b/src/documentation/content/xdocs/docs/F2F-2.xml
new file mode 100644
index 0000000..ec03972
--- /dev/null
+++ b/src/documentation/content/xdocs/docs/F2F-2.xml
@@ -0,0 +1,436 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document> 
+  <header> 
+    <title>WebServices - Axis</title> 
+  </header> 
+  <body> 
+    <section>
+      <title>WebServices - Axis - </title>
+<p>
+<h2>Notes from Axis Face-to-Face Meeting at Allaire, Newton, MA.  </h2>
+<h3>Date: 28 Feb 2001</h3>
+<b>Attendees:</b>
+<ul>
+<li>Glen Daniels, Allaire.  Host</li>
+<li>Doug Davis, IBM Raleigh</li>
+<li>Steve Graham, IBM Raleigh</li>
+<li>Jim Stearns, HP Redmond</li>
+<li>Jacek Kopecky,  Idoox, Prague</li>
+<li>Waqar Sadiq, Vitria</li>
+<li>James Snell, IBM Fresno (by phone)</li>
+<li>Stuart Williams, HP Bristol</li>
+</ul>
+
+<p>Glen expressed some frustration at the lack of good tools that Apache provides for project management.  The mailing list archives kind of bite, etc.  SourceForge seems to have good tools for scheduling / task management / collaboration...</p>
+
+<p><i><b>ACTION ITEM : Glen will email Sam and ask about the possibility of "co-locating" the project with SourceForge? Investigating other tools and solutions?</b></i></p>
+
+<p>Waquar Sadiq from Vitria, a new member of the team, volunteered to be Project Manager for Axis!  (applause applause)</p>
+
+<p>Steve presented a short Powerpoint presentation to frame the meeting.</p>
+
+Axis 1.0 will be a serious product.  As such, it will have:
+<ul>
+<li>product-level code</li>
+<li>product-level testing</li>
+<li>product-level doc + examples</li>
+<li>product-level performance</li>
+</ul>
+
+<h4>Goals for the 1.0 release:</h4>
+<ul>
+<li>Full SOAP 1.1 implementation</li>
+<ul>
+  <li>Interoperability testing/discussions to answer ambiguities</li>
+  <li>Intermediary implementation must be in 1.0 release</li>
+</ul>
+<li>Relative priority (Glen)</li>
+   <ul>
+   <li>Full implementation of 1.1</li>
+   <li>Customer requirements</li>
+   <li>Where xmlp is headed (Glen, Waqar, Jacek are all on XML Protocol group)</li>
+   </ul>
+
+<li>Fast (need to do the streaming parsing)</li>
+<li>Pluggable</li>
+</ul>
+
+<p>Support for requestor/provider/intermediary (one-way, initiated by either side); client notification.
+Support for request/response and the other 3 transmission primitives from WSDL</p>
+
+<p>Glen : Don't think we should make the axis-user list until 0.9 or beta 1.0...</p>
+
+<p>Issue : Migrating from Apache SOAP to Axis - should be easy, but how easy?</p>
+
+<p>Waqar: We should be tracking ebXML as well as XMLP...</p>
+
+<h5>Testing/Process-related discussion...</h5>
+<ul>
+<li>coding standards</li>
+<li>test-case centric development</li>
+<li>regression test cases</li>
+<li>scenario-centric design/architecture</li>
+<li>Unit tests are good, but not sufficient</li>
+<li>Is JUnit too oriented towards "white box" unit testing?  Jim says they're using it as a framework at HP for both unit and functional.</li>
+<li>Three types of testing - unit, functional integration, interop</li>
+<li>conformance testing; maybe use the userland validator? leverage external efforts? Microsoft "bakeoff"?</li>
+<li>interop testing with big players (.NET) is crucial!</li>
+<li>Requiring some level of testing implementation from commmitters is key.  The question is how to best codify this in a strong but not draconian way</li>
+</ul>
+
+The plan for the rest of today:
+<ul>
+<li>Walk through requirements doc</li>
+<li>Generate scenarios</li>
+<li>walk through scenarios, updating requirements</li>
+</ul>
+
+
+<h3>Requirements discussion</h3>
+<ul>
+ <li>lose
+     1.1 and 1.1.1: architecture is settling  not overdoing use of handlers</li>
+ <li>server-initiated
+     solicit/response (in WSDL spec)</li>
+ <li>4
+     options (synch/asynch, client-initiated vs server-initiated)</li>
+ <ul type="circle">
+  <li>requestor/provider
+      </li>
+  <li>Facets
+      (Steve):</li>
+  <ul type="square">
+   <li>Who
+       initiates (server or client)</li>
+   <li>1-way/2-way</li>
+   <li>asynch/synch</li>
+   <li>(1-way
+       synch makes no sense, so 7 options)</li>
+   <li>2-way
+       asynch?</li>
+  </ul>
+  <li>Glen:
+      what is underlying protocol doesn't support synchronous (such as smtp)?</li>
+  <li>Waqar:
+      what about async request expecting ack, vs. one not expecting one?</li>
+  <li>Is this (a)synchronous at the <b>API</b> level, or the <b>transport</b> level?</li>
+  <li>Call
+      this topic "message exchange patterns"</li>
+  <li>"Synchronous"
+      == blocking</li>
+  <li>everything is initiated
+      by a client of the axis engine, which can be on requestor,
+      intermediary, or provider</li>
+  <li>Q:
+      in a one-way WSDL message, can you specify a fault? James: yes, but spec doesn't say what
+      to do with the fault. Stuart:
+      thinks treatment of fault is above the message layer.</li>
+  <li>WSDL
+      1.1 one-way only has input, but doesn't have output or fault (Steve
+      brought up)</li>
+  <li>Stuart:
+      Service in wsdl is more like operation.</li>
+ </ul>
+ <li>What
+     can we dispatch by?</li>
+ <ul type="circle">
+  <li>Dispatch
+      by transport URL</li>
+  <li>Dispatch
+      by HTTP SOAPAction</li>
+  <li>Dispatch
+      by QName of first body entry</li>
+  <li>Dispatch,
+      using custom handler, by any information available)</li>
+ </ul>
+ <li>How
+     many RPC's per message, and where</li>
+ <ul type="circle">
+  <li>Axis
+      will NOT support a RPC invocation specified in a header</li>
+  <li>Axis
+      will support only one RPC invocation per body entry.</li>
+  <li>Suggestion to remove "first" from body child, 6-2 against.</li>
+ </ul>
+ <li>XML
+     Prototocol - Status</li>
+ <ul type="circle">
+  <li>Something
+      will be published in April  issues with SOAP 1.1 that need to be fixed</li>
+  <li>July-ish:
+      first XML protocol spec  soap 1.1 with fixes to some issues</li>
+  <li>November:
+      proposed recommendation</li>
+  <li>December:
+      1.0 spec  recommendation</li>
+ </ul>
+ <li>Intermediaries:
+     Glen: TRLSoap has implemented them to some extent.</li>
+ <ul type="circle">
+  <li>Steve:
+      state of the art is Single-hop fake.</li>
+ </ul>
+ <li>SOAP
+     Encoding Support</li>
+ <ul type="circle">
+  <li>We
+      use for RPC, and yet won't require xsi:type (<b>type info can come from a
+      reference to a schema outside the message</b>) </li>
+ </ul>
+ <li>Performance</li>
+ <ul type="circle">
+  <li>Action
+      Item: need to research alternative benchmarks for SOAP performance (Jim
+      volunteered) and for interoperability.</li>
+  <ul type="square">
+   <li>UI</li>
+  </ul>
+  <li>Glen
+      was willing to prioritize "not significantly slower" as want but not
+      required. Jim advocated that we
+      need at release, and Steve agreed.</li>
+ </ul>
+</ul>
+
+<p>Discussion of metrics - some arguments as to whether it's a Handler or an API.  Well, logging is an API, maybe metrics are as well...</p>
+
+<p><i><b>ACTION ITEM: Glen will investigate JRun's metrics API and share with the group.</b></i></p>
+
+<p>We need to have some kind of "Required header" parameter either in the WSDD or as an API in the Handler itself if we want "pre-flight" knowledge of required headers (and perhaps a default fault response)...</p>
+
+<p>Big discussion about header handling - jukebox handler, there were worries that it's a security risk.  Glen notes that the handlers that are in the jukebox's registry are limited, just like the handlers on a chain, you just don't need to call them all in order...doesn't seem like a risk.</p>
+
+
+<hr/>
+
+<h2>Day 2</h2>
+<h3>1 March 2001</h3>
+
+<b>Attendees:</b>
+<ul>
+<li>Glen</li>
+<li>Steve</li>
+<li>Doug</li>
+<li>Jacek</li>
+<li>Jim</li>
+</ul>
+
+Agenda (wish list):
+<ul>
+<li>Finish revision of requirements</li>
+<li>Develop rough use case scenarios</li>
+<li>Revisit requirements after use cases</li>
+<li>Glen: supplier pattern</li>
+<li>Steve: WSDD</li>
+<li>All: streaming parser</li>
+</ul>
+
+<p>Code on BOTH client and Server looks like this?</p>
+
+<code>
+Handler handler = Axis.getHandler(name1);<br/>
+MessageContext mc = new MessageContext();<br/>
+// set up MC properties, including target!<br/>
+handler.invoke(mc);<br/>
+</code>
+
+<h3>Requirements review, continued</h3>
+
+<ul>
+ <li>Service
+     Description</li>
+ <ul type="circle">
+  <li>Interaction
+      between WSDL and WSDD. Each can
+      be used to create the other?</li>
+  <li>Steve:
+      hard to generate wsdl for document (rather than rpc).</li>
+  <li>Jacek:
+      treat the WSDD as the master</li>
+  <li>Jim:
+      no, WSDL is the standard, WSDD is just our team's proposal.</li>
+  <li>Glen:
+      WSDD may not contain all the info needed to generate a WSDL file</li>
+  <li>WSDD
+      can contain either (1) pointer to existing WSDL file or (2) enough data
+      (possibly, but not certainly) to generate a WSDL from scratch, or (3)
+      enough data which in combination with existing WSDL, to generate an
+      updated WSDL.</li>
+  <li>WSDD
+      should provide cross-checking (WSDL not consistent with WSDD)</li>
+  <li>(I
+      missed some issues here: there's flexibility here that makes this
+      difficult  e.g. what serializer?)</li>
+  <li>DISCO
+      on Axis root added.</li>
+  <li>Client-side</li>
+  <ul type="square">
+   <li>Default
+       will be simple case: generate a proxy</li>
+   <li>But
+       WSDL can require a digital signature header  want to be able to have
+       WSDD on client side to deploy a chain that includes a digital signature
+       generator.</li>
+   <li>Doug:
+       where to get digital signature handler?</li>
+	   <ul>
+   <li>Steve/Glen: wsdl can include pointer to handler.</li>
+   <li>Glen: there are extension elements in
+       WSDL.</li>
+	   </ul>
+   <li>Added
+       as wish proxy generation from wsdl (and wsdd). Stated: java, possibly c++</li>
+  </ul>
+ </ul>
+ <li>Platform</li>
+ <ul type="circle">
+  <li>Surprising
+      amount of interest in doing C++ implementation (Glen, Steve, Jacek) for
+      performance, but was listed as wish [P5]. Background: James Snell added this, including using local
+      services (e.g. COM).</li>
+ </ul>
+ <li>Transports
+     </li>
+ <ul type="circle">
+  <li>SMTP
+      sender and POP3 poller.  Assume external mail server
+      available.  This is what
+      Apache SOAP 2 does.</li>
+  <li>Glen:
+      do we want to provide a generic (fast) transport between handlers?</li>
+  <ul type="square">
+   <li>Transport
+       Sender</li>
+   <li>Glen:
+       all transport-specific chains end in a router. Oops, maybe not; if no router at end, look at target
+       service field and if not null, invoke that service; then look <i>again</i> to see if target service is not null.  Loop until null.</li>
+   <li>Order</li>
+   <ul>
+    <li>Transport
+        chain  no router</li>
+    <li>Global
+        chain  no router</li>
+   </ul>
+  </ul>
+  <li><i>(Lots
+      of discussion on axis engine and dispatching)</i></li>
+  <li>Jim
+      asked whether any of these transport cases could be punted  these
+      asymmetric cases of HTTP request asking for SMTP response. Glen, Steve, Jacek all said no, we
+      need to support all of these.</li>
+  <li>(Discussion
+      over how to send asymmetric response to request sent over one-way
+      protocol: callback, or configure in a Transport Sender and if return
+      message is non-null, send and then null out return message so it. Callback or null-out message? Steve and Jacek: putting up to
+      committer vote would be a big morass? Jacek: ok, grumble, fallback.</li>
+  <li>Doug:
+      are we going to support multi-cast? Jacek: why not? Jim: why?</li>
+  <li>Things
+      that Transport Listener must call and set:</li>
+  <ul type="square">
+   <li>Static
+       handler Axis.getHandler(String tlID);</li>
+   <li>Request
+       chain bag ID</li>
+   <li>Response
+       chain bag ID</li>
+   <li>Target
+       bad ID</li>
+   <li>Transport
+       Sender</li>
+  </ul>
+  <li>Jacek
+      prefers many small registries over fewer larger ones. Glen said that smaller hash tables
+      perform lookups faster.</li>
+  <ul type="square">
+   <li>Services (deployed handlers)</li>
+   <li>Handlers
+       (available handlers)</li>
+   <li>(After
+       much discussion, settled on 2)</li>
+  </ul>
+ </ul>
+ <li>Data
+     Encoding</li>
+ <ul type="circle">
+  <li>Steve:
+      (de)serialization only makes sense for RPC, not document handling.</li>
+  <li>Jacek
+      would love to see general serialization at 1.0 release.</li>
+  <li>Serialization
+      may occur anywhere, not in one fixed place in Axis architecture.</li>
+ </ul>
+</ul>
+
+
+<h2>Streaming Parser Discussion</h2>
+
+<p>For reading in input, we use the PDOM model - <br/>
+We have either a SAX event source or a pull parser underneath something that looks like JDOM.<br/>
+In the SAX case:<br/>
+<ol>
+<li>a thread starts processing the SAX event stream, and blocks until told to continue.</li>
+<li>When people ask for a particular element (i.e. getNextChild()), the parser thread unblocks, and runs the SAX event stream through, building up the JDOM object model, until it gets to the desired element/attribute/etc.  Then it blocks again, and returns control to the getWhatever() API.</li>
+</ol>
+</p>
+Sot the Message API gets: (or maybe JDOM gets the latter three)<br/><br/> 
+<code>
+getAsElement()<br/>
+parseAsSAX(SAXHandler)<br/>
+getAsXMLStream()<br/>
+getAsByteStream()<br/>
+</code>
+
+<p>Does getAsByteStream() terminate the option of doing anything else afterwards?</p>
+
+How do we test this?  Metrics:
+<ol>
+<li>Use PDOM, read first few elements, then stream rest to file</li>
+<li>Use JDOM, process first few elements, then write to file</li>
+<li>Stream bytes from file to file</li>
+</ol>
+<p>do this for small (1K), medium (50K), and large (10 meg) files</p>
+
+<p>On the output side, we should be able to setAsStream, and hand the element a stream which will eventually be pulled for content when someone does a getAsStream() on the whole doc.  This means a proxy stream which clunks its way down the message, draining streams it encounters along the way.</p>
+
+<p>Open question - is it easy/efficient to get a JDOM Element as a stream/string, as opposed to a whole doc?  Looks like Element.getSerializedForm() isn't implemented yet?</p>
+
+<p>Pull parser discussion - if possible, a real pull parser would avoid the multi-threading, and probably perform better than the SAX-based PDOM model.  We'll look into this!</p>
+
+<hr/>
+
+<p>Project Participants:</p>
+
+<ul>
+ <li>PM: Waqar
+     (Vitria)</li>
+ <li>Coders:
+     Doug, Steve, Glen, Jacek, Jim, James, Yuichi, Ryoh</li>
+ <ul type="circle">
+  <li>Glen
+      and Doug can work on this a lot</li>
+  <li>James
+      doing stuff</li>
+  <li>Steve
+      doesn't have much time for coding</li>
+ </ul>
+ <li>Others:
+     George, Chris Nelson, Kevin Mitchell, Sanjiva, Matt, </li>
+ <li>Sam
+     for political and process stuff.</li>
+ <li>Connection
+     to XML Protocol: Glen, Waqar, Jacek</li>
+ <ul type="circle">
+  <li>Stuart
+      for Conversations</li>
+ </ul>
+ <li>Connection
+     to Apache 2.x: Doug, Glen, Sanjiva</li>
+ <li>(Glen:
+     SOAP 2.1 documentation is bad, could impact us  less credibility).</li>
+</ul>
+</p>
+    </section>
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/docs/SOAPVerse.xml b/src/documentation/content/xdocs/docs/SOAPVerse.xml
new file mode 100644
index 0000000..951bb93
--- /dev/null
+++ b/src/documentation/content/xdocs/docs/SOAPVerse.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document> 
+  <header> 
+    <title>WebServices - Axis</title> 
+  </header> 
+  <body> 
+    <section>
+      <title>WebServices - Axis - SOAPVerse</title>
+<p>
+Hi folks!
+</p>
+<p>
+This is a quick writeup of an idea that a bunch of folks had last week while
+discussing interoperability demos and tests. It's a pretty simple system
+which we thought was a) fun, b) technically interesting, and c) quite a
+compelling demo. I'd like to know what people think of the idea - is this
+too ambitious, is it something you'd be psyched to help design/implement,
+is it cool?
+</p>
+<p>
+The SOAPVerse : A long-term SOAP interoperability demo<br/>
+------------------------------------------------------<br/>
+</p>
+<p>
+[1.0 Introduction - the view from outside]
+</p>
+<p>
+I'll start explaining the idea by giving a brief scenario. You connect a
+browser to SOAPVerse.org, which gives you three choices - 1) enter the
+SOAPVerse, 2) look at the map, and 3) learn about joining. You choose #1,
+and are offered a list of available clients and "entry portals" (i.e.
+clients (no, not "IE clients", necessarily...)) on the web. You choose a
+local entry portal, and a Java applet appears, primarily composed of a text
+window:
+</p>
+<p>
+--------------<br/>
+SOAP Tower<br/>
+</p>
+<p>
+You stand in the SOAP tower. The floor's a bit slippery here, but you
+suspect you could make it to the exits to the NORTH or EAST if you walked
+slowly.
+</p>
+<p>
+There is a briefcase sitting here.
+</p>
+<p>
+(this room lives at foo.ibm.com, and is powered by Tomcat/Apache-SOAP 2.1!)
+--------------<br/>
+</p>
+<p>
+It's a text adventure, much like Zork or Colossal Cave, but a lot simpler.
+The interesting part happens when you move to the East:
+</p>
+<p>
+--------------<br/>
+[a strange feeling overcomes you for a moment as you pass through the door]
+</p>
+<p>
+Campus West
+</p>
+<p>
+You stand on the Microsoft campus, near building 33. You may ENTER, or
+travel WEST or SOUTH down the main road.
+</p>
+<p>
+Others in this room : KeithB
+</p>
+<p>
+There is a rubber ducky sitting here.
+</p>
+<p>
+(this room lives at bar.microsoft.com, and is powered by IIS/ASP.NET!)<br/>
+---------------<br/>
+</p>
+<p>
+What just happened is that you smoothly and transparently moved from one
+SOAP-based server to another. The servers had to interoperate to "pass you
+off", and anyone who wants to go check out the website can see the deeper
+technical explanation of what's going on.
+</p>
+<p>
+If you'd selected the "map" option, you'd see a cool graphical depiction of
+the whole graph of rooms currently connected to the SOAPVerse, color-coded
+by host/server technology.
+</p>
+<p>
+[2.0 Digging a little deeper]
+</p>
+<p>
+That's the basic idea - a totally distributed text adventure game that
+demonstrates SOAP interoperability at a number of levels. The actual APIs
+are pretty simple, and should be implementable in few days at the most.
+</p>
+<p>
+So if you go to the "join us" section of the site, you end up with several
+things. First, a description of the structure of the application, in
+enough
+detail that you could implement it on your own site. This can (and should)
+be in as many forms as possible - english text, WSDL, SDL, IDL, etc....
+So you build the server to the spec, in any language/environment/platform
+you happen to have handy.
+</p>
+<p>
+Next, you find a form which allows you to test your server once you've got
+it up. This causes the SOAPVerse server to run a series of tests against
+your endpoint, to see if you can interoperate with it. Assuming that
+works,
+you can click "hook me up!" and the SOAPVerse server randomly picks a place
+on the graph to add your area, and matchmakes a connection between your
+server and whoever you're connecting to. The tests should get run again
+between you and this new guy, to make sure you two interoperate (you don't
+want to just prove interoperation between the "main" server and your impl),
+and then if everything looks good, you're now a part of the world, and your
+rooms appear on the master map.
+</p>
+<p>
+There's some more detail about which kinds of things we're testing with a
+system like this (data serialization, headers, intermediaries?), actual
+APIs,
+etc. but I'll convey my thoughts about that in a design discussion if
+there's
+enough community interest in this project.
+</p>
+<p>
+[3.0 Musings]
+</p>
+<p>
+This kind of thing serves at least two purposes. First, it can stay up in
+perpetuity, demonstrating SOAP interoperability in a fun way. This should
+be something you can always find, and hook new servers into. Second, it's
+a
+good demo for tradeshow-type events.
+</p>
+<p>
+Obviously there's a lot of opportunity for errors to happen here, so the
+system shouldn't assume too much about robustness, and should gracefully
+fail in the face of problems. It's meant as an interoperability demo,
+not a full-scale game.
+</p>
+<p>
+None of this is at all carved in stone, we just liked the basic idea. It
+shouldn't get too complicated, and it shouldn't rely on any particular
+implementation.
+</p>
+<p>
+If this could get done by late next month, this could be the actual
+technolgy
+for the "interopathon" demo which has been discussed for NetWorld/Interop
+in May.
+</p>
+<p>
+What do you think?
+</p>
+<p>
+--Glen
+</p>
+    </section>
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/docs/ms-interop.xml b/src/documentation/content/xdocs/docs/ms-interop.xml
new file mode 100644
index 0000000..f5a29ba
--- /dev/null
+++ b/src/documentation/content/xdocs/docs/ms-interop.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document> 
+  <header> 
+    <title>WebServices - Axis</title> 
+  </header> 
+  <body> 
+    <section>
+      <title>WebServices - Axis - Summary of Apache/Microsoft Interoperability Meeting</title>
+<p>
+Summary of Apache/Microsoft Interoperability Meeting<br/>
+March 12-14, 2001
+</p>
+<p>
+From Apache: Glen Daniels, Jim Stearns, Doug Davis<br/>
+From MS: (main contacts) Keith Ballinger, Andrew Layman, Eric Andrae
+</p>
+<p>
+Most of the 3 days were spent testing Apache SOAP v2.1 and Axis against
+the 5 different versions of SOAP MS has (one being an IE client).
+Since Axis doesn't have serialization support yet (just Strings) it
+was limited in what it could do, but for those simple tests that
+did NOOPs or tested Strings it did ok as a client and a server (just
+a few minor tweaks were needed).
+</p>
+<p>
+Apache SOAP v2.1 did much better.  There were a few bugs (and holes)
+that were discovered but Glen was able to track them down and, I think,
+fix all of them.  He's in the process of trying to see if the
+fixes can be integrated back into the cvs tree, but is unsure about
+one of the fix's impact on the MIME support - but we'll see.
+</p>
+<p>
+MS has 5 different versions of SOAP and they've been doing some of
+their own interoperability testing internally so I think they were
+able to flush out most(all) of their differences before we got there.
+However, we did manage to find a bug (or two?) in their code 8-)
+but overall they had things pretty well covered.
+</p>
+<p>
+For better or worse, MS is very WSDL dependent. If the industry is
+headed down the path of basically requiring WSDL then Apache might
+need to do so as well.
+</p>
+<p>
+We had two strategy meetings in which we discussed how to improve
+interoperability testing/conformance in the future, not just between
+Apache and MS but everyone.  We decided to set-up a consortium in
+which different SOAP implementations can join and test their version
+of SOAP against the others in the group.  The main purpose of the
+group would be to focus attention on interoperability issues and not
+necessarily prove conformance to the SOAP spec.  While we will have
+testcases that we "believe" test some aspects of conformance we can
+not be the defining authority on who is, or is not, spec compliant.
+All we can do is pretty much help people say that their SOAP code
+can, or can not, play nicely with others in the group.  That being
+said, there are some definite MUSTs and MUST NOTs in the spec and
+we will have some tests that test those so we'll be walking a fine
+line.
+</p>
+<p>
+We will also group tests based on sections of the SOAP spec.  Not
+everyone will want to implement all sections of the spec but will
+still want to test conformance based on what they have implemented.
+</p>
+<p>
+To help this "consortium" we're going to set-up a web site
+(Jim has already reserved wsinterop.org and soapinterop.org) where
+people can post their testcases and test results.  We also talked about
+having pointers to "live" servers that people can hit to test their
+SOAP implementations.  It wasn't decided how Apache will work this.
+<br/><b>****TODO*****</b><br/>
+We need to get someone to volunteer to set this up/host it.
+</p>
+<p>
+Along the lines of getting interoperability, we discussed showcasing
+how nicely we're all playing together.  8-)  In particular we
+discussed having a live demo at a conference (maybe NetWorld Interop
+in May) where people can hook up their machines in our network of
+computers and join in "the game".  "The game" will consist of a fairly
+simple maze type of game - each server will own a certain number of
+rooms and clients will be able to walk from room to room examining,
+and placing, objects in each one.  We'll define a set of base SOAP 
+interfaces that people will need to implement and if they do then
+they should be able hook-in their server and extend the maze.
+</p>
+<p>
+Glen is working on the write-up of the overall idea and will
+distribute it once it's done.  In order to help things along we
+agreed to try to have another F2F around the end of April where we
+will all get together in a room to hash-out the details of the
+game/interfaces and to actually code it up.  I (Dug) have agreed to
+see if IBM will host it in Raleigh.  Glen is going to see if 
+Allaire (aka Macromedia) will be willing to work on the GUI that
+the main-server will use to display the status of the game.
+</p>
+    </section>
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/faq.xml b/src/documentation/content/xdocs/faq.xml
new file mode 100644
index 0000000..5eaa13a
--- /dev/null
+++ b/src/documentation/content/xdocs/faq.xml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document> 
+  <header> 
+    <title>WebServices - Axis</title> 
+  </header> 
+  <body> 
+    <section>
+      <title>WebServices - Axis - FAQ - Table of Content</title>
+
+<p>These questions seem to be frequently asked:
+<ul>
+<li>
+<a href="#faq1">What is Axis? What is its relationship to Apache SOAP?</a></li>
+
+<li>
+<a href="#faq2">Why call it "Axis"?</a></li>
+
+<li>
+<a href="#faq3">Is Axis close to a release of some kind?</a></li>
+
+<li>
+<a href="#faq4">What is Axis's status overall?</a></li>
+
+<li>
+<a href="#faq5">Why do some classes fail to load under Tomcat?</a></li>
+
+<li>
+<a href="#faq6">What if I can't find the answer to my question here?</a></li>
+
+<li>
+<a href="#faq7">How do I report bugs?</a></li>
+
+<li>
+<a href="#faq8">How does Axis create my backend service objects?&nbsp;
+Can I control this?</a></li>
+
+<li>
+<a href="#faq9">So does Axis support sessions?</a></li>
+
+<li>
+<a href="#faq10">Cool, SOAP header-based sessions?&nbsp; How do I make
+that work?</a></li>
+
+<li>
+<a href="#faq11">What else can I do with sessions?</a></li>
+
+<li>
+<a href="#faq12">How do I get access to the MessageContext in my service
+object?</a></li>
+
+<li>
+<a href="#faq13">Where do I put my &lt;typeMapping>/&lt;beanMapping> information?</a></li>
+
+<li>
+<a href="#faq14">What is the relationship between JAXM and Axis?</a></li>
+
+<li>
+<a href="#faq15">How does Axis figure out which deployed service to call?</a></li>
+
+<li>
+<a href="#faq16">How do I associate a namespace mapping with my service?</a></li>
+
+<li>
+<a href="#faq17">How do I set a timeout when using WSDL2Java stubs?</a></li>
+
+<li>
+<a href="#faq18">How do I set a header when using WSDL2Java stubs?</a></li>
+
+</ul>
+
+</p>
+</section>
+    <section>
+      <title>WebServices - Axis - FAQ - Answers</title>
+<p>
+<a name="faq1"></a><i>What is Axis? What is its relationship to Apache
+SOAP?</i>
+<blockquote>Axis is essentially Apache SOAP 3.0. It is a from-scratch rewrite,
+designed around a streaming model (using SAX internally rather than DOM).
+The intention is to create a more modular, more flexible, and higher-performing
+SOAP implementation (relative to Apache SOAP 2.0).</blockquote>
+<a name="faq2"></a><i>Why call it "Axis"?</i>
+<blockquote>The name "Axis" was chosen because, when the project started,
+the XML Protocol working group had not chosen a name for its protocol.
+The intent was for Axis to support SOAP 1+, XML-RPC, and XMLP (whatever
+it wound up being called), so calling it "Apache SOAP 3.0" would have missed
+the mark. Recently, the XML Protocol working group decided to retain the
+SOAP name, so perhaps it would have been better to keep Axis as part of
+the Apache SOAP project. C'est la vie.
+<p>(According to the README, Axis stands for "Apache eXtensible Interaction
+System", which could mean almost anything.)</p></blockquote>
+<a name="faq3"></a><i>Is Axis close to a release of some kind?</i>
+<blockquote>The first beta was released on March 15, 2002, the second
+on April 29, 2002, and the third on July 9, 2002.
+We are hoping for a 1.0 release in the Summer of 2002.</blockquote>
+<a name="faq4"></a><i>What is Axis's status overall?</i>
+<blockquote>To keep track of Axis's progress:
+<ul>
+<li>
+<link href="http://www.apache.org/~rubys/ApacheClientInterop.html">Sam Ruby's
+Axis/SOAP interop page</link></li>
+
+</ul>
+</blockquote>
+<a name="faq5"></a><i>Why do some classes fail to load under Tomcat?</i>
+<blockquote>Tomcat will not load classes with package names starting "java."
+or "javax." from the WEB-INF directory. jars containing such classes need
+to be installed in $TOMCAT_HOME/common/lib rather than in WEB-INF/lib.
+Currently (April 25, 2002) jaxrpc.jar is such a jar.</blockquote>
+<a name="faq6"></a><i>What if I can't find the answer to my question here?</i>
+<blockquote>Try the <link href="mail.html">mailing lists</link>.</blockquote>
+<a name="faq7"></a><i>How do I report bugs?</i>
+<blockquote>See <link href="bugs.html">bugs</link>.</blockquote>
+<a name="faq8"></a><i>How does Axis create my backend service objects?&nbsp;
+Can I control this?</i>
+<blockquote>Axis supports a "scope" parameter on services, which can be
+set to "request" (make a new object to service each request - this is the
+default), "session" (associate a new object with each session), and "application"
+(all users share a singleton object).&nbsp; WARNING: If you set the scope
+to "session" or "application", it is possible that multiple threads of
+control may attempt to access your object's methods at the same time. It
+is your responsibility to ensure that your objects are thread-safe in these
+cases.</blockquote>
+<a name="faq9"></a><i>So does Axis support sessions?</i>
+<blockquote>Yes.&nbsp; We have a session abstraction which allows an extensible
+set of underlying implementations - take a look at the class org.apache.axis.session.Session
+for details.&nbsp; In particular, we currently support sessions based on
+HTTP cookies and also transport-independent sessions based on SOAP headers.&nbsp;
+It is up to some handler on the request chain to set up an appropriate
+Session implementation and attach it to the MessageContext with MessageContext.setSession()
+so that anyone who wants to use session semantics can get at it.</blockquote>
+<a name="faq10"></a><i>Cool, SOAP header-based sessions?&nbsp; How do I
+make that work?</i>
+<blockquote>There is a Handler class called "org.apache.axis.handlers.&nbsp;
+SimpleSessionHandler" which implements this functionality. You need to
+include this handler in the request and response flows of both your client
+and your server.&nbsp; Take a look at our session test (test.session.TestSimpleSession)
+for an example.</blockquote>
+<a name="faq11"></a><i>What else can I do with sessions?</i>
+<blockquote>Any time after the session context has been established, calling
+getSession() on the current messageContext will obtain you a reference
+to a Session object.&nbsp; You may use this object like a Hashtable to
+store arbitrary data associated with this Session.&nbsp; For instance,
+on one request you might extract the caller's name and address from a database
+(an expensive operation), and then cache them in the Session object for
+fast access on subsequent invocations from the same caller.&nbsp; This
+functionality can be used either by custom Handlers or by your backend
+service object itself.</blockquote>
+<a name="faq12"></a><i>How do I get access to the MessageContext in my
+service object?</i>
+<blockquote>Use the static MessageContext.getCurrentContext() method at
+any time during a method call on your object.</blockquote>
+<a name="faq13"></a><i>Where do I put my &lt;typeMapping>/&lt;beanMapping>
+information?</i>
+<blockquote>There are two places in the WSDD where type mappings are appropriate.&nbsp;
+At the top level, just under &lt;deployment>, they become <b>global</b>
+type mappings, and all services deployed in the Axis engine will be able
+to use them.&nbsp; Alternately, you can place them inside your &lt;service>
+tag, and then the mappings will only be accessible by that particular service.</blockquote>
+<a name="faq14"></a><i>What is the relationship between JAXM and Axis?</i>
+<blockquote>JAXM is a specification (NB. not an implementation) of two
+sets of interfaces: javax.xml.soap and javax.xml.messaging.
+Recently, the former set has been moved to its own specification, 
+"SOAP with Attachments API for Java" (SAAJ), by Sun.
+Axis implements the SAAJ (javax.xml.soap) interfaces.
+</blockquote>
+<a name="faq15"></a><i>How does Axis figure out which deployed service
+to call?</i>
+<blockquote><p>Axis has a very flexible dispatch mechanism, with three built-in
+options, and the ability to customize your own.&nbsp; Dispatch to a service
+in Axis really means setting the service field in the MessageContext as
+it flows through the various Handlers in your configuration.&nbsp; Once
+the service is set, the engine will be able to call it at the appropriate
+time.&nbsp; So who does the setting?&nbsp; Any Handler who wants to.</p>
+<p>The default dispatch mechanism for Axis is by URL, so that if you access
+http://myhost/axis/services/WeatherReport, you will get the "WeatherReport"
+service.&nbsp; This mechanism works because the HTTP transport in Axis
+has the URLMapper (org.apache.axis.handlers.http.URLMapper) Handler deployed
+on the request chain.&nbsp; The URLMapper takes the incoming URL, extracts
+the last part of it as the service name, and attempts to look up a service
+by that name in the current EngineConfiguration.</p>
+<p>Similarly you could deploy the HTTPActionHandler to dispatch via the
+SOAPAction HTTP header.&nbsp; You can also feel free to set the service
+in your own custom way - for instance, if you have a transport which funnels
+all messages through a single service, you can just set the service in
+the MessageContext before your transport calls the AxisEngine.&nbsp; Or
+if you dispatch based on the contents of a SOAP header, or the time of
+day, you could write a Handler which did that.</p>
+<p>If no Handler has set the service by the time someone needs to deserialize
+the SOAP message, we will attempt to look it up using the namespace of
+the first body element.&nbsp; So for instance:</p>
+<p>&lt;SOAP:Body>
+<br/>&nbsp; &lt;ns:MyMethod xmlns:ns="http://ws.apache.org/axis/Weather"/>
+<br/>&lt;/SOAP:Body></p>
+<p>This message would look up "http://ws.apache.org/axis/Weather" in the
+namespace mapping list to see if there was an associated service.</p></blockquote>
+<a name="faq16"></a><i>How do I associate a namespace mapping with my service?</i>
+<blockquote>The WSDD for your service should look something like this:
+<p>&lt;service name="MyService" provider="java:RPC">
+<br/>&nbsp; &lt;namespace>http://my.com/MyServiceNamespace&lt;/namespace>
+<br/>&nbsp; ...
+<br/>&lt;/service>
+<br/>&nbsp;&nbsp;</p></blockquote>
+<a name="faq17"></a><i>How do I set a timeout when using WSDL2Java stubs?</i>
+<blockquote>
+<p>There is a <em>setTimeout</em> method on the <tt>org.apache.axis.client.Stub</tt> class, which
+is the class all emitted stubs extend.</p>
+<p>Here is how to set the timeout given a service named Foo:
+<pre>
+ FooServiceLocator loc = new FooServiceLocator();
+ FooService binding = loc.getFooService();
+ org.apache.axis.client.Stub s = (Stub) binding;
+ s.setTimeout(1000);  // 1 second, in miliseconds
+ </pre></p>
+<p>The default timeout in Axis 1.1 and later is 60 seconds. Axis 1.0
+did not have a default timeout (i.e. it defaulted to 0). 
+This timeout value is set on the HTTP socket and is not a connection timeout,
+which requires implementation we do not have as of Axis 1.1.
+</p>
+</blockquote>
+
+<a name="faq18"></a><i>How do I set a header when using WSDL2Java stubs?</i>
+<blockquote>
+<p>There are two styles of headers, explicit and implicit.  Explicit headers are
+defined in the WSDL of the service.  The WSDL2Java generation tool will recognize
+these headers in most cases and emit stub class methods that include the headers
+as arguments to the methods.</p>
+<p>In other cases, you may want to set headers that are not explicitly called
+  out in the WSDL. For instance, you want to do some custom processing in a handler
+  or add security.
+In this case you can add headers to request before you invoke the stub method.</p>
+<p>There are are two <em>setHeader</em> APIs on the <tt>org.apache.axis.client.Stub</tt> class.
+The first takes the namespace, name and value of the header.
+ <pre>setHeader(String namespace, String partName, Object headerValue)</pre>
+The second takes a SoapHeaderElement: 
+<pre>setHeader(SOAPHeaderElement header)</pre></p>
+<p>Here is an example of using the first API</p>
+<p>
+<pre>
+ FooServiceLocator loc = new FooServiceLocator();
+ FooService binding = loc.getFooService();
+ org.apache.axis.client.Stub s = (Stub) binding;
+ s.setHeader("http://my.name.space/headers", "mysecurityheader", "This guy is OK");
+ result = binding.myOperation(...);
+</pre>
+</p>
+</blockquote>
+</p>
+    </section>
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/howtobuild.xml b/src/documentation/content/xdocs/howtobuild.xml
new file mode 100644
index 0000000..ca9d608
--- /dev/null
+++ b/src/documentation/content/xdocs/howtobuild.xml
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">
+
+<document>
+  <header>
+    <title>How To Build Axis Project's Website</title>
+    <authors>
+      <person email="toshi@apache.org" name="Toshiyuki Kimura" />
+    </authors>
+  </header>
+  <body>
+
+<a name="InstallingForrest"/>
+<section>
+<title>Installing Forrest</title>
+
+<p>The Axis website build system requires two components to perform a build.<br/>
+<a href="http://ant.apache.org/">Ant</a> and <a href="http://forrest.apache.org/">Forrest</a>.</p>
+
+<p>Specifically the build has been tested to work with Ant version 1.6.1 and Forrest 0.5.1. To install these products download the distributions and follow the instructions in their documentation.  Make sure you don't forget to set the environment variables FORREST_HOME and ANT_HOME. The ANT_HOME/bin directory should be in the path.</p>
+
+</section>
+
+<a name="CheckingOutWs-axisAndWs-siteModule"/>
+<section>
+<title>Checking out ws-axis and ws-site module</title>
+
+<p>Check out <b>'http://svn.apache.org/repos/asf/webservices/axis/trunk/site/src/java'</b> and <b>'http://svn.apache.org/repos/asf/webservices/axis/site'</b> module via your favorite SVN tools.<br/>
+Please follow the guideline written <a href="site:cvs">here</a>.</p>
+
+</section>
+
+<a name="RunningTheBuild"/>
+<section>
+<title>Running the Build</title>
+
+<p>Here's a list of targets for the ant task. But, what you need to do is just "ant".</p>
+
+<table>
+  <tr>
+    <th>Target</th>
+    <th>Description</th>
+  </tr>
+  <tr>
+    <td>clean</td>
+    <td>Erase all build work products (ie, everything in the build directory</td>
+  </tr>
+  <tr>
+    <td>run-forrest</td>
+    <td>Run Forrest with Jetty server to review the target</td>
+  </tr>
+  <tr>
+      <td>run-browser</td>
+      <td>Invoke a web browser (ie, Internet Explorer)</td>
+  </tr>
+  <tr>
+    <td>backcopy</td>
+    <td>Reflect the updates on the build directory to the master source on 'ws-axis/site/src'</td>
+  </tr>
+  <tr>
+    <td>forrest</td>
+    <td>Create the updated static contents</td>
+  </tr>
+  <tr>
+    <td>replace</td>
+    <td>Copy the contents to ws-site/targets/axis directory</td>
+  </tr>
+  <tr>
+    <td>build-site (default)</td>
+    <td>Do clean up and all tasks to the build site</td>
+  </tr>
+</table>
+
+</section>
+
+<a name="ForCommittersHighlyRecommended"/>
+<section>
+<title>For Committers (Highly recommended)</title>
+
+<p>The procedure to make changes to http://ws.apache.org/axis/ is:</p>
+
+<ul>
+  <li>*cd* into the local <b>'ws-axis/site'</b> CVS dir</li>
+  <li>execute <b>"ant"</b></li>
+  <li>make changes to  <b>'build/webapp/content/xdocs'</b></li>
+  <li><b>reload and review the contents</b> with the autostarted browser</li>
+  <li><b>close the browser and the forrest window</b> when you are ready to finish editing the site</li>
+  <li>cvs commit (ie, <b>'ws-axis/site/src'</b> and <b>'ws-site/target/axis'</b>)</li>
+</ul>
+
+</section>
+
+<a name="ManualUpdateIfYouWantToRealizeTheValueOfAntTasksAbove"/>
+<section>
+<title>Manual update (If you want to realize the value of ant tasks above ...)</title>
+
+<p>If you just want to update the site step-by-step, the followings are the instructions.</p>
+
+<ol>
+  <li>Installing Forrest<br/>
+    [Note] At this time, the version 0.5.1 of Forrest is tested version.</li>
+
+  <li>Checking out 'ws-axis/site' module<br/>
+    [ex]<br/>
+    'ws-axis/site/src/documentation/content/xdocs/java/user-guide.ihtml'</li>
+
+  <li>Make changes to the target</li>
+
+  <li>Confirming the change with "forrest run"
+    <ol>
+      <li>cd into the local "ws-axis/site" CVS dir</li>
+      <li>execute "forrest run"</li>
+      <li>have an access to http://localhost:8888/ to see the site</li>
+    </ol>
+  </li>
+
+  <li>Generating a static content with "forrest"
+    <ol>
+      <li>execute "forrest" in the "ws-axis/site" dir</li>
+      <li>check the generated contents in "ws-axis/site/build/site/"</li>
+    </ol>
+  </li>
+
+  <li>Make commitments
+    <ol>
+      <li>commit the original source (xml/ihtml/gif/jpg) to "ws-axis"</li>
+      <li>copy the generated contents into "ws-site/targets/axis"</li>
+      <li>commit the generated contents to "ws-site"</li>
+    </ol>
+  </li>
+
+  <li>(Optional) If you are in a hurry to reflect the change to the site, cd to /www/ws.apache.org, and execute "cvs update -P" on minotaur.
+    <p>[Note] *** VERY IMPORTANT ***<br/>
+      YOU HAVE TO CHECK YOUR UMASK IS "002" BEFORE DOING THE COMMAND, OR THE SITE WILL BECOME A NON-UPDATABLE SITE FROM THEN ON.<br/>
+      The site will be updated automatically twice a day 12 midnight and 12 noon PST by a cron job of dims.</p>
+  </li>
+
+</ol>
+
+</section>
+
+<a name="FAQ"/>
+<section>
+<title>F.A.Q.</title>
+
+<p><i>Q1.</i><br/>
+  I encountered
+  <source>The &lt;xmlcatalog&gt; data type doesn't support the nested &quot;catalogpath&quot; element.</source>
+  error, during the build.</p>
+
+<p><i>A1.</i><br/>
+  Please make sure that your Ant version is later than 1.6 alpha. You can check the Ant version, by running &quot;ant -version&quot;.</p>
+
+<p><i>Q2.</i><br/>
+  I see an error like this regarding mirrors.pdf<br/>
+  <source>[java] X [0]  mirrors.pdf BROKEN ....</source></p>
+
+<p><i>A2.</i><br/>
+  This is a known issue, but does not affect the site itself.</p>
+
+<p><b>( more to be come )</b></p>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/index.xml b/src/documentation/content/xdocs/index.xml
new file mode 100644
index 0000000..e3f956f
--- /dev/null
+++ b/src/documentation/content/xdocs/index.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="News"/>
+<section>
+<title>News</title>
+
+<p>NEWS (April 22, 2006): Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_4">1.4 Final</a> is now available!</p>
+<p>NEWS (October 5, 2005): Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_3">1.3 Final</a> is now available!</p>
+<p>NEWS (June 15, 2005): Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2_1">1.2.1 Final</a> is now available!</p>
+<p>NEWS (May 04, 2005): Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2">1.2 Final</a> is now available!</p>
+<p>NEWS (April 09, 2005): Axis C++ <a href="http://ws.apache.org/axis/cpp/download.html">1.5 Final</a> is now available!</p>
+<p>NEWS (March 01, 2005): Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2RC3">1.2 RC3</a> is now available!</p>
+<p>NEWS (February 08, 2005): Axis C++ <a href="http://ws.apache.org/axis/cpp/download.html">1.5 Alpha</a> is now available!</p>
+<p>NEWS (December 16, 2004): Axis C++ <a href="http://ws.apache.org/axis/cpp/download.html">1.4 Final</a> is now available!</p>
+<p>NEWS (December 03, 2004): Axis C++ <a href="http://ws.apache.org/axis/cpp/download.html">1.4 Alpha</a> is now available!</p>
+<p>NEWS (November 16, 2004): Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2RC2/">1.2 RC2</a> is now available!</p>
+<p>NEWS (October 29, 2004): Axis C++ <a href="http://ws.apache.org/axis/cpp/download.html">1.3 Final</a> is now available!</p>
+<p>NEWS (September 30, 2004): Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2RC1/">1.2 RC1</a> is now available!</p>
+<p>NEWS (September 15, 2004): Axis C++ <a href="http://ws.apache.org/axis/cpp/download.html">1.3 Beta</a> is now available!</p>
+
+<hr/>
+
+Other news at the Apache Software Foundation is here:
+<UL>
+<LI><a href="http://www.apachenews.org/">The Apache News Blog Online</a></LI>
+<LI><a href="http://www.apachenews.org/archives/cat_apache_webservices_index.html">
+Web services related news on the Apache News Blog Online</a></LI>
+</UL>
+
+</section>
+<a name="Introduction"/>
+<section>
+<title>Introduction</title>
+
+<p>Apache Axis is an implementation of the SOAP ("Simple Object Access Protocol") <a href="http://www.w3.org/TR/SOAP">submission</a>
+to W3C.</p>
+
+<p>From the draft W3C specification:
+  <blockquote>SOAP is a lightweight protocol for exchanging structured information in a decentralized, distributed environment. 
+              It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing remote procedure calls and responses.</blockquote>
+</p>
+
+<p>This project is a follow-on to the <a href="http://ws.apache.org/soap">Apache SOAP project</a>.</p>
+
+<p>Please see the <a href="ref.html">Reference Library</a> for a list of technical resources that should prove useful.</p>
+
+</section>
+
+<a name="Axis1.2AndBeyond"/>
+<section>
+<title>Axis 1.2 and beyond</title>
+
+<p>Axis 1.1 has proven itself to be a reliable and stable base on which to implement Java Web services.  
+   There is a very active <a href="http://ws.apache.org/axis/mail.html">user community</a> and there are
+   many companies who use Axis for Web services support in their products.</p>
+
+<p>For Axis 1.2, we are focusing on our document/literal support to better address the <a href="http://www.ws-i.org/Profiles/BasicProfile-1.0.html">WS-I Basic Profile 1.0</a> and <a href="http://java.sun.com/xml/downloads/jaxrpc.html">JAX-RPC 1.1</a> specifications. And we are fixing as many bug as possible.</p>
+
+<p>We can always use <b>your</b> help. Here are some links to help you help us:
+  <ul>
+    <li><a href="http://ws.apache.org/axis/bugs.html">How do I report bugs?</a></li>
+    <li><a href="http://wiki.apache.org/ws/SubmitPatches">How do I submit patches to Axis?</a></li>
+  </ul>
+</p>
+
+</section>
+
+<a name="Credits"/>
+<section>
+<title>Credits</title>
+
+<p>The Axis Development Team</p>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/interim.xml b/src/documentation/content/xdocs/interim.xml
new file mode 100644
index 0000000..7e32fa8
--- /dev/null
+++ b/src/documentation/content/xdocs/interim.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="Interim"/>
+<section>
+<title>Interim</title>
+
+<p>Nightly builds are done of the current source in the SVN repository.  The source and binaries from these builds are available at:
+<blockquote><a href="http://cvs.apache.org/dist/axis/nightly">http://cvs.apache.org/dist/axis/nightly</a></blockquote>
+</p>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/legal.xml b/src/documentation/content/xdocs/legal.xml
new file mode 100644
index 0000000..84737f0
--- /dev/null
+++ b/src/documentation/content/xdocs/legal.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="LegalStuff"/>
+<section>
+<title>WebServices - Axis - Legal Stuff</title>
+
+<p>All material on this website is Copyright &copy; 1999-2003, The Apache Software Foundation.</p>
+
+<p>Sun, Sun Microsystems, Solaris, Java, JavaServer Web Development Kit, and JavaServer Pages are trademarks or registered trademarks of Sun Microsystems, Inc. UNIX is a registered trademark in the United States and other countries, exclusively licensed through X/Open Company, Ltd. Windows, WindowsNT, and Win32 are registered trademarks of Microsoft Corp. All other product names mentioned herein and throughout the entire web site are trademarks of their respective owners.</p>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/mail.xml b/src/documentation/content/xdocs/mail.xml
new file mode 100644
index 0000000..f526dd6
--- /dev/null
+++ b/src/documentation/content/xdocs/mail.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="MailingList"/>
+<section>
+<title>Mailing List</title>
+
+<p><b>Before subscribing to any of the mailing lists, please make sure you have read and understand the <a href="mailguide.html">guidelines</a>.</b></p>
+
+<p>While the mailing lists are not archived on Apache they are available at other sites, for example <a href="http://marc.theaimsgroup.com">http://marc.theaimsgroup.com</a> is pretty good and is used for searching below.</p>
+
+</section>
+
+<a name="TheAxisUserList"/>
+<section>
+<title>The Axis User List</title>
+
+<p>
+<b>Medium Traffic</b>
+<a href="mailto:axis-user-subscribe@ws.apache.org">Subscribe</a>
+<a href="mailto:axis-user-unsubscribe@ws.apache.org">Unsubscribe</a>
+<a href="mailto:axis-user-digest-subscribe@ws.apache.org">Subscribe(Digest)</a>
+<a href="mailto:axis-user-digest-unsubscribe@ws.apache.org">Unsubscribe(Digest)</a>
+<a href="mailto:axis-user@ws.apache.org">Send mail to list</a>
+<br/>
+This list is for developers that are using Axis in their own projects to 
+ask questions, share knowledge, and discuss issues related to using Axis.
+<br/>
+<form action="http://marc.theaimsgroup.com/" method="get">
+  <input type="hidden" name="l" value="axis-user"/>
+  <input type="hidden" name="w" value="2"/>
+  <table width="100%" border="0" cellpadding="0" cellspacing="0">
+    <tr><td align="left">
+      <input type="hidden" name="r" value="1"/>Search: <input type="text" name="s" value="" size="25" maxlength="40"/><input type="submit" value="Search"/><input type="reset" value="Reset"/><br/>[<input type="radio" name="q" value="t"/>] Subjects [<input type="radio" name="q" value="a"/>] Authors [<input type="radio" name="q" value="b"/>] Bodies for list 'axis-user'
+    </td></tr>
+  </table>
+</form>
+</p>
+
+</section>
+
+<a name="TheAxisDeveloperList"/>
+<section>
+<title>The Axis Developer List</title>
+<p>
+<b>Medium Traffic</b>
+<a href="mailto:axis-dev-subscribe@ws.apache.org">Subscribe</a>
+<a href="mailto:axis-dev-unsubscribe@ws.apache.org">Unsubscribe</a>
+<a href="mailto:axis-dev-digest-subscribe@ws.apache.org">Subscribe(Digest)</a>
+<a href="mailto:axis-dev-digest-unsubscribe@ws.apache.org">Unsubscribe(Digest)</a>
+<a href="mailto:axis-dev@ws.apache.org">Send mail to list</a>
+<br/>
+This is the list where participating developers of the Axis project meet 
+and discuss issues, code changes/additions, etc. 
+<form action="http://marc.theaimsgroup.com/" method="get">
+  <input type="hidden" name="l" value="axis-dev"/>
+  <input type="hidden" name="w" value="2"/>
+  <table width="100%" border="0" cellpadding="0" cellspacing="0">
+    <tr><td align="left">
+      <input type="hidden" name="r" value="1"/>Search: <input type="text" name="s" value="" size="25" maxlength="40"/><input type="submit" value="Search"/><input type="reset" value="Reset"/><br/>[<input type="radio" name="q" value="t"/>] Subjects [<input type="radio" name="q" value="a"/>] Authors [<input type="radio" name="q" value="b"/>] Bodies for list 'axis-dev'
+    </td></tr>
+  </table>
+</form>
+</p>
+
+</section>
+
+<a name="TheAxisC++UserList"/>
+<section>
+<title>The Axis C++ User List</title>
+<p>
+<b>Medium Traffic</b>
+<a href="mailto:axis-c-user-subscribe@ws.apache.org">Subscribe</a>
+<a href="mailto:axis-c-user-unsubscribe@ws.apache.org">Unsubscribe</a>
+<a href="mailto:axis-c-user-digest-subscribe@ws.apache.org">Subscribe(Digest)</a>
+<a href="mailto:axis-c-user-digest-unsubscribe@ws.apache.org">Unsubscribe(Digest)</a>
+<a href="mailto:axis-c-user@ws.apache.org">Send mail to list</a>
+<br/>
+This list is for developers that are using Axis C++ in their own projects to 
+ask questions, share knowledge, and discuss issues related to using Axis C++.
+<form action="http://marc.theaimsgroup.com/" method="get">
+  <input type="hidden" name="l" value="axis-c-user"/>
+  <input type="hidden" name="w" value="2"/>
+    <table width="100%" border="0" cellpadding="0" cellspacing="0">
+      <tr><td align="left">
+        <input type="hidden" name="r" value="1"/>Search: <input type="text" name="s" value="" size="25" maxlength="40"/><input type="submit" value="Search"/><input type="reset" value="Reset"/><br/>[<input type="radio" name="q" value="t"/>] Subjects [<input type="radio" name="q" value="a"/>] Authors [<input type="radio" name="q" value="b"/>] Bodies for list 'axis-c-user'
+      </td></tr>
+    </table>
+</form>
+</p>
+
+</section>
+
+<a name="TheAxisC++DeveloperList"/>
+<section>
+<title>The Axis C++ Developer List</title>
+<p>
+<b>Medium Traffic</b>
+<a href="mailto:axis-c-dev-subscribe@ws.apache.org">Subscribe</a>
+<a href="mailto:axis-c-dev-unsubscribe@ws.apache.org">Unsubscribe</a>
+<a href="mailto:axis-c-dev-digest-subscribe@ws.apache.org">Subscribe(Digest)</a>
+<a href="mailto:axis-c-dev-digest-unsubscribe@ws.apache.org">Unsubscribe(Digest)</a>
+<a href="mailto:axis-c-dev@ws.apache.org">Send mail to list</a>
+<br/>
+This is the list where participating developers of the Axis C++ project meet 
+and discuss issues, code changes/additions, etc. 
+<form action="http://marc.theaimsgroup.com/" method="get">
+  <input type="hidden" name="l" value="axis-c-dev"/>
+  <input type="hidden" name="w" value="2"/>
+    <table width="100%" border="0" cellpadding="0" cellspacing="0">
+      <tr><td align="left">
+        <input type="hidden" name="r" value="1"/>Search: <input type="text" name="s" value="" size="25" maxlength="40"/><input type="submit" value="Search"/><input type="reset" value="Reset"/><br/>[<input type="radio" name="q" value="t"/>] Subjects [<input type="radio" name="q" value="a"/>] Authors [<input type="radio" name="q" value="b"/>] Bodies for list 'axis-c-dev'
+      </td></tr>
+    </table>
+</form>
+</p>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/mailguide.xml b/src/documentation/content/xdocs/mailguide.xml
new file mode 100644
index 0000000..a5ac565
--- /dev/null
+++ b/src/documentation/content/xdocs/mailguide.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="MailGuideline"/>
+<section>
+<title>Mail Guideline</title>
+
+<p>Every volunteer project obtains its strength from the people involved in it. Mailing lists provide a simple and effective communication mechanism. </p>
+
+<p>You are welcome to join any of our mailing lists (or all of them if you wish). You can choose to lurk, or actively participate. It's up to you.</p>
+
+<p><b>Before you join these lists, you should make sure that you read and follow the information below... </b></p>
+
+<p>We ask that you do your best to respect the charter of the appropriate mailing list. There are generally two types of lists that you can join. 
+  <ul>
+    <li>The "User" list is where you should send questions and comments about configuration, setup, usage and other "user" types of questions.</li>
+    <li> The "Developer" list is where you should should send questions and comments about the actual software source code and general "development" types of questions. </li>
+  </ul>
+</p>
+
+<p><b>Summary: Join the lists that are appropriate for your discussion.</b><br/>
+  Please make sure that you are joining the list that is appropriate for the topic or product that you would like to discuss.</p>
+
+<p><b>Summary: Do not abuse resources in order to get help.</b><br/>
+  Asking your configuration or user type of question on the developers list because you think that you will get help more quickly by going directly to the developers instead of to the user base is not very nice. Chances are that doing this will actually prevent people from answering your question because it is clear that you are trying to abuse resources.</p>
+
+<p><b>Summary: Do your best to ensure that you are not sending HTML or "Stylelized" email to the list.</b><br/>
+  If you are using Outlook or Outlook Express or Eudora, chances are that you are sending HTML email by default. There is usually a setting that will allow you to send "Plain Text" email. If you are using Microsoft products to send email, there are several bugs in the software that prevent you from turning off the sending of HTML email. Please read this page as well...</p>
+
+<p><b>Summary: Watch where you are sending email.</b><br/>
+  The majority of our mailing lists have set the Reply-To to go back to the list. That means that when you Reply to a message, it will go to the list and not to the original author directly. The reason is because it helps facilitate discussion on the list for everyone to benefit from. Be careful of this as sometimes you may intend to reply to a message directly to someone instead of the entire list.</p>
+
+<p><b>Summary: Do not crosspost messages.</b><br/>
+  In other words, pick a mailing list and send your messages to that mailing list only. Do not send your messages to multiple mailing lists. The reason is that people may be subscribed to one list and not to the other. Therefore, some people may only see half of the conversation. </p>
+
+<p><a href="mail.html">Back to the Mailing List page.</a></p>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/news.xml b/src/documentation/content/xdocs/news.xml
new file mode 100644
index 0000000..db4733d
--- /dev/null
+++ b/src/documentation/content/xdocs/news.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="News"/>
+<section>
+<title>News</title>
+
+<p>(April 22, 2006) : Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_4/">1.4 Final release</a> is available!</p>
+<p>(October 5, 2006) : Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_3/">1.3 Final release</a> is available!</p>
+<p>(June 15, 2005) : Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2_1/">1.2.1 Final release</a> is available!</p>
+<p>(May 04, 2005) : Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2/">1.2 Final release</a> is available!</p>
+<p>(April 09, 2005) : Axis C++<a href="http://www.apache.org/dist/ws/axis-c/">1.5  Final is available!</a></p>
+<p>(March 01, 2005) : Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2RC3/">1.2 RC3 release</a> is available!</p>
+<p>(February 08, 2005) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.5 Alpha is available!</b></a></p>
+<p>(December 16, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.4 Final is available!</b></a></p>
+<p>(December 03, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.4 Alpha is available!</b></a></p>
+<p>(November 16, 2004) : Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2RC2/">1.2 RC2 release</a> is now available!</p>
+<p>(October 29, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.3 Final is available!</b></a></p>
+<p>(September 30, 2004) : Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2RC1/">1.2 RC1 release</a> is now available!</p>
+<p>(September 15, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.3 Beta is available!</b></a></p>
+<p>(August 18, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.3 Alpha is available!</b></a></p>
+<p>(August 17, 2004) : Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2beta3/">1.2 beta 3 release</a> is now available!</p>
+<p>(July 14, 2004) : Axis <a href="http://www.apache.org/dyn/closer.cgi/ws/axis/1_2beta2/">1.2 beta 2 release</a> is now available!</p>
+<p>(July 09, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.2 is available!</b></a></p>
+<p>(June 29, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.2 Beta is available!</b></a></p>
+<p>(June 15, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.2 Alpha is available!</b></a></p>
+<p>(May 07, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.1.1 is available!</b></a></p>
+<p>(April 16, 2004) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.1 is available!</b></a></p>
+<p>(December 29, 2003) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/"><b>1.0 is released!</b></a></p>
+<p>(December 01, 2003) : Axis <a href="http://archive.apache.org/dist/ws/axis/1_2alpha/">1.2 Alpha</a> is available! </p>
+<p>(December 01, 2003) : Axis C++ <a href="http://www.apache.org/dist/ws/axis-c/">Beta</a> is available! </p>
+<p>(October 31, 2003) : Axis C++ alpha has been released! </p>
+<p>(September 10, 2003) : Axis CVS Repository has moved from xml-axis to <a href="http://cvs.apache.org/viewcvs/ws-axis/">ws-axis</a></p>
+<p>(June 16, 2003) : Axis <a href="http://ws.apache.org/axis/download.cgi">1.1</a> is now available!</p>
+<p>(March 5, 2003) : Axis <a href="http://archive.apache.org/dist/ws/axis/1_1rc2/">1.1 RC2 release</a> is now available!</p>
+<p>(February 9, 2003) : Axis <a href="http://archive.apache.org/dist/ws/axis/1_1RC1/">1.1 RC1 release</a> is now available!</p>
+<p>(October 7, 2002) : Axis <a href="http://archive.apache.org/dist/ws/axis/1_0rc2/">1.0</a> is now available!</p>
+<p>(September 30, 2002) : Axis <a href="http://archive.apache.org/dist/ws/axis/1_0rc2/">1.0 RC2 release</a> is now available!</p>
+<p>(September 6, 2002) : Axis <a href="http://archive.apache.org/dist/ws/axis/1_0rc1/">1.0 RC1 release</a> is now available!</p>
+<p>(July 9, 2002) : The Axis <a href="http://archive.apache.org/dist/ws/axis/beta3/">beta 3 release</a> is available!</p>
+
+<p>See the <a href="mail.html">Mailing Lists</a> for more information.</p>
+
+<p>The Axis Development Team</p>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/overview.xml b/src/documentation/content/xdocs/overview.xml
new file mode 100644
index 0000000..81bd4e7
--- /dev/null
+++ b/src/documentation/content/xdocs/overview.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="Overview"/>
+<section>
+<title>Overview</title>
+
+<p>Every volunteer project obtains its strength from the people involved in it. We invite you to participate as much or as little as you choose. The roles and responsibilities that people can assume in the project are based on merit. Everybody's input matters!</p>
+
+<p>There are a variety of ways to participate. Regardless of how you choose to participate, we suggest you join some or all of our <a href="mail.html">mailing lists</a>.</p>
+
+<p><b>Use the Products and Give Us Feedback</b></p>
+
+<p>Using the products,reporting bugs, making feature requests, etc. is by far the most important role. It's your feedback that allows the technology to evolve.
+  <ul>
+    <li><a href="mail.html">Join Mailing Lists</a></li>
+    <li><a href="http://ws.apache.org/axis/java/releases.html">Download Binary Builds</a></li>
+    <li><a href="bugs.html">Report bugs/Request additional features</a></li>
+  </ul>
+</p>
+
+<p><b>Contribute Code or Documentation Patches</b></p>
+
+<p>In this role, you participate in the actual development of the code. If this is the type of role you'd like to play, here are some steps (in addition to the ones above) to get you started:
+  <ul>
+    <li><a href="mailguide.html">Read Guidelines</a></li>
+    <li><a href="ref.html">Review Reference Library</a></li>
+    <li><a href="cvs.html">Access SVN Repository</a></li>
+  </ul>
+</p>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/ref.xml b/src/documentation/content/xdocs/ref.xml
new file mode 100644
index 0000000..6284f81
--- /dev/null
+++ b/src/documentation/content/xdocs/ref.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="ReferenceLibrary"/>
+<section>
+<title>Reference Library</title>
+
+<p>The Axis Project lives or fails based on its human resources. Users and contributors alike help the project with ideas and brainpower. A common
+foundation of knowledge is required to effectively participate in this virtual community. The following is a list of documents that we have found
+helpful for us and may be helpful to you:</p>
+
+<p>These resources are required reading for anybody contributing source code to the project.</p>
+
+<p><b><font>SOAP Specific Resources</font></b></p>
+
+<p><b><a href="http://www.w3.org/TR/soap/">SOAP W3C Specification</a></b><br/>
+  Required reading.</p>
+
+<p><b><a href="http://www.w3.org/TR/SOAP-attachments">SOAP Messaging with Attachments W3C Specification</a></b><br/>
+  SOAP combined with MIME.</p>
+
+<p><b><a href="http://www.w3.org/TR/SOAP-dsig/">SOAP Security Extensions: Digital Signature Specification</a></b><br/>
+  Adding security to SOAP.</p>
+
+<p><b>Other Specifications</b><b><a href="http://www.w3c.org/TR/wsdl.html"></a></b></p>
+
+<p><a href="http://www.w3c.org/TR/wsdl.html">Web Services Description Language (WSDL) 1.1</a></p>
+
+<p><a href="http://www.ws-i.org/Profiles/BasicProfile-1.0.html">WS-I Basic Profile Version 1.0</a></p>
+
+<p><a href="http://jcp.org/aboutJava/communityprocess/first/jsr101/index.html">Java API for XML-based RPC (JAX-RPC)</a></p>
+
+<p><b>Other Resources</b></p>
+
+<p><b><a href="http://java.sun.com/docs/books/jls/index.html">The Java Language Specification</a></b><br/>
+  Written by the creators of the Java Programming Language, this online book is considered by many to be the bible for programming in Java. A must
+read.</p>
+
+<p><b><a href="http://java.sun.com/products/jdk/javadoc/index.html">Javadoc</a></b><br/>
+  Javadoc is the automatic software documentation generator used by Java since it was first released. All code written for this project must be documented using Javadoc conventions.</p>
+
+<p><b><a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">The Java Code Conventions</a></b><br/>
+  This Sun document specifies the de-facto standard way of formatting Java code. All code written for this project must follow these conventions.</p>
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/content/xdocs/site.xml b/src/documentation/content/xdocs/site.xml
new file mode 100644
index 0000000..62dde1f
--- /dev/null
+++ b/src/documentation/content/xdocs/site.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+
+<!--
+Forrest site.xml
+
+This file contains an outline of the site's information content.  It is used to:
+- Generate the website menus (though these can be overridden - see docs)
+- Provide semantic, location-independent aliases for internal 'site:' URIs, eg
+<link href="site:changes"> links to changes.html (or ../changes.html if in
+  subdir).
+- Provide aliases for external URLs in the external-refs section.  Eg, <link
+  href="ext:cocoon"> links to http://xml.apache.org/cocoon/ 
+
+See http://xml.apache.org/forrest/linking.html for more info
+-->
+
+<site label="Axis" href="" xmlns="http://apache.org/forrest/linkmap/1.0" tab="">
+<Axis label="Axis">
+ <introduction label="Introduction" href="index.html"/>
+ <news label="News" href="news.html"/>
+<!-- <faq label="FAQ" href="faq.html"/>-->
+ <wiki label="FAQ/Wiki" href="http://wiki.apache.org/ws/FrontPage/Axis"/>
+ <getinvolved label="Get Involved">
+  <overview label="Overview" href="overview.html"/>
+  <cvs label="SVN Repository" href="cvs.html"/>
+  <mailinglist label="Mailing Lists" href="mail.html"/>
+  <library label="Reference Library" href="ref.html" target="body"/>
+  <bugs label="Bugs" href="bugs.html"/>
+  <buildsite label="HowToBuildSite" href="howtobuild.html"/>
+ </getinvolved>
+ <axisjava label="Axis (Java)">  
+  <documentation label="Documentation" href="java/index.html"/>
+  <!--<download label="Download" href="java/download.html"/>-->
+  <releases label="Releases" href="java/releases.html"/>
+  <installation label="Installation" href="java/install.html"/>
+  <users label="User's Guide" href="java/user-guide.html"/>
+  <developers label="Developer's Guide" href="java/developers-guide.html"/>
+  <integration label="Integration Guide" href="java/integration-guide.html"/>
+  <architecture label="Architecture Guide" href="java/architecture-guide.html"/>
+  <reference label="Reference Guide" href="java/reference.html"/>
+  <read label="Reading Guide" href="java/reading.html"/>
+  <requirements label="Requirements" href="java/requirements.html"/>
+ </axisjava>
+ <axiscpp label="Axis C++">
+  <axisc label="Home" href="http://ws.apache.org/axis/cpp/index.html"/>
+  <documentation label="Documentation" href="http://ws.apache.org/axis/cpp/documentation.html"/>
+  <download label="Download" href="http://ws.apache.org/axis/cpp/download.html"/>
+  <wiki label="Wiki Pages" href="http://wiki.apache.org/ws/FrontPage/AxisCPP"/>
+  <who label="Who we are" href="http://ws.apache.org/axis/cpp/who.html"/>
+ </axiscpp>
+<downloads label="Downloads">
+  <interim label="Interim Drops" href="interim.html"/>
+  <sourcecode label="Source Code" href="http://svn.apache.org/viewcvs.cgi/webservices/axis/trunk/"/>
+</downloads>
+<translation label="Translation">
+  <releases label="Japanese" href="http://ws.apache.org/axis/ja/index.html"/>
+</translation>
+<related label="Related Projects">
+  <wsif label="WSIF" href="http://ws.apache.org/wsif/"/>
+  <juddi label="jUDDI" href="http://ws.apache.org/juddi/"/>
+  <wsdl4j label="WSDL4J" href="http://wsdl4j.sourceforge.net"/>
+  <uddi4j label="UDDI4J" href="http://www.uddi4j.org/"/>
+</related>
+<misc label="Misc">
+  <who label="Who we are" href="who.html"/>
+  <contact label="Contact" href="contact.html"/>
+  <legal label="Legal" href="legal.html"/>
+  <notes label="Notes/Docs" href="docs.html"/>
+</misc>
+
+</Axis>
+
+  <external-refs>
+    <xml.apache.org href="http://xml.apache.org/">
+      <forrest href="forrest/">
+        <validation href="validation.html"/>
+        <webapp href="your-project.html#webapp"/>
+        <document-v11 href="document-v11.html"/>
+      </forrest>
+      <cocoon href="cocoon/"/>
+      <mori href="http://jakarta.terra-intl.com" />
+    </xml.apache.org>
+  </external-refs>
+
+</site>
diff --git a/src/documentation/content/xdocs/tabs.xml b/src/documentation/content/xdocs/tabs.xml
new file mode 100644
index 0000000..67509c3
--- /dev/null
+++ b/src/documentation/content/xdocs/tabs.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE tabs PUBLIC "-//APACHE//DTD Cocoon Documentation Tab V1.0//EN" "http://apache.org/forrest/dtd/tab-cocoon-v10.dtd">
+
+<tabs software="Terra-International, Inc."
+  title="Terra-International, Inc."
+  copyright="Terra-International, Inc."
+  xmlns:xlink="http://www.w3.org/1999/xlink">
+
+  <!-- The rules are:
+    @dir will always have '/@indexfile' added.
+    @indexfile gets appended to @dir if the tab is selected. Defaults to 'index.html'
+    @href is not modified unless it is root-relative and obviously specifies a
+    directory (ends in '/'), in which case /index.html will be added
+    If @id's are present, site.xml entries with a matching @tab will be in that tab.
+  -->
+
+  <!-- Add new tabs here, eg:
+  <tab id="" label="WebServices-Axis" dir="" indexfile="index.html"/>
+  <tab label="How-Tos" dir="community/howto/"/>
+  <tab label="XML Site" dir="xml-site/"/>
+  -->
+
+</tabs>
diff --git a/src/documentation/content/xdocs/who.xml b/src/documentation/content/xdocs/who.xml
new file mode 100644
index 0000000..c796647
--- /dev/null
+++ b/src/documentation/content/xdocs/who.xml
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
+<document>
+  <header>
+    <title>WebServices - Axis</title>
+  </header>
+  <body>
+
+<a name="WhoWeAre"/>
+<section>
+<title>Who We Are</title>
+
+<p>The Axis Project operates on a meritocracy: the more you do, the more responsibility you will obtain. This page lists all of the people who have gone the extra mile and are Committers. If you would like to get involved, the first step is to join the mailing lists.</p>
+
+<p>We ask that you please do not send us emails privately asking for support. We are non-paid volunteers who help out with the project and we do not necessarily have the time or energy to help people on an individual basis. Instead, we have setup mailing lists which often contain hundreds of individuals who will help answer detailed requests for help. The benefit of using mailing lists over private communication is that it is a shared resource where others can also learn from common mistakes and as a community we all grow together.</p>
+
+<a name="ActiveCommittersJava"/>
+<section>
+<title>Active Committers (Java)</title>
+
+<ul>
+  <li>
+    <b>Andras Avar</b>
+    &lt;<a href="mailto:Andras.Avar@nokia.com">andras.avar@nokia.com</a>&gt;
+  </li>
+  <li>
+    <b>David Chappell</b>
+    &lt;<a href="mailto:chappell@sonicsoftware.com">chappell@sonicsoftware.com</a>&gt;
+  </li>
+  <li>
+    <b>Glen Daniels</b>
+    &lt;<a href="mailto:gdaniels@apache.org">gdaniels@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Doug Davis</b>
+    &lt;<a href="mailto:dug@apache.org">dug@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Eric Friedman</b>
+    &lt;<a href="mailto:ericf@apache.org">ericf@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Chris Haddad</b>
+    &lt;<a href="mailto:haddadc@apache.org">haddadc@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Tom Jordahl</b>
+    &lt;<a href="mailto:tomj@macromedia.com">tomj@macromedia.com</a>&gt;
+  </li>
+  <li>
+    <b>Dominik Kacprzak</b>
+    &lt;<a href="mailto:dominik@apache.org">dominik@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Rick Kellogg
+    &lt;</b><a href="mailto:rmkellogg@comcast.net">rmkellogg@comcast.net</a>&gt;
+  </li>
+  <li>
+    <b><a href="http://ws.apache.org/~toshi/">Toshiyuki Kimura (Toshi)</a></b>
+    &lt;<a href="mailto:kimuratsy@nttdata.co.jp">kimuratsy@nttdata.co.jp</a>&gt;
+  </li>
+  <li>
+    <b>Steve Loughran</b>
+  </li>
+  <li>
+    <b>Jaime Meritt</b>
+    &lt;<a href="mailto:jmeritt@sonicsoftware.com">jmeritt@sonicsoftware.com</a>&gt;
+  </li>
+  <li>
+    <b>Yuhichi Nakamura</b>
+    &lt;<a href="mailto:nakamury@apache.org">nakamury@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Thomas Sandholm</b>
+    &lt;<a href="mailto:sandholm@mcs.anl.gov">sandholm@mcs.anl.gov</a>&gt;
+  </li>
+  <li>
+    <b>Igor Sedukhin</b>
+    &lt;<a href="mailto:igors@apache.org">igors@apache.org</a>&gt;
+  </li>
+  <li>
+    <b><a href="http://ws.apache.org/~dims/">Davanum Srinivas</a></b>
+    &lt;<a href="mailto:dims@yahoo.com">dims@yahoo.com</a>&gt;
+  </li>
+  <li>
+    <b>Sanjiva Weerawarana</b>
+    &lt;<a href="mailto:sanjiva@watson.ibm.com">sanjiva@watson.ibm.com</a>&gt;
+  </li>
+  <li>
+    <b><a href="http://www.iasandcb.pe.kr">Changshin Lee (a.k.a. Ias)</a></b>
+    &lt;<a href="mailto:iasandcb@tmax.co.kr">iasandcb@tmax.co.kr</a>&gt;
+  </li>
+  <li>
+   <b>Srinath Perera</b>
+   &lt;<a href="mailto:hemapani@opensource.lk">hemapani@opensource.lk</a>&gt;
+   </li>
+  <li>
+    <b>Venkat Reddy</b>
+    &lt;<a href="mailto:venkat@apache.org">venkat@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Jarek Gawor</b>
+    &lt;<a href="mailto:gawor@apache.org">gawor@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Jongjin Choi</b>
+    &lt;<a href="mailto:jjchoe@tmax.co.kr">jjchoe@tmax.co.kr</a>&gt;
+  </li>
+  <li>
+    <b>Guillaume Sauthier</b>
+    &lt;<a href="mailto:guillaume@apache.org">guillaume@apache.org</a>&gt;
+  </li>
+</ul>
+
+</section>
+
+<a name="ActiveCommittersC++"/>
+<section>
+<title>Active Committers (C++)</title>
+
+<ul>
+  <li>
+    <b>Chaminda Divitotawela</b>
+    &lt;<a href="mailto:chadiv@opensource.lk">chadiv@opensource.lk</a>&gt;
+  </li>
+  <li>
+    <b>Nuwan Gurusinghe</b>
+    &lt;<a href="mailto:nuwan@opensouce.lk">nuwan@opensouce.lk</a>&gt;
+  </li>
+  <li>
+    <b>Susantha Kumara</b>
+    &lt;<a href="mailto:susantha@opensource.lk">susantha@opensource.lk</a>&gt;
+  </li>
+  <li>
+    <b>Damitha Kumarage</b>
+    &lt;<a href="mailto:damitha@opensource.lk">damitha@opensource.lk</a>&gt;
+  </li>
+  <li>
+    <b>Nadika Ranasinghe</b>
+    &lt;<a href="mailto:nadika@opensource.lk">nadika@opensource.lk</a>&gt;
+  </li>
+  <li>
+    <b>Sanjaya Sinharage</b>
+    &lt;<a href="mailto:sanjayasing@opensource.lk">sanjayasing@opensource.lk</a>&gt;
+  </li>
+  <li>
+    <b>Roshan Weerasuriya</b>
+    &lt;<a href="mailto:roshan@opensource.lk">roshan@opensource.lk</a>&gt;
+  </li>
+  <li>
+    <b>Sanjiva Weerawarana</b>
+    &lt;<a href="mailto:sanjiva@watson.ibm.com">sanjiva@watson.ibm.com</a>&gt;
+  </li>
+</ul>
+
+</section>
+
+<a name="CommittersEmeritiCommittersThatHaveBeenInactiveFor3MonthsOrMore)"/>
+<section>
+<title>Committers Emeriti (committers that have been inactive for 3 months or more)</title>
+
+<ul>
+  <li>
+    <b>Vahe Amirbekyan</b>
+    &lt;<a href="mailto:avahe@apache.org">avahe@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Russell Butek</b>
+    &lt;<a href="mailto:butek@us.ibm.com">butek@us.ibm.com</a>&gt;
+  </li>
+  <li>
+    <b>Wouter Cloetens</b>
+    &lt;<a href="mailto:wouter@mind.be">wouter@mind.be</a>&gt;
+  </li>
+  <li>
+    <b>Matt Duftler</b>
+    &lt;<a href="mailto:duftler@apache.org">duftler@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Steve Graham</b>
+    &lt;<a href="mailto:sggraham@us.ibm.com">sggraham@us.ibm.com</a>&gt;
+  </li>
+  <li>
+    <b>Rob Jellinghaus</b>
+    &lt;<a href="mailto:robj@helium.com">robj@helium.com</a>&gt;
+  </li>
+  <li>
+    <b>Jacek Kopecky</b>
+    &lt;<a href="mailto:jacek@idoox.com">jacek@idoox.com</a>&gt;
+  </li>
+  <li>
+    <b>Ravi Kumar</b>
+    &lt;<a href="mailto:rkumar@borland.com">rkumar@borland.com</a>&gt;
+  </li>
+  <li>
+    <b>Berin Loritsch</b>
+    &lt;<a href="mailto:bloritsch@apache.org">bloritsch@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>George Matkovits</b>
+    &lt;<a href="mailto:matkovitsg@apache.org">matkovitsg@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Kevin Mitchell</b>
+    &lt;<a href="mailto:kmitchell@apache.org">kmitchell@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Vidyanand Murunikkara</b>
+    &lt;<a href="mailto:Vidyanand@infravio.com">vidyanand@infravio.com</a>&gt;
+  </li>
+  <li>
+    <b>Bill Nagy</b>
+    &lt;<a href="mailto:wnagy@us.ibm.com">wnagy@us.ibm.com</a>&gt;
+  </li>
+  <li>
+    <b>Christopher Nelson</b>
+    &lt;<a href="mailto:cnelson@synchrony.net">cnelson@synchrony.net</a>&gt;
+  </li>
+  <li>
+    <b>Ryo Neyama</b>
+    &lt;<a href="mailto:neyama@apache.org">neyama@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>Glyn Normington</b>
+    &lt;<a href="mailto:glyn@apache.org">glyn@apache.org</a>&gt;
+    [<a href="http://cvs.apache.org/~glyn">Apache home page</a>]
+  </li>
+  <li>
+    <b>Rick Rineholt
+    &lt;</b><a href="mailto:rineholt@us.ibm.com">rineholt@us.ibm.com</a>&gt;
+  </li>
+  <li>
+    <b><a href="http://www.intertwingly.net/blog/">Sam Ruby</a></b>
+    &lt;<a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a>&gt;
+  </li>
+  <li>
+    <b>Rich Scheuerle</b>
+    &lt;<a href="mailto:scheu@us.ibm.com">scheu@us.ibm.com</a>&gt;
+  </li>
+  <li>
+    <b>Matt Seibert</b>
+    &lt;<a href="mailto:mseibert@us.ibm.com">mseibert@us.ibm.com</a>&gt;
+  </li>
+  <li>
+    <b>Richard Sitze</b>
+    &lt;<a href="mailto:rsitze@apache.org">rsitze@apache.org</a>&gt;
+  </li>
+  <li>
+    <b>James Snell</b>
+    &lt;<a href="mailto:jasnell@us.ibm.com">jasnell@us.ibm.com</a>&gt;
+  </li>
+</ul>
+
+</section>
+
+</section>
+
+  </body>
+</document>
diff --git a/src/documentation/resources/images/Engineinit.jpg b/src/documentation/resources/images/Engineinit.jpg
new file mode 100644
index 0000000..f03ea09
--- /dev/null
+++ b/src/documentation/resources/images/Engineinit.jpg
Binary files differ
diff --git a/src/documentation/resources/images/Mappingheader.jpg b/src/documentation/resources/images/Mappingheader.jpg
new file mode 100644
index 0000000..4a56c60
--- /dev/null
+++ b/src/documentation/resources/images/Mappingheader.jpg
Binary files differ
diff --git a/src/documentation/resources/images/ant_logo_large.gif b/src/documentation/resources/images/ant_logo_large.gif
new file mode 100644
index 0000000..e99363b
--- /dev/null
+++ b/src/documentation/resources/images/ant_logo_large.gif
Binary files differ
diff --git a/src/documentation/resources/images/axis2.jpg b/src/documentation/resources/images/axis2.jpg
new file mode 100644
index 0000000..577ef8c
--- /dev/null
+++ b/src/documentation/resources/images/axis2.jpg
Binary files differ
diff --git a/src/documentation/resources/images/axis3.jpg b/src/documentation/resources/images/axis3.jpg
new file mode 100644
index 0000000..3754071
--- /dev/null
+++ b/src/documentation/resources/images/axis3.jpg
Binary files differ
diff --git a/src/documentation/resources/images/deployprocess.jpg b/src/documentation/resources/images/deployprocess.jpg
new file mode 100644
index 0000000..b73d5e1
--- /dev/null
+++ b/src/documentation/resources/images/deployprocess.jpg
Binary files differ
diff --git a/src/documentation/resources/images/dot.gif b/src/documentation/resources/images/dot.gif
new file mode 100644
index 0000000..9cda621
--- /dev/null
+++ b/src/documentation/resources/images/dot.gif
Binary files differ
diff --git a/src/documentation/resources/images/group-logo.gif b/src/documentation/resources/images/group-logo.gif
new file mode 100644
index 0000000..21c053f
--- /dev/null
+++ b/src/documentation/resources/images/group-logo.gif
Binary files differ
diff --git a/src/documentation/resources/images/handlers.jpg b/src/documentation/resources/images/handlers.jpg
new file mode 100644
index 0000000..1922392
--- /dev/null
+++ b/src/documentation/resources/images/handlers.jpg
Binary files differ
diff --git a/src/documentation/resources/images/icon.png b/src/documentation/resources/images/icon.png
new file mode 100644
index 0000000..3be8bbb
--- /dev/null
+++ b/src/documentation/resources/images/icon.png
Binary files differ
diff --git a/src/documentation/resources/images/image2-1-2.gif b/src/documentation/resources/images/image2-1-2.gif
new file mode 100644
index 0000000..e6f1205
--- /dev/null
+++ b/src/documentation/resources/images/image2-1-2.gif
Binary files differ
diff --git a/src/documentation/resources/images/image2-1.gif b/src/documentation/resources/images/image2-1.gif
new file mode 100644
index 0000000..8649327
--- /dev/null
+++ b/src/documentation/resources/images/image2-1.gif
Binary files differ
diff --git a/src/documentation/resources/images/image2-2-1.gif b/src/documentation/resources/images/image2-2-1.gif
new file mode 100644
index 0000000..6bf13f7
--- /dev/null
+++ b/src/documentation/resources/images/image2-2-1.gif
Binary files differ
diff --git a/src/documentation/resources/images/image2-2-2.gif b/src/documentation/resources/images/image2-2-2.gif
new file mode 100644
index 0000000..dad5143
--- /dev/null
+++ b/src/documentation/resources/images/image2-2-2.gif
Binary files differ
diff --git a/src/documentation/resources/images/image5.gif b/src/documentation/resources/images/image5.gif
new file mode 100644
index 0000000..6cdeed3
--- /dev/null
+++ b/src/documentation/resources/images/image5.gif
Binary files differ
diff --git a/src/documentation/resources/images/image6.gif b/src/documentation/resources/images/image6.gif
new file mode 100644
index 0000000..b14e628
--- /dev/null
+++ b/src/documentation/resources/images/image6.gif
Binary files differ
diff --git a/src/documentation/resources/images/invokemethod.jpg b/src/documentation/resources/images/invokemethod.jpg
new file mode 100644
index 0000000..f35ae2f
--- /dev/null
+++ b/src/documentation/resources/images/invokemethod.jpg
Binary files differ
diff --git a/src/documentation/resources/images/logo_cmp_mini.gif b/src/documentation/resources/images/logo_cmp_mini.gif
new file mode 100644
index 0000000..b7bc20c
--- /dev/null
+++ b/src/documentation/resources/images/logo_cmp_mini.gif
Binary files differ
diff --git a/src/documentation/resources/images/messageflow.jpg b/src/documentation/resources/images/messageflow.jpg
new file mode 100644
index 0000000..32a8885
--- /dev/null
+++ b/src/documentation/resources/images/messageflow.jpg
Binary files differ
diff --git a/src/documentation/resources/images/methodimpl.jpg b/src/documentation/resources/images/methodimpl.jpg
new file mode 100644
index 0000000..3b24fe6
--- /dev/null
+++ b/src/documentation/resources/images/methodimpl.jpg
Binary files differ
diff --git a/src/documentation/resources/images/project-logo.gif b/src/documentation/resources/images/project-logo.gif
new file mode 100644
index 0000000..52e2070
--- /dev/null
+++ b/src/documentation/resources/images/project-logo.gif
Binary files differ
diff --git a/src/documentation/resources/images/project-logo.jpg b/src/documentation/resources/images/project-logo.jpg
new file mode 100644
index 0000000..bac2bfb
--- /dev/null
+++ b/src/documentation/resources/images/project-logo.jpg
Binary files differ
diff --git a/src/documentation/resources/images/project-logo.png b/src/documentation/resources/images/project-logo.png
new file mode 100644
index 0000000..28d9a36
--- /dev/null
+++ b/src/documentation/resources/images/project-logo.png
Binary files differ
diff --git a/src/documentation/resources/images/project-logo2.jpg b/src/documentation/resources/images/project-logo2.jpg
new file mode 100644
index 0000000..392b596
--- /dev/null
+++ b/src/documentation/resources/images/project-logo2.jpg
Binary files differ
diff --git a/src/documentation/resources/images/spacer.gif b/src/documentation/resources/images/spacer.gif
new file mode 100644
index 0000000..35d42e8
--- /dev/null
+++ b/src/documentation/resources/images/spacer.gif
Binary files differ
diff --git a/src/documentation/resources/images/translistner.jpg b/src/documentation/resources/images/translistner.jpg
new file mode 100644
index 0000000..0dfbf7d
--- /dev/null
+++ b/src/documentation/resources/images/translistner.jpg
Binary files differ
diff --git a/src/documentation/resources/images/window1.jpg b/src/documentation/resources/images/window1.jpg
new file mode 100644
index 0000000..59be7f5
--- /dev/null
+++ b/src/documentation/resources/images/window1.jpg
Binary files differ
diff --git a/src/documentation/resources/images/window2.gif b/src/documentation/resources/images/window2.gif
new file mode 100644
index 0000000..033dcfc
--- /dev/null
+++ b/src/documentation/resources/images/window2.gif
Binary files differ
diff --git a/src/documentation/resources/images/wsaxis.png b/src/documentation/resources/images/wsaxis.png
new file mode 100644
index 0000000..ea21ba3
--- /dev/null
+++ b/src/documentation/resources/images/wsaxis.png
Binary files differ
diff --git a/src/documentation/skinconf.xml b/src/documentation/skinconf.xml
new file mode 100644
index 0000000..58ae173
--- /dev/null
+++ b/src/documentation/skinconf.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0"?>
+
+<!--
+Skin configuration file. This file contains details of your project, which will
+be used to configure the chosen Forrest skin.
+-->
+
+<!DOCTYPE skinconfig [
+
+  <!ENTITY % links.att 'name CDATA #REQUIRED'>
+  <!ENTITY % link.att 'name CDATA #REQUIRED href CDATA #REQUIRED'>
+  <!ELEMENT skinconfig (disable-search?, disable-print-link?, disable-pdf-link?,
+  disable-xml-link?, disable-compliance-links?, searchsite-domain?, searchsite-name?,
+  project-name, project-url, project-logo, group-name?, group-url?, group-logo?,
+  host-url?, host-logo?, year?, vendor?, trail?, toc?, credits?)*>
+  <!ELEMENT credits (credit*)>
+  <!ELEMENT credit (name, url, image?, width?, height?)>
+  <!-- id uniquely identifies the tool, and role indicates its function -->
+  <!ATTLIST credit id   CDATA #IMPLIED
+                   role CDATA #IMPLIED>
+  <!ELEMENT disable-search (#PCDATA)>
+  <!ELEMENT disable-print-link (#PCDATA)>
+  <!ELEMENT disable-pdf-link (#PCDATA)>
+  <!ELEMENT disable-xml-link (#PCDATA)>    
+  <!ELEMENT disable-compliance-links (#PCDATA)>   
+  <!ELEMENT searchsite-domain (#PCDATA)>
+  <!ELEMENT searchsite-name (#PCDATA)>  
+  <!ELEMENT project-name (#PCDATA)>
+  <!ELEMENT project-url (#PCDATA)>
+  <!ELEMENT project-logo (#PCDATA)>
+  <!ELEMENT group-name (#PCDATA)>
+  <!ELEMENT group-url (#PCDATA)>
+  <!ELEMENT group-logo (#PCDATA)>
+  <!ELEMENT host-url (#PCDATA)>
+  <!ELEMENT host-logo (#PCDATA)>
+  <!ELEMENT year (#PCDATA)>
+  <!ELEMENT vendor (#PCDATA)>
+  <!ELEMENT trail (link1, link2, link3)>
+  <!ELEMENT link1 EMPTY>
+  <!-- Seems we can't use param entity refs until this is DTDified -->
+  <!ATTLIST link1 name CDATA #REQUIRED href CDATA #IMPLIED>
+  <!ELEMENT link2 EMPTY>
+  <!ATTLIST link2 name CDATA #REQUIRED href CDATA #IMPLIED>
+  <!ELEMENT link3 EMPTY>
+  <!ATTLIST link3 name CDATA #REQUIRED href CDATA #IMPLIED>
+  <!ELEMENT name (#PCDATA)>
+  <!ELEMENT url (#PCDATA)>
+  <!ELEMENT image (#PCDATA)>
+  <!ELEMENT width (#PCDATA)>
+  <!ELEMENT height (#PCDATA)>
+  <!ELEMENT toc EMPTY>
+  <!ATTLIST toc level CDATA #IMPLIED>
+  ]>
+
+<skinconfig>
+  <!-- Do we want to disable the Google search box? -->
+  <disable-search>false</disable-search>
+  <!-- Do we want to disable the print link? -->
+  <disable-print-link>true</disable-print-link>  
+  <!-- Do we want to disable the PDF link? -->
+  <disable-pdf-link>false</disable-pdf-link>
+  <!-- Do we want to disable the xml source link? -->
+  <disable-xml-link>true</disable-xml-link>
+  <!-- Do we want to disable w3c compliance links? -->
+  <disable-compliance-links>false</disable-compliance-links>
+
+  <searchsite-domain>ws.apache.org</searchsite-domain>  
+  <searchsite-name>WS</searchsite-name>  
+
+  <!-- mandatory project logo
+       skin: forrest-site renders it at the top -->
+  <project-name>The Apache Axis Project</project-name>
+  <project-url>http://ws.apache.org/axis/</project-url>
+  <project-logo>images/axis3.jpg</project-logo>
+  <!-- Alternative static image:
+  <project-logo>images/project-logo.gif</project-logo> -->
+
+  <!-- optional group logo
+       skin: forrest-site renders it at the top-left corner -->
+  <group-name>The Apache WebServices Project</group-name>
+  <group-url>http://ws.apache.org/</group-url>
+  <group-logo>images/project-logo.png</group-logo>
+  <!-- Alternative static image:
+  <group-logo>images/group-logo.gif</group-logo> -->
+
+  <!-- project title image
+       skin: forrest-site renders it in the middle -->
+  <project-title-name>Web Services - Axis</project-title-name>
+  <project-title-img>images/wsaxis.png</project-title-img>
+
+  <!-- optional host logo (e.g. sourceforge logo)
+       skin: forrest-site renders it at the bottom-left corner -->
+  <host-url></host-url>
+  <host-logo></host-logo>
+
+  <!-- The following are used to construct a copyright statement -->
+  <year>2000-2005</year>
+  <vendor>The Apache Software Foundation</vendor>
+
+  <!-- Some skins use this to form a 'breadcrumb trail' of links. If you don't
+  want these, set the attributes to blank. The DTD purposefully requires them.
+  -->
+  <trail>
+    <link1 name="Apache" href="http://www.apache.org/"/>
+    <link2 name="Web Services" href="http://ws.apache.org/"/>
+    <link3 name="Axis" href="http://ws.apache.org/axis/"/>
+  </trail>
+
+  <!-- Configure how many "section" levels need to be included in the
+  generated Table of Contents (TOC). By default, if no toc element is provided
+  below, then 2 levels are included. Level 0 does not generate any TOC at all.
+  -->
+  <toc level="2"/>
+
+  <!-- Credits are typically rendered as a set of small clickable images in the
+  page footer -->
+  <credits>
+    <credit>
+      <name>Built with Apache Forrest</name>
+      <url>http://xml.apache.org/forrest/</url>
+      <image>images/built-with-forrest-button.png</image>
+      <width>88</width>
+      <height>31</height>
+    </credit>
+    <!-- A credit with @role='pdf' will have its name and url displayed in the
+    PDF page's footer. -->
+  </credits>
+
+</skinconfig>
diff --git a/src/documentation/skins/common/images/README.txt b/src/documentation/skins/common/images/README.txt
new file mode 100644
index 0000000..24bf01a
--- /dev/null
+++ b/src/documentation/skins/common/images/README.txt
@@ -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.
diff --git a/src/documentation/skins/common/images/built-with-forrest-button.png b/src/documentation/skins/common/images/built-with-forrest-button.png
new file mode 100644
index 0000000..4a787ab
--- /dev/null
+++ b/src/documentation/skins/common/images/built-with-forrest-button.png
Binary files differ
diff --git a/src/documentation/skins/common/images/pdfdoc.gif b/src/documentation/skins/common/images/pdfdoc.gif
new file mode 100644
index 0000000..00dee28
--- /dev/null
+++ b/src/documentation/skins/common/images/pdfdoc.gif
Binary files differ
diff --git a/src/documentation/skins/common/images/printer.gif b/src/documentation/skins/common/images/printer.gif
new file mode 100644
index 0000000..5021187
--- /dev/null
+++ b/src/documentation/skins/common/images/printer.gif
Binary files differ
diff --git a/src/documentation/skins/common/images/spacer.gif b/src/documentation/skins/common/images/spacer.gif
new file mode 100644
index 0000000..35d42e8
--- /dev/null
+++ b/src/documentation/skins/common/images/spacer.gif
Binary files differ
diff --git a/src/documentation/skins/common/images/valid-html401.png b/src/documentation/skins/common/images/valid-html401.png
new file mode 100644
index 0000000..3855210
--- /dev/null
+++ b/src/documentation/skins/common/images/valid-html401.png
Binary files differ
diff --git a/src/documentation/skins/common/images/xmldoc.gif b/src/documentation/skins/common/images/xmldoc.gif
new file mode 100644
index 0000000..ca1224f
--- /dev/null
+++ b/src/documentation/skins/common/images/xmldoc.gif
Binary files differ
diff --git a/src/documentation/skins/common/xslt/fo/document2fo.xsl b/src/documentation/skins/common/xslt/fo/document2fo.xsl
new file mode 100644
index 0000000..cbb7f12
--- /dev/null
+++ b/src/documentation/skins/common/xslt/fo/document2fo.xsl
@@ -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>
diff --git a/src/documentation/skins/common/xslt/fo/footerinfo.xsl b/src/documentation/skins/common/xslt/fo/footerinfo.xsl
new file mode 100644
index 0000000..355ae3e
--- /dev/null
+++ b/src/documentation/skins/common/xslt/fo/footerinfo.xsl
@@ -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>
diff --git a/src/documentation/skins/common/xslt/fo/pdfoutline.xsl b/src/documentation/skins/common/xslt/fo/pdfoutline.xsl
new file mode 100644
index 0000000..e90850d
--- /dev/null
+++ b/src/documentation/skins/common/xslt/fo/pdfoutline.xsl
@@ -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>
diff --git a/src/documentation/skins/common/xslt/html/book2menu.xsl b/src/documentation/skins/common/xslt/html/book2menu.xsl
new file mode 100644
index 0000000..263f16a
--- /dev/null
+++ b/src/documentation/skins/common/xslt/html/book2menu.xsl
@@ -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$
+-->
+
+<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>
diff --git a/src/documentation/skins/common/xslt/html/document2html.xsl b/src/documentation/skins/common/xslt/html/document2html.xsl
new file mode 100644
index 0000000..4dc5214
--- /dev/null
+++ b/src/documentation/skins/common/xslt/html/document2html.xsl
@@ -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$
+-->
+<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>
+
diff --git a/src/documentation/skins/common/xslt/html/dotdots.xsl b/src/documentation/skins/common/xslt/html/dotdots.xsl
new file mode 100644
index 0000000..f0436c0
--- /dev/null
+++ b/src/documentation/skins/common/xslt/html/dotdots.xsl
@@ -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>
diff --git a/src/documentation/skins/common/xslt/html/pathutils.xsl b/src/documentation/skins/common/xslt/html/pathutils.xsl
new file mode 100644
index 0000000..5590575
--- /dev/null
+++ b/src/documentation/skins/common/xslt/html/pathutils.xsl
@@ -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 <jefft@apache.org>
+$Id$
+-->
+
+<!-- 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>
diff --git a/src/documentation/skins/common/xslt/html/renderlogo.xsl b/src/documentation/skins/common/xslt/html/renderlogo.xsl
new file mode 100644
index 0000000..7e96385
--- /dev/null
+++ b/src/documentation/skins/common/xslt/html/renderlogo.xsl
@@ -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>
diff --git a/src/documentation/skins/common/xslt/html/site2xhtml.xsl b/src/documentation/skins/common/xslt/html/site2xhtml.xsl
new file mode 100644
index 0000000..9757dae
--- /dev/null
+++ b/src/documentation/skins/common/xslt/html/site2xhtml.xsl
@@ -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$
+-->
+
+<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>
diff --git a/src/documentation/skins/common/xslt/html/split.xsl b/src/documentation/skins/common/xslt/html/split.xsl
new file mode 100644
index 0000000..0076a36
--- /dev/null
+++ b/src/documentation/skins/common/xslt/html/split.xsl
@@ -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>
diff --git a/src/documentation/skins/common/xslt/html/tab2menu.xsl b/src/documentation/skins/common/xslt/html/tab2menu.xsl
new file mode 100644
index 0000000..cb95ecb
--- /dev/null
+++ b/src/documentation/skins/common/xslt/html/tab2menu.xsl
@@ -0,0 +1,159 @@
+<?xml version="1.0"?>
+<!--
+This stylesheet generates 'tabs' at the top left of the screen.  Tabs are
+visual indicators that a certain subsection of the URI space is being browsed.
+For example, if we had tabs with paths:
+
+Tab1:  ''
+Tab2:  'community'
+Tab3:  'community/howto'
+Tab4:  'community/howto/xmlform/index.html'
+
+Then if the current path was 'community/howto/foo', Tab3 would be highlighted.
+The rule is: the tab with the longest path that forms a prefix of the current
+path is enabled.
+
+The output of this stylesheet is HTML of the form:
+    <div class="tab">
+      ...
+    </div>
+
+which is then merged by site2xhtml.xsl
+
+$Id$
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <!-- ================================================================ -->
+  <!-- These templates SHOULD be overridden                             -->
+  <!-- ================================================================ -->
+
+  <!-- Called before first tag -->
+  <xsl:template name="pre-separator">
+  </xsl:template>
+
+  <!-- Called after last tag -->
+  <xsl:template name="post-separator">
+  </xsl:template>
+
+  <!-- Called between tags -->
+  <xsl:template name="separator">
+    <xsl:text> | </xsl:text>
+  </xsl:template>
+
+  <!--
+  Note: sub-stylesheets can't do apply-imports here, because it would choose
+  the 'tags' template and infinitely recurse. Hence call-template used instead.
+  -->
+
+  <!-- Display a selected tab node -->
+  <xsl:template name="selected">
+    <xsl:call-template name="base-selected"/>
+  </xsl:template>
+
+  <!-- Display an unselected tab node -->
+  <xsl:template name="not-selected">
+    <xsl:call-template name="base-not-selected"/>
+  </xsl:template>
+
+
+  <!-- ================================================================ -->
+  <!-- These templates CAN be overridden                             -->
+  <!-- ================================================================ -->
+
+  <xsl:template match="tabs">
+    <div class="tab">
+      <xsl:call-template name="base-tabs"/>
+    </div>
+  </xsl:template>
+
+
+  <!-- ================================================================ -->
+  <!-- These templates SHOULD NOT be overridden                         -->
+  <!-- ================================================================ -->
+
+  <xsl:param name="path"/>
+
+  <xsl:include href="dotdots.xsl"/>
+  <xsl:include href="tabutils.xsl"/>
+
+  <!-- NOTE: Xalan has a bug (race condition?) where sometimes $root is only half-evaluated -->
+  <xsl:variable name="root">
+    <xsl:call-template name="dotdots">
+      <xsl:with-param name="path" select="$path"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="skin-img-dir" select="concat(string($root), 'skin/images')"/>
+
+  <!--
+    The longest path of any tab, whose path is a subset of the current URL.  Ie,
+    the path of the 'current' tab.
+  -->
+  <xsl:variable name="longest-dir">
+    <xsl:call-template name="longest-dir">
+      <xsl:with-param name="tabfile" select="/"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="matching-id">
+    <xsl:call-template name="matching-id">
+      <xsl:with-param name="tabfile" select="/"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+
+  <!-- Called from tabs, after it has written the outer 'div class=tabs' and
+  any other HTML -->
+  <xsl:template name="base-tabs">
+    <xsl:call-template name="pre-separator"/>
+    <xsl:for-each select="//tab">
+      <xsl:if test="position()!=1"><xsl:call-template name="separator"/></xsl:if>
+      <xsl:apply-templates select="."/>
+    </xsl:for-each>
+    <xsl:call-template name="post-separator"/>
+  </xsl:template>
+
+
+  <xsl:template match="tab">
+    <xsl:choose>
+      <xsl:when test="@id and @id = $matching-id">
+        <xsl:call-template name="selected"/>
+      </xsl:when>
+      <xsl:when test="not(@id) and @dir = $longest-dir or @href = $longest-dir">
+        <xsl:call-template name="selected"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="not-selected"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- Called from 'selected' -->
+  <xsl:template name="base-selected">
+    <a class="base-selected">
+      <xsl:attribute name="href">
+        <xsl:call-template name="calculate-tab-href">
+          <xsl:with-param name="tab" select="."/>
+          <xsl:with-param name="path" select="$path"/>
+        </xsl:call-template>
+      </xsl:attribute>
+        <xsl:value-of select="@label"/>
+    </a>
+  </xsl:template>
+
+  <!-- Called from 'not-selected' -->
+  <xsl:template name="base-not-selected">
+    <a class="base-not-selected">
+      <xsl:attribute name="href">
+        <xsl:call-template name="calculate-tab-href">
+          <xsl:with-param name="tab" select="."/>
+          <xsl:with-param name="path" select="$path"/>
+        </xsl:call-template>
+      </xsl:attribute>
+        <xsl:value-of select="@label"/>
+    </a>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/src/documentation/skins/common/xslt/html/tabutils.xsl b/src/documentation/skins/common/xslt/html/tabutils.xsl
new file mode 100644
index 0000000..2208e02
--- /dev/null
+++ b/src/documentation/skins/common/xslt/html/tabutils.xsl
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+
+<!--
+Some callable templates useful when dealing with tab paths.  Mostly used in
+tab2menu.xsl
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:param name="site-file" select="'cocoon://abs-menulinks'"/>
+  <xsl:variable name="site" select="document($site-file)"/>
+ 
+  <!-- Given the current path and a tabs.xml entry, returns a relative path to
+  the specified tab's URL.  When rendering a set of tabs, this template will be
+  called once per tab.
+  -->
+  <xsl:template name="calculate-tab-href">
+
+    <xsl:param name="dir_index" select="'index.html'"/>
+
+    <xsl:param name="tab"/> <!-- current 'tab' node -->
+    <xsl:param name="path" select="$path"/>
+
+    <xsl:if test="starts-with($tab/@href, 'http')">  <!-- Absolute URL -->
+      <xsl:value-of select="$tab/@href"/>
+    </xsl:if>
+    <xsl:if test="not(starts-with($tab/@href, 'http'))">  <!-- Root-relative path -->
+      <xsl:variable name="backpath">
+        <xsl:call-template name="dotdots">
+          <xsl:with-param name="path" select="$path"/>
+        </xsl:call-template>
+        <xsl:text>/</xsl:text>
+        <xsl:value-of select="$tab/@dir | $tab/@href"/>
+        <!-- If we obviously have a directory, add /index.html -->
+        <xsl:if test="$tab/@dir or substring($tab/@href, string-length($tab/@href),
+          string-length($tab/@href)) = '/'">
+          <xsl:text>/</xsl:text>
+          <xsl:if test="$tab/@indexfile">
+            <xsl:value-of select="$tab/@indexfile"/>
+          </xsl:if>
+          <xsl:if test="not(@indexfile)">
+            <xsl:value-of select="$dir_index"/>
+          </xsl:if>
+        </xsl:if>
+      </xsl:variable>
+
+      <xsl:value-of
+        select="translate(normalize-space(translate($backpath, ' /', '/ ')), ' /', '/ ')"/>
+      <!-- Link to backpath, normalizing slashes -->
+    </xsl:if>
+  </xsl:template>
+
+  <!--
+    The id of any tab, whose path is a subset of the current URL.  Ie,
+    the path of the 'current' tab.
+  -->
+  <xsl:template name="matching-id" xmlns:l="http://apache.org/forrest/linkmap/1.0">
+    <xsl:value-of select="$site//*[starts-with(@href, $path)]/@tab"/>
+  </xsl:template>
+ 
+  <!--
+    The longest path of any tab, whose path is a subset of the current URL.  Ie,
+    the path of the 'current' tab.
+  -->
+  <xsl:template name="longest-dir">
+    <xsl:param name="tabfile"/>
+    <xsl:for-each select="$tabfile/tabs/tab[starts-with($path, @dir|@href)]">
+      <xsl:sort select="string-length(@dir|@href)"
+        data-type="number" order="descending"/>
+      <xsl:if test="position()=1">
+        <xsl:value-of select="@dir|@href"/>
+      </xsl:if>
+    </xsl:for-each>
+  </xsl:template>
+
+
+</xsl:stylesheet>
+
diff --git a/src/documentation/skins/ws-site/css/mysite.css b/src/documentation/skins/ws-site/css/mysite.css
new file mode 100644
index 0000000..a979b0b
--- /dev/null
+++ b/src/documentation/skins/ws-site/css/mysite.css
@@ -0,0 +1,88 @@
+/*
+ * Other colors:
+ *  - dark blue: #036
+ *  - bluish: #269
+ *
+ */
+
+/*
+ * The Banner section.
+ */
+.banner, .projectLogo, .groupLogo, .projectLogo a, .groupLogo a,
+    .groupLogo a:visited, .projectLogo a:visited,
+    .groupLogo a:link, .projectLogo a:link {
+}
+
+/*
+ * The Status + Footer section.
+ */
+.status, .breadcrumb, .searcher, .tabs {
+}
+
+.selectedTab {
+}
+
+/*
+ * The Menu section.
+ */
+.menuColumn {
+}
+.menubar {
+}
+.menu {
+}
+.menuLabel {
+}
+.menuItem {
+}
+
+/*
+ * The Content section.
+ */
+.contentColumn {
+}
+
+h1, h2, h3, h4 {
+}
+
+h3, h4 {
+ }
+h3 {
+  }
+h4 {  
+}
+
+.code {
+}
+
+.section {
+}
+
+.subsection {
+}
+
+/*
+ * The Footer section.
+ */
+.footer, .copyright, .host, .credit {
+}
+
+/*
+ * General Settings
+ */
+body {
+}
+
+a:link, .menuItem a:visited, .status a:visited {
+ color: #036;
+}
+
+a:active, a:hover {
+
+}
+
+body, th, td {
+}
+
+.logoImage {
+}
diff --git a/src/documentation/skins/ws-site/css/print.css b/src/documentation/skins/ws-site/css/print.css
new file mode 100644
index 0000000..059fd68
--- /dev/null
+++ b/src/documentation/skins/ws-site/css/print.css
@@ -0,0 +1,16 @@
+#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks	{
+	display: none;
+	}
+body.docs div.docs	{
+	margin: 0 !important;
+	border: none !important
+	}
+
+/* just to be sure */
+#navcolumn {
+ width: 0px;
+}
+
+#leftcol {
+ width: 0px;
+}
diff --git a/src/documentation/skins/ws-site/css/site.css b/src/documentation/skins/ws-site/css/site.css
new file mode 100644
index 0000000..b4842df
--- /dev/null
+++ b/src/documentation/skins/ws-site/css/site.css
@@ -0,0 +1,81 @@
+div#banner {
+ border-top: 1px solid #fff;
+ border-bottom: 1px solid #aaa;
+}
+
+#banner, #banner td {
+ background: #fff;
+ color: #036;
+}
+
+#tabs {
+  text-align: right;
+}
+
+.selectedTab {
+  color: #036;	
+}
+
+ a.unselectedTab {
+  color: #888888;	
+}
+
+#source {
+ background-color: #fff;
+ color: #000;
+ border-right: 1px solid #888;
+ border-left: 1px solid #888;
+ border-top: 1px solid #888;
+ border-bottom: 1px solid #888;
+ margin-right: 7px;
+ margin-left: 7px;
+ margin-top: 1em;
+}
+
+#source pre {
+ margin-right: 7px;
+ margin-left: 7px;
+}
+
+/* make the whole column grey */
+#navcolumn {
+ width: 150px;
+ }
+
+#leftcol {
+ width: 150px;
+}
+
+/*
+ * The Menu section.
+ */
+.menuColumn {
+}
+
+.menu {
+  padding-bottom: .2em;
+  font-size: x-small;
+  text-decoration: none;
+}
+.menuLabel { font-weight: bold; }
+.menuItem {
+  padding-left: 12px;
+  text-decoration: none;
+}
+
+/* breadcrumbs */
+#breadcrumbs
+{
+	font-weight: bold;
+}
+.breadcrumbTrail
+{
+	padding-left: 5px;
+}
+.breadcrumb
+{
+	font-weight: bold;
+}
+.crumbSeparator
+{
+}
diff --git a/src/documentation/skins/ws-site/css/tigris.css b/src/documentation/skins/ws-site/css/tigris.css
new file mode 100644
index 0000000..b84338d
--- /dev/null
+++ b/src/documentation/skins/ws-site/css/tigris.css
@@ -0,0 +1,439 @@
+/* contains rules unsuitable for Netscape 4.x; simpler rules are in ns4_only.css. see <http://style.tigris.org/> */
+
+/* colors, backgrounds, borders, link indication */ 
+
+body {
+ background: #fff;
+ color: #000;
+ }
+.app h3, .app h4, .app th, .tabs td, .tabs th, .functnbar {
+ background-image: url(images/nw_maj_rond.gif);
+ background-repeat: no-repeat;
+ }
+#navcolumn div div, body.docs #toc li li  {
+ background-image: url(images/strich.gif);
+ background-repeat: no-repeat;
+ background-position: .5em .5em;
+ }
+#navcolumn div div.heading  {
+ background-image: none;
+ }
+.app h3, .app h4 {
+ background-color: #e8e8e8;
+ }
+.a td {
+ background: #ddd;
+ }
+.b td {
+ background: #efefef;
+ }
+table, th, td {
+ border: none
+ }
+.mtb {
+ border-top: solid 1px #ddd;
+ }
+div.colbar {
+ background: #bbb;
+ }
+div#banner {
+/*
+ border-top: 1px solid #369;
+ border-bottom: 1px solid #003;
+*/
+ }
+div#helptext th {
+ border-bottom: 1px solid #996;
+ border-right: 1px solid #996;
+ }
+div#helptext td {
+ border-bottom: 1px solid #cc9;
+ border-right: 1px solid #cc9;
+ }
+.tabs { 
+ border-bottom: .75em #888 solid;
+ }
+.tabs th, .tabs td {
+ border-right: 1px solid #333;
+ }
+.tabs td {
+ border-bottom: 1px solid #ddd;
+ }
+#navcolumn {
+ background: #eee;
+ border-right: 1px solid #aaa;
+ border-bottom: 1px solid #aaa;
+ }
+#breadcrumbs {
+ border-bottom: 0px solid #000;
+ border-top: 0px solid #fff;
+ background-color: #036;
+ color:#fff;
+ }
+#navcolumn  {
+  border-top: 1px solid #fff;
+ }
+#rightcol div.www, #rightcol div.help {
+ border: 1px solid #ddd;
+ }
+div#navcolumn div.focus {
+ border-top: 1px solid #aaa;
+ border-left: 1px solid #aaa;
+ background-color: #fff;
+ } 
+body.docs div.docs { 
+ background: #fff;
+ border-left: 1px solid #ddd;
+ border-top: 1px solid #ddd;
+ }
+body.docs { 
+ background: #eee url(images/help_logo.gif) top right no-repeat !important;
+ }
+.docs h3, .docs h4 {
+ border-top: solid 1px #000;
+ }
+#alerterrormessage { 
+ background: url(images/icon_alert.gif) top left no-repeat !important;
+ }
+.functnbar {
+ background-color: #aaa;
+ }
+.functnbar2, .functnbar3  {
+ background: #aaa;
+ }
+.functnbar3 {
+ background-color: #ddd;
+ }
+.functnbar, .functnbar2, .functnbar3 {
+ color: #000;
+ }
+.functnbar a, .functnbar2 a, .functnbar3 a {
+ color: #000;
+ text-decoration: underline;
+ }
+#topmodule {
+ background: #ddd;
+ border-top: 1px solid #fff;
+ border-bottom: 1px solid #aaa; 
+ border-right: 1px solid #aaa; 
+ }
+#topmodule #issueid {
+ border-right: 1px solid #aaa;
+ }
+a:link, #navcolumn a:visited, .app a:visited, .tasknav a:visited {
+ color: blue;
+ }
+a:active, a:hover, #leftcol a:active, #leftcol a:hover {
+ color: #f30 !important;
+ }
+#login a:link, #login a:visited {
+ color: white; 
+ text-decoration: underline;
+ }
+#banner a:active, #banner a:hover {
+ color: #f90 !important;
+ }
+#leftcol a, #breadcrumbs a  {
+ text-decoration: none;
+ }
+a:link.selfref, a:visited.selfref {
+ color: #555 !important;
+ text-decoration: none;
+ }
+h2 .lastchild {
+ color: #777
+ } 
+.tabs td, .tabs th {
+ background-color: #ddd;
+ }
+.app th {
+ background-color: #bbb;
+ }
+.tabs th {
+ background-color: #888;
+ color: #fff;
+ }
+.axial th {
+ background-color: #ddd;
+ color: black
+ }
+.tabs td {
+ background-color: #ddd;
+ }
+.alert { 
+ color: #c00;
+ }
+.confirm {
+ color: green;
+ }
+.info {
+ color: blue;
+ }
+.selection {
+ background: #ffc;
+ }
+#login {
+ color: #fff;
+ }
+#helptext th {
+ background: #cc9;
+ }
+#helptext td {
+ background: #ffc;
+ }
+.tabs a  {
+ text-decoration: none;
+ }
+#navcolumn div strong {
+ color: #000;
+ }
+body #banner #login a { 
+ color: #fff;
+ }
+
+
+/* font and text properties, exclusive of link indication, alignment, text-indent */
+
+body, th, td, input, select, textarea, h2 small {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ }
+code, pre {
+ font-family: 'Andale Mono', Courier, monospace;
+ }
+html body, body th, body td, textarea, h2 small, .app h3, .app h4, #rightcol h3, #bodycol pre, #bodycol code {
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small
+ }
+html>body, html>body th, html>body td, html>body input, html>body select, html>body textarea, html>body h2 small, html>body #rightcol h3, html>body #bodycol pre, html>body #bodycol code {
+ font-size: small
+ }
+small, div#footer td, div#login, div.tabs th, div.tabs td, input, select, .paginate, .functnbar, .functnbar2, .functnbar3, #breadcrumbs td, .courtesylinks, #rightcol div.help, .colbar, .tasknav, body.docs div#toc, #leftcol {
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: x-small
+ }
+html>body small, html>body div#footer td, html>body div#login, html>body div#helptext td, html>body div#helptext th, html>body div.tabs th, html>body div.tabs td, html>body input, html>body select, html>body .paginate, html>body .functnbar, html>body .functnbar2, html>body .functnbar3, html>body #breadcrumbs td, html>body .courtesylinks, html>body #rightcol div.help, html>body .colbar, html>body .tasknav, html>body.docs #toc {
+ font-size: x-small
+ }
+#bodycol h2 {
+ font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
+ font-size: 1.5em;
+ font-weight: normal;
+ }
+h2 small {
+ font-weight: bold;
+ letter-spacing: .06em;
+ }
+dt {
+ font-weight: bold
+ }
+#login .username {
+ font-weight: bold;
+ }
+#breadcrumbs td {
+ font-weight: bold;
+ } 
+.selection {
+ font-weight: bold
+ }
+
+
+/* box properties (exclusive of borders), positioning, alignments, list types, text-indent */
+
+#bodycol h2 {
+ margin-top: .3em;
+ margin-bottom: .5em;
+ }
+p, ul, ol, dl {
+ margin-top: .67em;
+ margin-bottom: .67em;
+ }
+h3, h4 {
+ margin-bottom: 0;
+ }
+form {
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+#bodycol {
+ padding-left: 12px;
+ padding-right: 12px;
+ width: 100%;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ width: auto;
+ }
+html>body #bodycol {
+ width: auto;
+ }
+.docs {
+ line-height: 1.4;
+ }
+.app h3, .app h4 {
+ padding-left:10px;
+ }
+.h3 p, .h4 p, .h3 dt, .h4 dt {
+ margin-right: 7px;
+ margin-left: 7px;
+ }
+.tasknav {
+ margin-bottom: 1.33em
+ }
+div.colbar {
+ padding: 4px;
+ margin: 2px 2px 0;
+ }
+.tabs { 
+ margin-top: .67em;
+ margin-right: 2px;
+ margin-left: 2px;
+ }
+#leftcol {
+ padding-bottom: .5em;
+ }
+#breadcrumbs td {
+ vertical-align: middle;
+/* padding: 2px 8px; */
+ } 
+#rightcol div.www, #rightcol div.help {
+ padding: 0 .5em
+ }
+#navcolumn {
+ margin: -8px -8px 0 -8px;
+ padding: 4px;
+ }
+#navcolumn div {
+ padding-left: 5px
+ }
+div#navcolumn div div {
+ margin-top: .3em;
+ margin-bottom: .3em;
+ }
+div#navcolumn div.focus { 
+ margin-top: -.1em;
+ padding: .2em 4px; 
+ } 
+body.docs #toc { 
+ position: absolute;
+ top: 15px;
+ left: 0px;
+ width: 120px;
+ padding: 0 20px 0 0
+ }
+body.docs #toc ul, #toc ol {
+ margin-left: 0;
+ padding-left: 0;
+ }
+body.docs #toc li {
+ margin-top: 7px;
+ padding-left: 10px;
+ list-style-type: none;
+ }
+body.docs div.docs { 
+ margin: 61px 0 0 150px;
+ padding: 1em 2em 1em 1em !important;
+ }
+.docs p+p {
+ text-indent: 5%;
+ margin-top: -.67em
+ }
+.docs h3, .docs h4 {
+ margin-bottom: .1em;
+ padding-top: .3em;
+ }
+#alerterrormessage { 
+ padding-left: 100px;
+ }
+.functnbar, .functnbar2, .functnbar3 {
+ padding: 5px;
+ margin: .67em 2px;
+ }
+#topmodule td {
+ vertical-align: middle;
+ padding: 2px 8px
+ } 
+body {
+ padding: 1em;
+ }
+body.composite, body.docs {
+ margin: 0;
+ padding: 0;
+ }
+th, td {
+ text-align: left;
+ vertical-align: top 
+ }
+.right {
+ text-align: right !important;
+ }
+.center {
+ text-align: center !important;
+ }
+.tabs td, .tabs th {
+ padding-left: 7px;
+ padding-right: 7px;
+ }
+.axial th {
+ text-align: right;
+ }
+.app .axial td th {
+ text-align: left;
+ }
+body td .stb {
+ margin-top: 1em;
+ text-indent: 0;
+ }
+body td .mtb {
+ margin-top: 2em;
+ text-indent: 0;
+ }
+dd {
+ margin-bottom: .67em;
+ }
+#footer {
+ margin: 4px
+ }
+#helptext {
+ margin-top: 1em
+ }
+#helptext td div {
+ margin: .5em
+ }
+.courtesylinks {
+ margin-top: 1em;
+ padding-top: 1em
+ }
+#navcolumn div {
+ margin-bottom: .5em;
+ }
+#navcolumn div div {
+ margin-top: .3em
+ }
+#navcolumn div div {
+ padding-left: 1em;
+ }
+#banner, #banner td { 
+ vertical-align: middle;
+ }
+body.docs, body.nonav {
+ margin: 1em
+ }
+ .app h3, .app h4 {
+  color: #008;
+  }
+ .app h3{
+  font-size:large;
+  }
+ .app h1{
+  font-size:x-large;
+  }
+#breadcrumbs a{
+ color:#ff4;
+ }
+ td #query {
+ 	font-size:x-small;
+ 	font-weight:normal;
+ }
diff --git a/src/documentation/skins/ws-site/images/add.jpg b/src/documentation/skins/ws-site/images/add.jpg
new file mode 100644
index 0000000..06831ee
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/add.jpg
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/favicon.ico b/src/documentation/skins/ws-site/images/favicon.ico
new file mode 100644
index 0000000..161bcf7
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/favicon.ico
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/help_logo.gif b/src/documentation/skins/ws-site/images/help_logo.gif
new file mode 100644
index 0000000..cc25c03
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/help_logo.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/icon_alert.gif b/src/documentation/skins/ws-site/images/icon_alert.gif
new file mode 100644
index 0000000..4968bca
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/icon_alert.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/note.gif b/src/documentation/skins/ws-site/images/note.gif
new file mode 100644
index 0000000..83ce9ec
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/note.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/nw_maj_rond.gif b/src/documentation/skins/ws-site/images/nw_maj_rond.gif
new file mode 100644
index 0000000..add42a4
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/nw_maj_rond.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/nw_min.gif b/src/documentation/skins/ws-site/images/nw_min.gif
new file mode 100644
index 0000000..bf4bc75
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/nw_min.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/pdfdoc.gif b/src/documentation/skins/ws-site/images/pdfdoc.gif
new file mode 100644
index 0000000..00dee28
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/pdfdoc.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/remove.jpg b/src/documentation/skins/ws-site/images/remove.jpg
new file mode 100644
index 0000000..8c9b9ef
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/remove.jpg
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/spacer.gif b/src/documentation/skins/ws-site/images/spacer.gif
new file mode 100644
index 0000000..35d42e8
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/spacer.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/strich.gif b/src/documentation/skins/ws-site/images/strich.gif
new file mode 100644
index 0000000..a33e79d
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/strich.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/update.jpg b/src/documentation/skins/ws-site/images/update.jpg
new file mode 100644
index 0000000..beb9207
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/update.jpg
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/valid-html401.png b/src/documentation/skins/ws-site/images/valid-html401.png
new file mode 100644
index 0000000..3855210
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/valid-html401.png
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/vcss.png b/src/documentation/skins/ws-site/images/vcss.png
new file mode 100644
index 0000000..9b2f596
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/vcss.png
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/void.gif b/src/documentation/skins/ws-site/images/void.gif
new file mode 100644
index 0000000..75b945d
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/void.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/images/xmldoc.gif b/src/documentation/skins/ws-site/images/xmldoc.gif
new file mode 100644
index 0000000..ca1224f
--- /dev/null
+++ b/src/documentation/skins/ws-site/images/xmldoc.gif
Binary files differ
diff --git a/src/documentation/skins/ws-site/xslt/fo/document2fo.xsl b/src/documentation/skins/ws-site/xslt/fo/document2fo.xsl
new file mode 100644
index 0000000..9b845e7
--- /dev/null
+++ b/src/documentation/skins/ws-site/xslt/fo/document2fo.xsl
@@ -0,0 +1,11 @@
+<?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:import href="../../../common/xslt/fo/document2fo.xsl"/>
+
+</xsl:stylesheet>
+
+
diff --git a/src/documentation/skins/ws-site/xslt/html/book2menu.xsl b/src/documentation/skins/ws-site/xslt/html/book2menu.xsl
new file mode 100644
index 0000000..a0775a4
--- /dev/null
+++ b/src/documentation/skins/ws-site/xslt/html/book2menu.xsl
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!--
+book2menu.xsl generates the HTML menu.  See the imported book2menu.xsl for
+details.
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:import href="../../../common/xslt/html/book2menu.xsl"/>
+
+  <xsl:template match="book">
+    <div class="menuBar">
+      <xsl:apply-templates select="menu"/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="menu">
+    <div class="menu">
+      <span class="menuLabel"><xsl:value-of select="@label"/></span>
+      <xsl:call-template name="base-menu"/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="menu-item[@type='hidden']"/>
+
+  <xsl:template match="menu-item">
+    <div class="menuItem">
+      <xsl:apply-imports/>
+    </div>
+  </xsl:template>
+
+  <xsl:template name="selected">
+    <span class="menuSelected">
+      <xsl:value-of select="@label"/>
+    </span>
+  </xsl:template>
+
+  <xsl:template name="print-external">
+    <font color="#ffcc00">
+      <span class="externalSelected">
+        <xsl:apply-imports/>
+      </span>
+    </font>
+  </xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/src/documentation/skins/ws-site/xslt/html/document2html.xsl b/src/documentation/skins/ws-site/xslt/html/document2html.xsl
new file mode 100644
index 0000000..7ac9509
--- /dev/null
+++ b/src/documentation/skins/ws-site/xslt/html/document2html.xsl
@@ -0,0 +1,274 @@
+<?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.
+
+$Id$
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:import href="../../../common/xslt/html/document2html.xsl"/>
+
+<!-- ====================================================================== -->
+<!-- document section -->
+<!-- ====================================================================== -->
+
+ <xsl:template match="document">
+  <!-- checks if this is the included document to avoid neverending loop -->
+  <xsl:if test="not(book)">
+      <document>
+      <xsl:choose>
+		<xsl:when test="header/title">
+		      <title><xsl:value-of select="header/title"/></title>
+		</xsl:when>
+		<xsl:otherwise>
+			<title>NO TITLE</title>
+		</xsl:otherwise>
+	</xsl:choose>
+      <body>
+        <xsl:apply-templates/>
+        <xsl:if test="header/authors">
+            <div align="right" id="authors">       
+               <xsl:for-each select="header/authors/person">
+                     <xsl:choose>
+                        <xsl:when test="position()=1">by&#160;</xsl:when>
+
+                        <xsl:otherwise>,&#160;</xsl:otherwise>
+                     </xsl:choose>
+                     <!-- <a href="mailto:{@email}"> -->
+                      <xsl:value-of select="@name" />
+                     <!-- </a> -->
+                  </xsl:for-each>
+              </div>
+         </xsl:if>         
+        <xsl:call-template name="pdflink"/>
+      </body>
+      </document>
+   </xsl:if>
+
+  
+    
+   <xsl:if test="book">
+    <xsl:apply-templates/>
+   </xsl:if>
+  </xsl:template>
+
+   <xsl:template match="body">
+    <xsl:apply-templates/>
+  </xsl:template>
+  
+ 
+<!-- ====================================================================== -->
+<!-- header section -->
+<!-- ====================================================================== -->
+
+ <xsl:template match="header">
+  <!-- ignore on general document -->
+ </xsl:template>
+
+<!-- ====================================================================== -->
+<!-- body section -->
+<!-- ====================================================================== -->
+
+   <xsl:template match="section">
+	
+	 <xsl:variable name = "level" select = "count(ancestor::section)+1" />
+	 
+	 <xsl:choose>
+	 	<xsl:when test="$level=1">
+	 	  <div class="h3"><h3><xsl:value-of select="title"/></h3></div>
+	      <xsl:apply-templates/>
+	 	</xsl:when>
+	 	<xsl:when test="$level=2">
+	 	  <div class="h4"><h4><xsl:value-of select="title"/></h4></div>
+	      <xsl:apply-templates/>
+	 	</xsl:when>
+	 	<xsl:when test="$level=3">
+	 	  <div class="h2"><h2><xsl:value-of select="title"/></h2></div>
+	      <xsl:apply-templates/>
+	 	</xsl:when>
+	 	<xsl:otherwise>
+	 	  <div class="h5"><h5><xsl:value-of select="title"/></h5></div>
+	      <xsl:apply-templates/>	 	 
+	 	</xsl:otherwise>
+	 </xsl:choose>
+
+	</xsl:template>  
+
+ <xsl:template match="title">
+ </xsl:template>
+ 	       
+<!-- ====================================================================== -->
+<!-- footer section -->
+<!-- ====================================================================== -->
+
+ <xsl:template match="footer">
+  <!-- ignore on general documents -->
+ </xsl:template>
+
+<!-- ====================================================================== -->
+<!-- paragraph section -->
+<!-- ====================================================================== -->
+
+  <xsl:template match="p">
+    <xsl:apply-imports/>
+  </xsl:template>
+
+  <xsl:template match="note">
+    <xsl:apply-imports/>
+  </xsl:template>
+
+  <xsl:template match="source">
+    <xsl:apply-imports/>
+  </xsl:template>
+  
+  <xsl:template match="//source/font">
+    <font color="{@color}"><xsl:apply-templates/></font>
+  </xsl:template>
+    
+  <xsl:template match="fixme">
+    <xsl:apply-imports/>
+  </xsl:template>
+
+<!-- ====================================================================== -->
+<!-- list section -->
+<!-- ====================================================================== -->
+
+ <xsl:template match="ul|ol|dl">
+    <xsl:apply-imports/>
+ </xsl:template>
+ 
+ <xsl:template match="li">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+ <xsl:template match="sl">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+ <xsl:template match="dt">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+<!-- ====================================================================== -->
+<!-- table section -->
+<!-- ====================================================================== -->
+
+  <xsl:template match="table">
+    <xsl:apply-imports/>
+  </xsl:template>
+
+  <xsl:template match="tr">
+    <xsl:variable name="index"><xsl:number/></xsl:variable>
+    <tr>
+       <xsl:choose>
+          <xsl:when test="($index mod 2) = 0">
+             <xsl:attribute name="class">a</xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+             <xsl:attribute name="class">b</xsl:attribute>
+          </xsl:otherwise>
+       </xsl:choose>
+     
+       <xsl:apply-templates/>
+    </tr>
+  </xsl:template>
+
+  <xsl:template match="th">
+    <xsl:apply-imports/>
+  </xsl:template>
+
+  <xsl:template match="td">
+    <xsl:apply-imports/>
+  </xsl:template>
+
+  <xsl:template match="tn">
+    <xsl:apply-imports/>
+  </xsl:template>
+  
+  <xsl:template match="caption">
+    <!-- ignore since already used -->
+  </xsl:template>
+
+<!-- ====================================================================== -->
+<!-- markup section -->
+<!-- ====================================================================== -->
+
+ <xsl:template match="strong">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+ <xsl:template match="em">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+ <xsl:template match="code">
+    <xsl:apply-imports/>
+ </xsl:template>
+ 
+<!-- ====================================================================== -->
+<!-- images section -->
+<!-- ====================================================================== -->
+
+ <xsl:template match="figure">
+    <xsl:apply-imports/>
+ </xsl:template>
+ 
+ <xsl:template match="img">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+ <xsl:template match="icon">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+<!-- ====================================================================== -->
+<!-- links section -->
+<!-- ====================================================================== -->
+
+ <xsl:template match="link">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+ <xsl:template match="connect">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+ <xsl:template match="jump">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+ <xsl:template match="fork">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+ <xsl:template match="anchor">
+    <xsl:apply-imports/>
+ </xsl:template>  
+
+<!-- ====================================================================== -->
+<!-- specials section -->
+<!-- ====================================================================== -->
+
+ <xsl:template match="br">
+    <xsl:apply-imports/>
+ </xsl:template>
+
+  <!-- Generates the PDF link -->
+  <xsl:template name="pdflink">
+    <xsl:if test="not($config/disable-pdf-link) or $disable-pdf-link = 'false'"> 
+      <div align="right" id="pdf"><a href="{$filename-noext}.pdf">
+          <img class="skin" src="{$skin-img-dir}/pdfdoc.gif" alt="PDF"/><br/>
+          PDF</a>
+      </div>
+    </xsl:if>
+  </xsl:template>
+
+</xsl:stylesheet>
diff --git a/src/documentation/skins/ws-site/xslt/html/site2xhtml.xsl b/src/documentation/skins/ws-site/xslt/html/site2xhtml.xsl
new file mode 100644
index 0000000..792ae21
--- /dev/null
+++ b/src/documentation/skins/ws-site/xslt/html/site2xhtml.xsl
@@ -0,0 +1,278 @@
+<?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$
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:import href="../../../common/xslt/html/site2xhtml.xsl"/>
+
+  <xsl:template match="site">
+      <html>
+         <head>
+            <xsl:comment>*** This is a generated file.  Do not edit.  ***</xsl:comment>
+            <link type="text/css" href="{$root}skin/tigris.css" rel="stylesheet" />
+            <link type="text/css" href="{$root}skin/mysite.css" rel="stylesheet" />
+            <link type="text/css" href="{$root}skin/site.css"   rel="stylesheet" />
+            <link type="text/css" href="{$root}skin/print.css"  rel="stylesheet" media="print" />
+
+            <title>
+              <xsl:value-of select="/site/document/title" />
+            </title>
+         </head>
+    
+  <body class="composite" bgcolor="white">
+    
+    <xsl:comment>================= start Banner ==================</xsl:comment>
+      <div id="banner">
+        <table border="0" summary="banner" cellspacing="0" cellpadding="0" width="100%">
+         <tbody>        
+          <tr>
+            <xsl:comment>================= start Group Logo ==================</xsl:comment>
+            <xsl:if test="$config/group-name">
+            <td align="left">
+              <div class="groupLogo">
+                <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:call-template>
+              </div>
+            </td>
+            </xsl:if>
+            <xsl:comment>================= end Group Logo ==================</xsl:comment>
+            <xsl:comment>================= start Project Title ==================</xsl:comment>
+            <td align="left" width="100%" nowrap="1">
+              <div class="projectTitleImg"><br/>
+                <xsl:call-template name="renderlogo">
+                  <xsl:with-param name="name" select="$config/project-title-name"/>
+                  <xsl:with-param name="logo" select="$config/project-title-img"/>
+                  <xsl:with-param name="root" select="$root"/>
+                </xsl:call-template>
+              </div>
+            </td>
+            <xsl:comment>================= end Project Title ==================</xsl:comment>
+            <xsl:comment>================= start Project Logo ==================</xsl:comment>
+            <td align="right">
+              <div class="projectLogo">
+                <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:call-template>
+              </div>
+            </td>
+            <xsl:comment>================= end Project Logo ==================</xsl:comment>
+<!--
+            <xsl:comment>================= start Search ==================</xsl:comment>
+            <td class="search" align="right" rowspan="2" valign="top">
+              <xsl:if test="not($config/disable-search) or
+                $config/disable-search='false' and $config/searchsite-domain and
+                $config/searchsite-name">
+                <form method="get" action="http://www.google.com/search" target="_blank">
+                  <table cellpadding="0" cellspacing="0" border="0" summary="search">
+                    <tr>
+                      <td colspan="3" bgcolor="#a5b6c6"><img class="spacer" src="{$spacer}" alt="" width="1" height="10" /></td>
+                    </tr>
+                    <tr>
+                      <td colspan="3"><img class="spacer" src="{$spacer}" alt="" width="1" height="8" /></td>
+                    </tr>
+                    <tr>
+                      <td><img class="spacer" src="{$spacer}" alt="" width="1" height="1" /></td>
+                      <td nowrap="nowrap">
+                        <input type="hidden" name="sitesearch" value="{$config/searchsite-domain}"/>
+                        <input type="text" id="query" name="q" size="10"/>
+                        <img class="spacer" src="{$spacer}" alt="" width="5" height="1" />
+                        <input type="submit" value="Go" name="Search"/>
+                        <br />
+                          Search <xsl:value-of select="$config/searchsite-name"/>
+-->
+                          <!-- setting search options off for the moment -->
+                          <!--
+                          <input type="radio" name="web" value="web"/>web site&#160;&#160;<input type="radio" name="mail" value="mail"/>mail lists
+                          -->
+<!--   
+                      </td>
+                      <td><img class="spacer" src="{$spacer}" alt="" width="1" height="1" /></td>
+                    </tr>
+
+                    <tr>
+                      <td colspan="3"><img class="spacer" src="{$spacer}" alt="" width="1" height="7" /></td>
+                    </tr>
+
+                    <tr>
+                      <td class="bottom-left-thick"></td>
+                      <td bgcolor="#a5b6c6"><img class="spacer" src="{$spacer}" alt="" width="1" height="1" /></td>
+                      <td class="bottom-right-thick"></td>
+                    </tr>
+                  </table>
+                </form>
+              </xsl:if>
+            </td>
+            <xsl:comment>================= end Search ==================</xsl:comment>
+-->
+          </tr>
+         </tbody>          
+        </table>
+      </div>
+    <xsl:comment>================= end Banner ==================</xsl:comment>
+
+    <xsl:comment>================= start Main ==================</xsl:comment>
+    <table id="breadcrumbs" summary="nav" border="0" cellspacing="0" cellpadding="0" width="100%">
+     <tbody>    
+      <xsl:comment>================= start Status ==================</xsl:comment>
+      <tr class="status">
+        <td width="100%">
+          <xsl:comment>================= start BreadCrumb ==================</xsl:comment>
+            <xsl:text>&#160;&#160;&#160;&#160;</xsl:text>
+            <a href="{$config/trail/link1/@href}"><xsl:value-of select="$config/trail/link1/@name" /></a> 
+            <xsl:if test = "($config/trail/link2/@name)and(normalize-space($config/trail/link2/@name)!='')"><xsl:text> | </xsl:text></xsl:if>                                 
+            <a href="{$config/trail/link2/@href}"><xsl:value-of select="$config/trail/link2/@name" /></a>
+            <xsl:if test = "($config/trail/link3/@name)and(normalize-space($config/trail/link3/@name)!='')"><xsl:text> | </xsl:text></xsl:if>                                 
+            <a href="{$config/trail/link3/@href}"><xsl:value-of select="$config/trail/link3/@name" /></a>
+          <!-- useful when we have <link> elements instead of link(n:=1..3)  
+          <xsl:for-each select="$config/trail/link">
+            <xsl:if test="position()!=1">|</xsl:if>
+            <a href="{@href}"><xsl:value-of select="@name"/></a>
+          </xsl:for-each>
+          -->
+          <xsl:comment>================= end BreadCrumb ==================</xsl:comment>
+        </td>
+		<td align="right" nowrap="1">
+			<form target="_blank" action="http://www.google.com/search" method="get">Search <input value="ws.apache.org" name="sitesearch" type="hidden"/><input size="10" name="q" id="query" type="text"/><img height="1" width="5" alt="" src="skin/images/spacer.gif" class="spacer"/><input name="Search" value="Go" type="submit"/>
+			</form>
+		</td>
+<!--        
+        <td id="tabs">
+          <xsl:comment>================= start Tabs ==================</xsl:comment>
+          <xsl:apply-templates select="div[@class='tab']"/>
+          <xsl:comment>================= end Tabs ==================</xsl:comment>
+        </td>
+-->
+      </tr>
+     </tbody>      
+    </table>      
+      <xsl:comment>================= end Status ==================</xsl:comment>
+
+
+    <table border="0" summary="" cellspacing="0" cellpadding="8" width="100%" id="main">
+     <tbody>
+      <tr valign="top">
+        <xsl:comment>================= start Menu ==================</xsl:comment>
+        <td id="leftcol">
+          <div id="navcolumn">
+            <xsl:apply-templates select="div[@class='menuBar']"/>
+          </div>
+        </td>
+        <xsl:comment>================= end Menu ==================</xsl:comment>
+
+        <xsl:comment>================= start Content ==================</xsl:comment>
+        <td>
+          <div id="bodycol">
+            <div class="app">
+<!--            
+              <div align="center">
+                <h1><xsl:value-of select="/site/document/title" /></h1>
+                <xsl:if test="/site/document/subtitle">
+                  <h2><xsl:value-of select="/site/document/subtitle" /></h2>
+                </xsl:if>
+               </div>
+-->
+                <div class="h3">
+                   <xsl:copy-of select="/site/document/body/node()|@*" />
+                </div>
+              </div>
+                    <xsl:apply-templates select="div[@class='content']"/>
+            </div>
+        </td>
+        <xsl:comment>================= end Content ==================</xsl:comment>
+      </tr>
+     </tbody>      
+    </table>
+    <xsl:comment>================= end Main ==================</xsl:comment>
+
+    <xsl:comment>================= start Footer ==================</xsl:comment>
+    <div id="footer">
+    <table border="0" width="100%" cellpadding="4" cellspacing="0" summary="footer">
+     <tbody>
+      <tr>
+        <xsl:comment>================= start Copyright ==================</xsl:comment>
+        <td colspan="2">
+          <div align="center">
+            <div class="copyright">
+              Copyright &#169; <xsl:value-of select="$config/year"/>&#160;<xsl:value-of
+              select="$config/vendor"/>. All rights reserved.
+            </div>
+          </div>
+        </td>
+        <xsl:comment>================= end Copyright ==================</xsl:comment>
+      </tr>
+      <tr>
+      <td align="left">
+        <xsl:comment>================= start Host ==================</xsl:comment>
+        <xsl:if test="$config/host-logo and not($config/host-logo = '')">
+          <div align="left">
+            <div class="host">
+              <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>
+            </div>
+          </div>
+        </xsl:if>
+        <xsl:comment>================= end Host ==================</xsl:comment>
+      </td>
+      <td align="right">
+        <xsl:comment>================= start Credits ==================</xsl:comment>
+        <div align="right">
+          <div class="credit">
+            <xsl:if test="$filename = 'index.html'">
+              <xsl:call-template name="compliancy-logos"/>
+              <xsl:if test="$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>
+            </xsl:if>
+          </div>
+        </div>
+        <xsl:comment>================= end Credits ==================</xsl:comment>
+        </td>
+      </tr>
+     </tbody>
+    </table>
+    </div>
+    <xsl:comment>================= end Footer ==================</xsl:comment>
+
+      </body>
+    </html>
+    </xsl:template>
+
+</xsl:stylesheet>
diff --git a/src/documentation/skins/ws-site/xslt/html/tab2menu.xsl b/src/documentation/skins/ws-site/xslt/html/tab2menu.xsl
new file mode 100644
index 0000000..e279133
--- /dev/null
+++ b/src/documentation/skins/ws-site/xslt/html/tab2menu.xsl
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<!--
+This stylesheet generates 'tabs' at the top left of the screen.
+See the imported tab2menu.xsl for details.
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:import href="../../../common/xslt/html/tab2menu.xsl"/>
+
+  <xsl:template name="pre-separator">
+  </xsl:template>
+
+  <xsl:template name="post-separator">
+  </xsl:template>
+
+  <xsl:template name="separator">
+    <xsl:text> | </xsl:text>
+  </xsl:template>
+
+  <xsl:template name="selected" mode="print">
+    <span class="selectedTab">
+      <xsl:call-template name="base-selected"/>
+    </span>
+  </xsl:template>
+
+  <xsl:template name="not-selected" mode="print">
+    <span class="unselectedTab">
+    <!-- Called from 'not-selected' -->
+     <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="calculate-tab-href">
+          <xsl:with-param name="tab" select="."/>
+          <xsl:with-param name="path" select="$path"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:value-of select="@label"/>
+     </a>
+    </span>
+  </xsl:template>
+</xsl:stylesheet>