427 lines
13 KiB
HTML
Executable file
427 lines
13 KiB
HTML
Executable file
<?xml version="1.0" encoding="utf-8" ?>
|
|
|
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:output encoding="utf-8" method="html" indent="yes" />
|
|
|
|
<xsl:param name="locale" select="en-UK"/>
|
|
|
|
<xsl:template match="application">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>
|
|
Data definition for the <xsl:value-of select="@name"/> application
|
|
version <xsl:value-of select="@version"/>
|
|
</title>
|
|
<link href="styles/default.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<h1>
|
|
Data definition for the <xsl:value-of select="@name"/> application version <xsl:value-of select="@version"/>
|
|
</h1>
|
|
<xsl:apply-templates select="documentation"/>
|
|
|
|
<xsl:for-each select="entity">
|
|
<h2>
|
|
<xsl:value-of select="@name" />
|
|
</h2>
|
|
<xsl:apply-templates select="documentation"/>
|
|
<dl>
|
|
<xsl:for-each select="permission">
|
|
<dt>
|
|
Group:
|
|
<xsl:value-of select="@group"/>
|
|
</dt>
|
|
<dd>
|
|
Permissions:
|
|
<xsl:value-of select="@permission"/>
|
|
</dd>
|
|
</xsl:for-each>
|
|
</dl>
|
|
<table>
|
|
<tr class="header">
|
|
<th class="white">Property</th>
|
|
<th class="white">Type</th>
|
|
<th class="white">Req'd</th>
|
|
<th class="white">Def'lt</th>
|
|
<th class="white">Size</th>
|
|
<th class="white">Distinct</th>
|
|
<th class="white">Prompt</th>
|
|
</tr>
|
|
<xsl:for-each select="property" >
|
|
<tr>
|
|
<xsl:attribute name="class">
|
|
<xsl:choose>
|
|
<xsl:when test="position() mod 2 = 0">even</xsl:when>
|
|
<xsl:otherwise>odd</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:attribute>
|
|
<td>
|
|
<xsl:value-of select="@name"/> 
|
|
</td>
|
|
<td>
|
|
<xsl:value-of select="@type"/>
|
|
<xsl:if test="@type='entity'">
|
|
of type <xsl:value-of select="@entity"/>
|
|
</xsl:if>
|
|
<xsl:if test="@definition">
|
|
:
|
|
<xsl:variable name="definition">
|
|
<xsl:value-of select="@definition"/>
|
|
</xsl:variable>
|
|
<xsl:variable name="defined-type">
|
|
<xsl:value-of select="/application/definition[@name=$definition]/@type"/>
|
|
</xsl:variable>
|
|
<xsl:choose>
|
|
<xsl:when test="$defined-type = 'string'">
|
|
String matching
|
|
"<xsl:value-of select="/application/definition[@name=$definition]/@pattern"/>"
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="/application/definition[@name=$definition]/@minimum"/> <
|
|
<xsl:value-of select="@definition"/> <
|
|
<xsl:value-of select="/application/definition[@name=$definition]/@maximum"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
 
