<?xml version="1.0"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="html" indent="yes"/>
<xsl:preserve-space elements="*"/>

<xsl:template match="config">
<xsl:comment>AUTOMATICALLY GENERATED FROM XML - DO NOT EDIT!</xsl:comment>
<html><head><title>Configuration For <xsl:value-of select="(@class)"/></title>
<link href="http://www.mekwin.com/nst/css/site.css" rel="stylesheet" type="text/css" />
</head>

<body>
<table class="hstyle" width="100%"><tr>
<td align="left"><a class="hstyle" href="{concat(@class,'.man.html')}"><xsl:value-of select="(@class)"/></a></td>
<td align="right"><a class="hstyle" href="cxxwrap/index.html">C++ API</a></td>
</tr></table>

<p class="tstyle">Configuration For <xsl:value-of select="(@class)"/></p>

<p>The following shows the details of the configuration associated
with <b><xsl:value-of select="(@class)"/></b>:</p>

<dl>
  <xsl:for-each select="*"><dt><b><xsl:value-of select="key"/><xsl:text> </xsl:text><xsl:value-of select="(@type)"/></b><xsl:if test="(@default)"> (<i><xsl:value-of select="(@default)"/></i>)</xsl:if></dt>
<dd><xsl:value-of select="description"/></dd>
  </xsl:for-each>
</dl>

<h1>More Information</h1>

<p>At the moment, Paul is blown away at the flexibility of using XML
to encode configuration key/value pair information. He's only spent a
few hours playing with XML, DTD, and XSL, but has enough understanding
to be dangerous. At the moment he is considering whether this should
be introduced into the build process for all developers, or if he
should simply use it as his own productivity tool.</p>

<p>The following provides links to the original and resulting
files. The beauty being that only a single XML file needs to be
maintained - the rest are automatically generated. Paul had a tough
time stopping his translations, there are lots of additional
possibilities: Java code, Java properties files, HTML input form,
rough GUI interfaces.</p>

<dl>

<dt><a href="{concat(@class,'_config.xml')}"><xsl:value-of
select="(@class)"/>_config.xml</a></dt><dd>This is the original XML
file. This is the only file which the developer needs to
edit/maintain. NOTE: Your browser may attempt to interpret this file,
so you may need to save it to disk and view it with a text file editor
to see the actual contents (or use <b>View Page Source</b> if your
browser gives you an error).</dd>

<dt><a href="{concat(@class,'_config.html')}"><xsl:value-of
select="(@class)"/>_config.html</a></dt><dd>This is the HTML output you are
currently looking at which was automatically generated from the source
XML file.</dd>

<dt><a href="{concat(@class,'.cfg')}"><xsl:value-of
select="(@class)"/>.cfg</a></dt><dd>This is the sample configuration
file which was automatically generated from the source XML file.</dd>

<dt><a
href="{concat(@class,'_config.hh')}"><xsl:value-of
select="(@class)"/>_config.hh</a></dt><dd>This is the C++ class
definition which was automatically generated from the source XML
file.</dd>

<dt><a
href="{concat(@class,'_config.cc')}"><xsl:value-of
select="(@class)"/>_config.cc</a></dt><dd>This is the C++ class
implementation which was automatically generated from the source XML
file.</dd>

<dt><a
href="{concat('../GAIapa/',@class,'.man.html')}"><xsl:value-of
select="(@class)"/>.man.html</a></dt><dd>This is the man page, whose
description of the configuration file settings comes directly from the
source XML file.</dd>

<dt><a
href="{concat('../GAIapa/cxxwrapi/',@class,'Config.html')}"><xsl:value-of
select="(@class)"/>Config.html</a></dt><dd>This is the C++ API
document which cxxwrap produces from the automatically generated
header file.</dd>

</dl>

<p>You can see there is a lot of potential (I haven't even bothered
with custom Java code to process the XML file yet - I've stuck with
pure XSL).</p>

<p>There are however several things to consider prior to making this a
tool for everyone:</p>

<ul>

<li>Would want a XML CVS area.</li>

<li>Would require developer to have access to the xalan translater
(this is OpenSource from <a
href="http://apache.org/">apache.org</a>.</li>

<li>Would want a configure/make/make install script to allow developer
to install it on a system.</li>

<li>Would need some makefile updates to make it easier to include XML
source into the build.</li>

<li>Would want to review the DTD (Paul really just did it on the fly
and it probably isn't really done in the proper manner - the fixed
attributes to support XSL seem a bit sleazy).</li>

<li>Would probably want a document describing how to create the source
XML documentation.</li>

</ul>


<br />
<table class="hstyle" width="100%"><tr>

<td class="hstyle" align="left">&#169;2003 -
<a class="hstyle" href="http://www.vaisala.com/">vaisala.com</a></td>

<td align="right"><table><tr><td><p class="hstyle">
v<xsl:value-of select="(@version)"/>
</p></td></tr></table></td>

</tr></table>
</body></html>

</xsl:template>

</xsl:stylesheet>
