<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" 
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/>
<xsl:template match="/">
<html>
<head>
	<title>Documentation from OME.xsd</title>
	
	<link rel="stylesheet" type="text/css" href="sanityStyles.css"/>

	<script src="jquery.js" type="text/javascript"></script>
	<script src="sanityScript.js" type="text/javascript"></script>
</head>

<body>
	<h2>Sanity Checking for OME metadata</h2>
	<p>This is a list of candidate parameters that we could do "Sanity checking" on, to highlight potential problems with metadata import.
		Currently editing suggested max and min values in the documentation for each attribute, but this could be hard-coded in the
		xsd in future, for validity checking. In this case, we would use this only for internal testing rather than put this in the
		released ome.xsd.
	</p>
	
	<table>
		<tr>
			<th id="test">Parameter</th> 	<th>Type</th> <th>Max</th> 	<th>Min</th> 	<th>Units</th> 	<th>Documentation</th>
		</tr>
		<tr class="param">
			<td>PhysicalSizeX</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>PhysicalSizeY</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>PhysicalSizeZ</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>TimeIncrement</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>WaveStart</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>WaveIncrement</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>DeltaT</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>ExposureTime</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>PinholeSize</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>ExWave</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>EmWave</td> 
			<td class="type"></td>
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>CutIn</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>CutOut</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>NominalMagnification</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>CalibratedMagnification</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>WorkingDistance</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>LensNA</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>Gain</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>Voltage</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>Offset</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>Zoom</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
		<tr class="param">
			<td>AmplificationGain</td>
			<td class="type"></td> 
			<td class="max"></td> 	
			<td class="min"></td> 	
			<td class="units"></td> 
			<td class="documentation"></td>
		</tr>
	</table>
			
     <xsl:apply-templates/>
</body>
</html>
</xsl:template>


<!-- delegates to the next level of templates -->
<xsl:template match="xsd:schema">
    	<xsl:apply-templates/>
</xsl:template>


<!-- delegates to the next level of templates -->
<xsl:template match="xsd:element">
	<div>
		<xsl:attribute name="id">
		    <xsl:value-of select="@name" />
		 </xsl:attribute>
		<xsl:attribute name="class">element</xsl:attribute>
		<xsl:attribute name="type">
		    <xsl:value-of select="@type" />
		 </xsl:attribute>
		<h2>
			<xsl:value-of select="@name"/>
		</h2>
    	<xsl:apply-templates/>
	</div>
</xsl:template>


<!-- delegates to the next level of templates -->
<xsl:template match="xsd:attribute">
<!--	<xsl:if test="xsd:annotation !=''">   -->
	<div>
		<xsl:attribute name="id">
		    <xsl:value-of select="@name" />
		 </xsl:attribute>
		<xsl:attribute name="class">attribute</xsl:attribute>
		<xsl:attribute name="type">
		    <xsl:value-of select="@type" />
		 </xsl:attribute>
		<h3>
			<xsl:value-of select="@name"/>
		</h3>
    
	<xsl:apply-templates/>
	</div>
</xsl:template>

<!-- For each annotation, simply print the documentation -->
<xsl:template match="xsd:annotation">
	<p class="doc">
		<xsl:value-of select="xsd:documentation"/>
	</p>
</xsl:template>

<!-- For each annotation, simply print the max and min -->
<xsl:template match="xsd:simpleType">
	<div class="min">
		<xsl:value-of select="xsd:restriction/xsd:minInclusive/@value"/>
	</div>
	<div class="max">
		<xsl:value-of select="xsd:restriction/xsd:maxInclusive/@value"/>
	</div>
</xsl:template>

</xsl:stylesheet>