You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by iv...@apache.org on 2002/09/23 05:58:30 UTC
cvs commit: xml-cocoon2/src/webapp/samples/stylesheets/xmlform xmlform2html.xsl
ivelin 2002/09/22 20:58:30
Modified: src/webapp/samples/stylesheets/xmlform xmlform2html.xsl
Log:
minor update
Mostly comments
Revision Changes Path
1.2 +48 -28 xml-cocoon2/src/webapp/samples/stylesheets/xmlform/xmlform2html.xsl
Index: xmlform2html.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/stylesheets/xmlform/xmlform2html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- xmlform2html.xsl 2 Jul 2002 13:06:41 -0000 1.1
+++ xmlform2html.xsl 23 Sep 2002 03:58:30 -0000 1.2
@@ -26,8 +26,7 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xf="http://xml.apache.org/cocoon/xmlform/2002"
->
+ xmlns:xf="http://xml.apache.org/cocoon/xmlform/2002">
<xsl:output method = "html" omit-xml-declaration = "yes" />
@@ -36,51 +35,68 @@
<xsl:apply-templates />
</xsl:template>
+
<xsl:template match="xf:form">
- <form method="POST">
+ <form>
<xsl:copy-of select="@*"/>
+
+ <!-- the xf:form/@view attributed is sent back to the server as a hidden field -->
<input type="hidden" name="cocoon-xmlform-view" value="{@view}"/>
+
+ <!-- render the child form controls -->
<xsl:apply-templates />
+
</form>
</xsl:template>
+
<xsl:template match="xf:output">
[<xsl:value-of select="xf:value/text()"/>]
</xsl:template>
+
<xsl:template match="xf:textbox">
+ <!-- the ref attribute is assigned to html:name, which is how it is linked to the model -->
<input name="{@ref}" type="textbox" value="{xf:value/text()}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <!-- copy all attributes from the original markup, except for "ref" -->
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
</input>
</xsl:template>
+
<xsl:template match="xf:password">
<input name="{@ref}" type="password" value="{xf:value/text()}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
</input>
</xsl:template>
+
<xsl:template match="xf:hidden">
<input name="{@ref}" type="hidden" value="{xf:value/text()}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
</input>
</xsl:template>
+
<xsl:template match="xf:selectBoolean">
<input name="{@ref}" type="checkbox" value="true">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
<xsl:if test="xf:value/text() = 'true'">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
</xsl:template>
+
<xsl:template match="xf:selectOne | xf:selectOne[@selectUIType='listbox']">
<select name="{@ref}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <!-- all currently selected nodes are listed as value elements -->
<xsl:variable name="selected" select="xf:value"/>
<xsl:for-each select="xf:item">
<option value="{xf:value}">
+ <!-- If the current item value matches one of the selected values -->
+ <!-- mark it as selected in the listbox -->
<xsl:if test="$selected = xf:value">
<xsl:attribute name="selected"/>
</xsl:if>
@@ -89,13 +105,14 @@
</xsl:for-each>
</select>
</xsl:template>
+
<xsl:template match="xf:selectOne[@selectUIType='radio']">
- <xsl:variable name="selected" select="xf:value"/>
- <xsl:variable name="ref" select="@ref"/>
+ <xsl:variable name="selected" select="xf:value"/>
+ <xsl:variable name="ref" select="@ref"/>
<xsl:for-each select="xf:item">
<input name="{$ref}" type="radio" value="{xf:value}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
<xsl:if test="xf:value = $selected">
<xsl:attribute name="checked"/>
</xsl:if>
@@ -107,28 +124,28 @@
<xsl:template match="xf:selectMany | xf:selectMany[@selectUIType='listbox']">
- <xsl:variable name="selected" select="xf:value"/>
- <select name="{@ref}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
- <xsl:attribute name="multiple"/>
- <xsl:for-each select="xf:item">
- <option value="{xf:value}">
- <xsl:if test="xf:value = $selected">
- <xsl:attribute name="selected"/>
- </xsl:if>
- <xsl:value-of select="xf:caption"/>
- </option>
- </xsl:for-each>
- </select>
+ <xsl:variable name="selected" select="xf:value"/>
+ <select name="{@ref}">
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:attribute name="multiple"/>
+ <xsl:for-each select="xf:item">
+ <option value="{xf:value}">
+ <xsl:if test="xf:value = $selected">
+ <xsl:attribute name="selected"/>
+ </xsl:if>
+ <xsl:value-of select="xf:caption"/>
+ </option>
+ </xsl:for-each>
+ </select>
</xsl:template>
<xsl:template match="xf:selectMany[@selectUIType='checkbox']">
- <xsl:variable name="selected" select="xf:value"/>
- <xsl:variable name="ref" select="@ref"/>
+ <xsl:variable name="selected" select="xf:value"/>
+ <xsl:variable name="ref" select="@ref"/>
<xsl:for-each select="xf:item">
<input name="{$ref}" type="checkbox" value="{xf:value}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
<xsl:if test="xf:value = $selected">
<xsl:attribute name="checked"/>
</xsl:if>
@@ -141,12 +158,15 @@
<xsl:template match="xf:submit">
+ <!-- the id attribute of the submit control is sent to the server -->
+ <!-- as a conventional Cocoon Action parameter of the form cocoon-action-* -->
<input name="cocoon-action-{@id}" type="submit" value="{xf:caption/text()}">
- <xsl:copy-of select="@*[not(name()='id')]"/>
+ <xsl:copy-of select="@*[not(name()='id')]"/>
</input>
</xsl:template>
+ <!-- copy all the rest of the markup which is not recognized above -->
<xsl:template match="*">
<xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
</xsl:template>
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org