|
|
</td>
|
|
<td>
|
|
<xsl:value-of select="@required"/> 
|
|
</td>
|
|
<td>
|
|
<xsl:value-of select="@default"/> 
|
|
</td>
|
|
<td>
|
|
<xsl:value-of select="@size"/> 
|
|
</td>
|
|
<td>
|
|
<xsl:value-of select="@distinct"/> 
|
|
</td>
|
|
<td>
|
|
<xsl:for-each select="prompt">
|
|
<xsl:apply-templates select="@prompt"/> 
|
|
</xsl:for-each>
|
|
</td>
|
|
</tr>
|
|
<xsl:if test="help">
|
|
<tr>
|
|
<td>
|
|
<xsl:apply-templates select="help"/> 
|
|
</td>
|
|
</tr>
|
|
</xsl:if>
|
|
<xsl:if test="documentation">
|
|
<tr>
|
|
<td>
|
|
<xsl:apply-templates select="help"/> 
|
|
</td>
|
|
</tr>
|
|
</xsl:if>
|
|
</xsl:for-each>
|
|
</table>
|
|
</xsl:for-each>
|
|
<xsl:apply-templates select="form"/>
|
|
<xsl:apply-templates select="list"/>
|
|
<xsl:apply-templates select="page"/>
|
|
</body>
|
|
</html>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="prompt">
|
|
<!-- If I'm the prompt for the current locale, show me;
|
|
if I'm the default prompt, show me only if there isn't
|
|
one for the default locale -->
|
|
<xsl:choose>
|
|
<xsl:when test="@locale=$locale">
|
|
<xsl:value-of select="@prompt"/>
|
|
</xsl:when>
|
|
<xsl:when test="@locale='default'">
|
|
<xsl:choose>
|
|
<xsl:when test="../prompt[@locale=$locale]"/>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="@prompt"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="help">
|
|
<!-- If I'm the helptext for the current locale, show me;
|
|
if I'm the default helptext, show me only if there isn't
|
|
one for the default locale -->
|
|
<xsl:choose>
|
|
<xsl:when test="@locale=$locale">
|
|
<xsl:apply-templates/>
|
|
</xsl:when>
|
|
<xsl:when test="@locale='default'">
|
|
<xsl:choose>
|
|
<xsl:when test="../help[@locale=$locale]"/>
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="documentation">
|
|
<div xmlns="http://www.w3.org/1999/xhtml" class="documentation">
|
|
<xsl:apply-templates />
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="form">
|
|
<div xmlns="http://www.w3.org/1999/xhtml">
|
|
<h3 xmlns="http://www.w3.org/1999/xhtml">
|
|
Form <xsl:value-of select="@name"/>
|
|
</h3>
|
|
<xsl:if test="permission">
|
|
<h4 xmlns="http://www.w3.org/1999/xhtml">Permissions</h4>
|
|
<ul xmlns="http://www.w3.org/1999/xhtml">
|
|
<xsl:apply-templates select="permission"/>
|
|
</ul>
|
|
</xsl:if>
|
|
<xsl:choose>
|
|
<xsl:when test="@properties='listed'">
|
|
<p>Showing the following properties</p>
|
|
<table xmlns="http://www.w3.org/1999/xhtml">
|
|
<tr>
|
|
<th> </th>
|
|
<th>Property</th>
|
|
<th>Prompt</th>
|
|
<th>Documentation</th>
|
|
</tr>
|
|
<xsl:apply-templates select="field|fieldgroup|auxlist|verb"/>
|
|
</table>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<p>Showing all properties</p>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="page">
|
|
<div xmlns="http://www.w3.org/1999/xhtml">
|
|
<h3 xmlns="http://www.w3.org/1999/xhtml">
|
|
Page <xsl:value-of select="@name"/>
|
|
</h3>
|
|
<xsl:if test="permission">
|
|
<ul xmlns="http://www.w3.org/1999/xhtml">
|
|
<xsl:apply-templates select="permission"/>
|
|
</ul>
|
|
</xsl:if>
|
|
<xsl:choose>
|
|
<xsl:when test="@properties='listed'">
|
|
<p>Showing the following properties</p>
|
|
<table xmlns="http://www.w3.org/1999/xhtml">
|
|
<tr>
|
|
<th> </th>
|
|
<th>Property</th>
|
|
<th>Prompt</th>
|
|
<th>Documentation</th>
|
|
</tr>
|
|
<xsl:apply-templates select="field|fieldgroup|auxlist|verb"/>
|
|
</table>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<p>Showing all properties</p>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="list">
|
|
<div xmlns="http://www.w3.org/1999/xhtml">
|
|
<h3 xmlns="http://www.w3.org/1999/xhtml">
|
|
List <xsl:value-of select="@name"/>, on select <xsl:value-of select="onselect"/>
|
|
</h3>
|
|
<xsl:if test="permission">
|
|
<ul xmlns="http://www.w3.org/1999/xhtml">
|
|
<xsl:apply-templates select="permission"/>
|
|
</ul>
|
|
</xsl:if>
|
|
<xsl:choose>
|
|
<xsl:when test="@properties='listed'">
|
|
<p>Showing the following properties</p>
|
|
<table xmlns="http://www.w3.org/1999/xhtml">
|
|
<tr>
|
|
<th> </th>
|
|
<th>Property</th>
|
|
<th>Prompt</th>
|
|
<th>Documentation</th>
|
|
</tr>
|
|
<xsl:apply-templates select="field|fieldgroup|auxlist|verb"/>
|
|
</table>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<p>Showing all properties</p>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="field">
|
|
<tr xmlns="http://www.w3.org/1999/xhtml">
|
|
<xsl:attribute name="class">
|
|
<xsl:choose>
|
|
<xsl:when test="parent::fieldgroup">
|
|
<xsl:choose>
|
|
<xsl:when test="position() = last()">fieldgroup-end</xsl:when>
|
|
<xsl:otherwise>fieldgroup</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
<xsl:when test="parent::auxlist">
|
|
<xsl:choose>
|
|
<xsl:when test="position() = last()">auxlist-end</xsl:when>
|
|
<xsl:otherwise>auxlist</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:attribute>
|
|
<td>Field</td>
|
|
<td>
|
|
<xsl:value-of select="@property"/>
|
|
</td>
|
|
<td>
|
|
<xsl:apply-templates select="prompt"/>
|
|
</td>
|
|
<td>
|
|
<xsl:apply-templates select="help"/>
|
|
</td>
|
|
<td>
|
|
<xsl:apply-templates select="documentation"/>
|
|
</td>
|
|
</tr>
|
|
<xsl:if test="permission">
|
|
<tr xmlns="http://www.w3.org/1999/xhtml">
|
|
<td></td>
|
|
<td colspan="3">
|
|
<xsl:apply-templates select="permission"/>
|
|
</td>
|
|
</tr>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
|
|
<xsl:template match="verb">
|
|
<tr xmlns="http://www.w3.org/1999/xhtml">
|
|
<xsl:attribute name="class">
|
|
<xsl:choose>
|
|
<xsl:when test="parent::fieldgroup">
|
|
<xsl:choose>
|
|
<xsl:when test="position() = last()">fieldgroup-end</xsl:when>
|
|
<xsl:otherwise>fieldgroup</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
<xsl:when test="parent::auxlist">
|
|
<xsl:choose>
|
|
<xsl:when test="position() = last()">auxlist-end</xsl:when>
|
|
<xsl:otherwise>auxlist</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:attribute>
|
|
<td>Verb</td>
|
|
<td>
|
|
<xsl:value-of select="@verb"/>
|
|
<xsl:if test="@dangerous='true'">[dangerous]</xsl:if>
|
|
</td>
|
|
<td>
|
|
<xsl:apply-templates select="prompt"/>
|
|
</td>
|
|
<td>
|
|
<xsl:apply-templates select="help"/>
|
|
</td>
|
|
<td>
|
|
<xsl:apply-templates select="documentation"/>
|
|
</td>
|
|
</tr>
|
|
<xsl:if test="permission">
|
|
<tr xmlns="http://www.w3.org/1999/xhtml">
|
|
<td></td>
|
|
<td colspan="3">
|
|
<xsl:apply-templates select="permission"/>
|
|
</td>
|
|
</tr>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
|
|
|
|
<xsl:template match="auxlist">
|
|
<tr xmlns="http://www.w3.org/1999/xhtml" class="auxlist-start">
|
|
<th>Auxlist</th>
|
|
<th>
|
|
<xsl:value-of select="@property"/>
|
|
</th>
|
|
<th>
|
|
<xsl:apply-templates select="prompt"/>
|
|
</th>
|
|
<th>
|
|
<xsl:apply-templates select="help"/>
|
|
</th>
|
|
<th>
|
|
<xsl:apply-templates select="documentation"/>
|
|
</th>
|
|
</tr>
|
|
<tr xmlns="http://www.w3.org/1999/xhtml" class="auxlist">
|
|
<th>On select:</th>
|
|
<td>
|
|
<xsl:value-of select="@onselect"/>
|
|
</td>
|
|
<td colspan="2">
|
|
<xsl:choose>
|
|
<xsl:when test="@properties='listed'">
|
|
Showing the following properties
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
Showing all properties
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</td>
|
|
</tr>
|
|
<xsl:apply-templates select="field|fieldgroup|auxlist|verb"/>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="fieldgroup">
|
|
<tr xmlns="http://www.w3.org/1999/xhtml" class="fieldgroup-start">
|
|
<th>Auxlist</th>
|
|
<th>
|
|
<xsl:value-of select="@name"/>
|
|
</th>
|
|
<th>
|
|
<xsl:apply-templates select="prompt"/>
|
|
</th>
|
|
<th>
|
|
<xsl:apply-templates select="help"/>
|
|
</th>
|
|
<th>
|
|
<xsl:apply-templates select="documentation"/>
|
|
</th>
|
|
</tr>
|
|
<tr xmlns="http://www.w3.org/1999/xhtml" class="auxlist">
|
|
<th>On select:</th>
|
|
<td>
|
|
<xsl:value-of select="@onselect"/>
|
|
</td>
|
|
<td colspan="2">
|
|
<xsl:choose>
|
|
<xsl:when test="@properties='listed'">
|
|
Showing the following properties
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
Showing all properties
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</td>
|
|
</tr>
|
|
<xsl:apply-templates select="field|fieldgroup|auxlist|verb"/>
|
|
</xsl:template>
|
|
|
|
|
|
|
|
|
|
</xsl:stylesheet>
|