Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / real-world application / jigsaw / WWW / Doc / User / SSI.html
diff --git a/JMCR-Stable/real-world application/jigsaw/WWW/Doc/User/SSI.html b/JMCR-Stable/real-world application/jigsaw/WWW/Doc/User/SSI.html
new file mode 100644 (file)
index 0000000..b8af096
--- /dev/null
@@ -0,0 +1,585 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" \r
+   "http://www.w3.org/TR/REC-html40/loose.dtd"> \r
+<HTML>\r
+  <HEAD>\r
+    <TITLE>SSI Commands</TITLE>\r
+    <link rel="stylesheet" type="text/css" href="../style/doc.css">\r
+    <STYLE TYPE="text/css">\r
+      A.ssi {\r
+        text-decoration : none;\r
+      }\r
+\r
+      A.ssi:link {\r
+        color : blue;\r
+        text-decoration : none;\r
+      }\r
+\r
+      A.ssi:visited {\r
+        color : blue;\r
+        text-decoration : none;\r
+      }\r
+\r
+      A.ssi:active {\r
+        color : blue;\r
+        text-decoration : none;\r
+      }\r
+\r
+      .ssi {\r
+        font-weight  : bold;\r
+      }\r
+\r
+      .cmd {\r
+        color : blue;\r
+      }\r
+\r
+      .par {\r
+        color: red;\r
+      }\r
+\r
+      .val {\r
+        font-style : italic;\r
+        font-weight  : normal;\r
+      }\r
+    </STYLE>\r
+    <!-- Changed by: Benoit Mahe, 18-Jul-1997 -->\r
+  </HEAD>\r
+  <BODY>\r
+    <div class="icons-w3c">\r
+      <a href="../../../">\r
+       <img src="/Icons/w3c_home" \r
+         border="0" \r
+         alt="W3C logo"\r
+         height="48" \r
+         width="72">\r
+      </a>\r
+    </div>\r
+    <div class="icons-jigsaw">\r
+      <a href="../../">\r
+       <img src="/Icons/jigsaw" \r
+         border="0"\r
+         alt="Jigsaw"\r
+         height="49"\r
+         width="212">\r
+      </a>\r
+    </div>\r
+\r
+    <div class="title">\r
+      <H1 class="title">Server Side Include commands</H1>\r
+      <hr NOSHADE width="70%" align="left">\r
+      <a href="../../Overview.html">Jigsaw Home</a> /\r
+      <a href="../Overview.html">Documentation Overview</a> /\r
+      <a href="Tutorials.html">Tutorials</a>\r
+    </div>\r
+    <div class="body">\r
+    <p>\r
+      These commands should be written in a .shtml file that is indexed as a\r
+      FileResource associated with a SSIFrame. The commands are separated in\r
+      two parts:\r
+    <p>\r
+    <UL>\r
+      <LI><A HREF="#commands">Commands</A>\r
+    <OL>\r
+      <LI><A HREF="#config">ConfigCommand</A></LI>\r
+      <LI><A HREF="#cookie">CookieCommand</A></LI>\r
+      <LI><A HREF="#count">CountCommand</A></LI>\r
+      <LI><A HREF="#echo">EchoCommand</A></LI>\r
+      <LI><A HREF="#exec">ExecCommand</A></LI>\r
+      <LI><A HREF="#flast">FLastCommand</A></LI>\r
+      <LI><A HREF="#fsize">FSizeCommand</A></LI>\r
+      <LI><A HREF="#include">IncludeCommand</A></LI>\r
+      <LI><A HREF="#jdbc">jdbcCommand</A></LI>\r
+      <LI><A HREF="#servlet">ServletCommand</A></LI>\r
+    </OL>\r
+    <LI><A HREF="#controls">Control Commands</A>\r
+    <OL>\r
+      <LI><A HREF="#counter">CounterCommand</A></LI>\r
+      <LI><A HREF="#else">ElseCommand</A></LI>\r
+      <LI><A HREF="#endif">EndifCommand</A></LI>\r
+      <LI><A HREF="#endloop">EndloopCommand</A></LI>\r
+      <LI><A HREF="#exitloop">ExitloopCommand</A></LI>\r
+      <LI><A HREF="#if">IfCommand</A></LI>\r
+      <LI><A HREF="#loop">LoopCommand</A></LI>\r
+    </OL>\r
+  </UL>\r
+    A complete <A HREF="#example">example</A>.\r
+    <H2><A NAME="commands"></A>Commands</H2>\r
+    <H4><A NAME="config"></A><U>ConfigCommand</U></H4>\r
+    <DL>\r
+    <DD>\r
+      Used to set the  <B>sizefmt</B> and <B>datefmt</B> variables, which\r
+      control the output of file sizes and dates.</DD>\r
+    <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>datefmt =</B> the date format</LI>\r
+         <LI><B>sizefmt =</B> the size format</LI>\r
+       </UL>\r
+    <DD>Example:</DD>\r
+    <DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">config</SPAN> <SPAN CLASS="par">sizefmt</SPAN>="<SPAN CLASS="val">bytes</SPAN>" --></SPAN>\r
+</PRE>\r
+    </DIV>\r
+    <p>\r
+</DL>\r
+    <H4>\r
+      <A NAME="cookie"></A><U>CookieCommand</U></H4>\r
+<DL>\r
+    <DD>Cookies access from server side includes.</DD>\r
+    <DD>Parameters:</DD>\r
+    <DD><UL>\r
+         <LI><B>get =</B> name of the cookie to get</LI>\r
+         <LI><B>alt =</B> alternative value</LI>\r
+         <LI><B>if =</B> name of the cookie \r
+           (just to test if the cookie exists)</LI>\r
+         <LI><B>then =</B> value</LI>\r
+       </UL>\r
+    <DD>Examples:</DD>\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">cookie</SPAN> <SPAN CLASS="par">get</SPAN>="<SPAN CLASS="val">C1</SPAN>" <SPAN CLASS="par">alt</SPAN>="<SPAN CLASS="val">hello</SPAN>" -->, </SPAN>\r
+display the value of the cookie "C1" or "hello" if the cookie \r
+is not in the incomming request.\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">cookie</SPAN> <SPAN CLASS="par">if</SPAN>="<SPAN CLASS="val">C1</SPAN>" <SPAN CLASS="par">then</SPAN>="<SPAN CLASS="val">hello</SPAN>" <SPAN CLASS="par">alt</SPAN>="<SPAN CLASS="val">bye</SPAN>"-->, </SPAN>\r
+display "hello" if the cookie "C1" is in the request. If not display "bye"\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="count"></A><U>CountCommand</U></H4>\r
+<DL>    <DD>\r
+      This command inserts the number of recorded accesses to this resource,\r
+      as reported by \r
+      <A HREF="../Reference/org.w3c.jigsaw.filters.CounterFilter.html">\r
+       CounterFilter</A>.\r
+    </DD>\r
+    <DD>Parameters: <B>none</B></DD>\r
+    <DD>Example:</DD>\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">hitcount</SPAN> --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="echo"></A><U>EchoCommand</U></H4>\r
+<DL>\r
+    <DD>\r
+      The <B>echo</B> SSI command. As extensions, it has the\r
+      parameters "reqstate" (for echoing <B>Jigsaw</B> request states) \r
+      and "reqheader" (for echoing request header).Also, it can take\r
+      the flag "here", whose presence means that the variable is to be \r
+      interpreted at the deepest request level (in the case of chained \r
+      internal requests), instead of doing so at the top (external\r
+      request) level.  It inserts the value of a variable in the\r
+      document.\r
+    </DD>\r
+    <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>var</B> = a SSI variable</LI>\r
+         <LI><B>reqstate</B> = a Jigsaw request state</LI>\r
+         <LI><B>reqheader</B> = a request header</LI>\r
+         <LI><B>here</B> = a flag</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Examples:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">echo</SPAN> <SPAN CLASS="par">var</SPAN>="<SPAN CLASS="val">DOCUMENT_URI</SPAN>" --></SPAN>\r
+display the document uri\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">echo</SPAN> <SPAN CLASS="par">reqheader</SPAN>="<SPAN CLASS="val">referer</SPAN>"  --></SPAN>\r
+display the referer header of the request\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">echo</SPAN> <SPAN CLASS="par">reqstate</SPAN>="<SPAN CLASS="val">pathinfo</SPAN>"  --></SPAN>\r
+display the request state "pahtinfo"\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="exec"></A><U>ExecCommand</U></H4>\r
+<DL>\r
+    <DD>\r
+      the SSI <B>exec</B> command. It inserts the output from a CGI script or\r
+      a shell command in the document. Note that in the Jigsaw architecture CGI\r
+      scripts are just another resource class, so that no distinction is made\r
+      between executing a CGI script or including a file.\r
+    </DD>\r
+    <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>cmd</B> = the command to execute</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">exec</SPAN> <SPAN CLASS="par">cmd</SPAN>="<SPAN CLASS="val">ls -lsa</SPAN>" --></SPAN>\r
+display the result of the ls command\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="flast"></A><U>FLastModCommand</U></H4>\r
+    <DL>\r
+      <DD>The standard <B>lastmod</B> SSI command.</DD>\r
+      <DD>Parameters: <B>none</B></DD>\r
+      <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">flastmod</SPAN>--></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="fsize"></A><U>FSizeCommand</U></H4>\r
+<DL>    <DD>\r
+      The SSI <B>fsize</B> command. It inserts the size of the unparsed file\r
+      in the document, according to the current value of the variable \r
+      <B>sizefmt</B>.See <A HREF="#config">configCommand</A>.\r
+    </DD>\r
+    <DD>Parameters: <B>none</B></DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">fsize</SPAN> --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="include"></A><U>IncludeCommand</U></H4>\r
+<DL>\r
+    <DD>\r
+      The SSI <B>include</B> command.  (CGI scripts <I>can</I> be \r
+      included, simply by providing a so-called virtual path to a\r
+      resource with a CgiFrame).\r
+    </DD>\r
+    <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>file</B> = the file to include</LI>\r
+         <LI><B>virtual</B> = a virtual path</LI>\r
+         <LI><B>ifheader</B> = a request header</LI>\r
+         <LI><B>else</B> = a file</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Examples:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">include</SPAN> <SPAN CLASS="par">file</SPAN>="<SPAN CLASS="val">included.html</SPAN>" --></SPAN>\r
+include the file "included.html" in the current file\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">include</SPAN> <SPAN CLASS="par">ifheader</SPAN>="<SPAN CLASS="val">Referer</SPAN>" <SPAN CLASS="par">file</SPAN>="<SPAN CLASS="val">included.html</SPAN>" <SPAN CLASS="par">else</SPAN>="<SPAN CLASS="val">included2.html</SPAN>" --></SPAN>\r
+if the request has a Referer header then include "included.html"\r
+else include "included2.html"\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="jdbc"></A><U>jdbcCommand</U></H4>\r
+<DL>\r
+    <DD>\r
+      The SSI <B>jdbc</B> command allows you to query a SQL database via JDBC.\r
+      Combinated with some <A HREF="#controls">Control Commands</A>, it allows\r
+      you to display the content of a database easyly.\r
+    </DD>\r
+    <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>select</B> = the SQL request</LI>\r
+         <LI><B>url</B> = the database URL</LI>\r
+         <LI><B>driver</B> = the JDBC driver class</LI>\r
+         <LI><B>user</B> = the username</LI>\r
+         <LI><B>password</B> = the password</LI>\r
+         <LI><B>name</B> = the result name</LI>\r
+         <LI><B>column</B> = the column number</LI>\r
+         <LI><B>next</B> = a flag</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">select</SPAN>="<SPAN CLASS="val">SELECT * FROM services</SPAN>" <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>"\r
+    <SPAN CLASS="par">driver</SPAN>="<SPAN CLASS="val">com.imaginary.sql.msql.MsqlDriver</SPAN>" \r
+    <SPAN CLASS="par">url</SPAN>="<SPAN CLASS="val">jdbc:msql://www43.inria.fr:4333/services</SPAN>" --></SPAN>\r
+this is the setup of the command.\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>" <SPAN CLASS="par">next</SPAN>="<SPAN CLASS="val">true</SPAN>" --></SPAN>\r
+this command move the pointer to the next line of the result set.\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">1</SPAN>" --></SPAN>\r
+display the first column of the current line.\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">2</SPAN>" --></SPAN>\r
+display the second column of the current line.\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">jdbc</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">3</SPAN>" --></SPAN>\r
+display the third column of the current line.\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="servlet"></A><U>ServletCommand</U></H4>\r
+<DL>    <DD>\r
+      The SSI <B>servlet</B> command. Servlet can be executed simply\r
+      by providing a url path to a servlet class.\r
+    </DD>\r
+    <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>name</B> = the command identifier</LI>\r
+         <LI><B>code</B> = the servlet URL</LI>\r
+         <LI><B>param</B> = a parameter name</LI>\r
+         <LI><B>value</B> = a parameter value</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">\r
+&lt;!--#<SPAN CLASS="cmd">servlet</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">Snoop</SPAN>" <SPAN CLASS="par">param</SPAN>="<SPAN CLASS="val">p1</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">v1</SPAN>" -->\r
+&lt;!--#<SPAN CLASS="cmd">servlet</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">Snoop</SPAN>" <SPAN CLASS="par">param</SPAN>="<SPAN CLASS="val">p2</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">v2</SPAN>" -->\r
+&lt;!--#<SPAN CLASS="cmd">servlet</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">Snoop</SPAN>" <SPAN CLASS="par">param</SPAN>="<SPAN CLASS="val">p3</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">v3</SPAN>" -->\r
+&lt;!--#<SPAN CLASS="cmd">servlet</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">Snoop</SPAN>" <SPAN CLASS="par">code</SPAN>="<SPAN CLASS="val">/servlet/snoop</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H2><A NAME="controls"></A>Control Commands</H2>\r
+    <H4><A NAME="counter"></A><U>CounterCommand</U></H4>\r
+<DL>    <DD>\r
+      The SSI <B>counter</B> command. Used to do things like cpt = cpt\r
+      + 1.\r
+    </DD>\r
+    <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>name</B> = the counter identifier</LI>\r
+         <LI><B>init</B> = the init value</LI>\r
+         <LI><B>incr</B> = the value to add to the counter</LI>\r
+         <LI><B>value</B> = a flag</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">cpt</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">init</SPAN>="<SPAN CLASS="val">0</SPAN>" --></SPAN>\r
+Initialisation: cpt1 = 0\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">cpt</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">incr</SPAN>="<SPAN CLASS="val">1</SPAN>" --></SPAN>\r
+cpt1 = cpt1 + 1\r
+\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">cpt</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">true</SPAN>" --></SPAN>\r
+display the current value of cpt1\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="else"></A><U>ElseCommand</U></H4>\r
+<DL>    <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>name =</B> the <I>if</I> command identifier</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">else</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">if2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="endif"></A><U>EndifCommand</U></H4>\r
+ <DL>   <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>name</B> = the <I>if</I> command identifier</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">endif</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">if2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="endloop"></A><U>EndloopCommand</U></H4>\r
+    <DL>  \r
+      <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>name</B> = the <I>loop</I> command identifier</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">endloop</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="exitloop"></A><U>ExitloopCommand</U></H4>\r
+    <DL>\r
+      <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>name</B> = the <I>loop</I> command identifier</LI>\r
+         <LI><B>command</B> = a command name (jdbs, cpt)</LI>\r
+         <LI><B>var</B> = a command identifier</LI>\r
+         <LI><B>equals</B> = a string value</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">exitloop</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" <SPAN CLASS="par">command</SPAN>="<SPAN CLASS="val">cpt</SPAN>" <SPAN CLASS="par">var</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">equals</SPAN>=<SPAN CLASS="val">"4</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="if"></A><U>IfCommand</U></H4>\r
+<DL>\r
+    <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>name</B> = the command identifier</LI>\r
+         <LI><B>command</B> = a command name (jdbc, cpt)</LI>\r
+         <LI><B>var</B> = a command identifier</LI>\r
+         <LI><B>equals</B> = a string value</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">if</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">if2</SPAN>" <SPAN CLASS="par">command</SPAN>="<SPAN CLASS="val">cpt</SPAN>" <SPAN CLASS="par">var</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">equals</SPAN>="<SPAN CLASS="val">2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H4><A NAME="loop"></A><U>LoopCommand</U></H4>\r
+<DL>\r
+      <DD>Parameters:</DD>\r
+    <DD>\r
+       <UL>\r
+         <LI><B>name</B> = the command identifier</LI>\r
+       </UL>\r
+    </DD>\r
+    <DD>Example:</DD>\r
+<DD><DIV CLASS="box">\r
+<PRE>\r
+<SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd">loop</SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+</DL>\r
+    <H2><A NAME="example"></A>Example</H2>\r
+    The following example, display the four first columns of the three first\r
+    lines of the users database.\r
+<DIV CLASS="box">\r
+<PRE>\r
+      <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">select</SPAN>="<SPAN CLASS="val">SELECT * FROM users</SPAN>"\r
+          <SPAN CLASS="par">user</SPAN>="<SPAN CLASS="val">bmahe</SPAN>" <SPAN CLASS="par">password</SPAN>=""\r
+          <SPAN CLASS="par">url</SPAN>="<SPAN CLASS="val">jdbc:msql://www43.inria.fr:4333/users</SPAN>"\r
+          <SPAN CLASS="par">driver</SPAN>="<SPAN CLASS="val">com.imaginary.sql.msql.MsqlDriver</SPAN>"  --></SPAN>\r
+\r
+      &lt;table border=2>\r
+        <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#counter">cpt</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">init</SPAN>="<SPAN CLASS="val">0</SPAN>" --></SPAN>\r
+          &lt;tr>&lt;td>&lt;b>Name &lt;/td>&lt;td>&lt;b>Login&lt;/td>\r
+              &lt;td>&lt;b>Email&lt;/td>&lt;td>&lt;b>Age  &lt;/td>&lt;/tr>\r
+          <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#loop">loop</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" --></SPAN>\r
+          \r
+          <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">nex</SPAN>t="<SPAN CLASS="val">true</SPAN>" --></SPAN>\r
+          \r
+          &lt;tr>\r
+            &lt;td>\r
+              <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">1</SPAN>" --></SPAN>\r
+            &lt;/td>&lt;td>\r
+              <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">2</SPAN>" --></SPAN>\r
+            &lt;/td>&lt;td>\r
+              <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">column=</SPAN>"<SPAN CLASS="val">3</SPAN>" --></SPAN>\r
+            &lt;/td>&lt;td>\r
+              <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#jdbc">jdbc</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">result2</SPAN>" <SPAN CLASS="par">column</SPAN>="<SPAN CLASS="val">4</SPAN>" --></SPAN>\r
+            &lt;/td>\r
+          &lt;/tr>\r
+          \r
+          <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#counter">cpt</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">incr</SPAN>="<SPAN CLASS="val">1</SPAN>" --></SPAN>\r
+          <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#exitloop">exitloop</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" <SPAN CLASS="par">command</SPAN>="<SPAN CLASS="val">cpt</SPAN>" <SPAN CLASS="par">var</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">equals</SPAN>="<SPAN CLASS="val">3</SPAN>" --></SPAN>\r
+          <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#endloop">endloop</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">loop2</SPAN>" --></SPAN>\r
+          \r
+      &lt;/table>\r
+\r
+      counter value : <SPAN CLASS="ssi">&lt;!--#<SPAN CLASS="cmd"><A CLASS="ssi" HREF="#counter">cpt</A></SPAN> <SPAN CLASS="par">name</SPAN>="<SPAN CLASS="val">cpt1</SPAN>" <SPAN CLASS="par">value</SPAN>="<SPAN CLASS="val">true</SPAN>" --></SPAN>\r
+</PRE>\r
+</DIV>\r
+    <p>\r
+    The result could be:\r
+    <CENTER>\r
+      <TABLE BORDER=2 >\r
+         <TR>\r
+           <TD><B>Name</B></TD>\r
+           <TD><B>Login</B></TD>\r
+           <TD><B>Email</B></TD>\r
+           <TD><B>Age</B></TD>\r
+         </TR>\r
+         <TR>\r
+           <TD>Smith </TD>\r
+           <TD>ssmith </TD>\r
+           <TD>ssmith@example.org </TD>\r
+           <TD>25 </TD>\r
+         </TR>\r
+         <TR>\r
+           <TD>lafrim </TD>\r
+           <TD>ylafrim </TD>\r
+           <TD>lafrim@example.org </TD>\r
+           <TD>25 </TD>\r
+         </TR>\r
+         <TR>\r
+           <TD>Teole </TD>\r
+           <TD>pteole </TD>\r
+           <TD>teole@example.org </TD>\r
+           <TD>27 </TD>\r
+         </TR>\r
+      </TABLE>\r
+    </CENTER>\r
+    <CENTER>counter value : 3</CENTER>\r
+    </div> <!-- body -->\r
+    <div class="footer">\r
+    <HR noshade>\r
+    <a href="mailto:jigsaw@w3.org">Jigsaw Team</a><br>\r
+    <span class="mini">\r
+      $Id: SSI.html,v 1.1 2010/06/15 12:23:02 smhuang Exp $\r
+    </span>\r
+    <p class="policyfooter">\r
+      <font size=-1>\r
+       <a href="/Consortium/Legal/ipr-notice.html#Copyright">Copyright</a>\r
+       &copy; 1999 <a href="http://www.w3.org">W3C</a> \r
+       (<a href="http://www.lcs.mit.edu">MIT</a>, \r
+       <a href="http://www.inria.fr/">INRIA</a>, \r
+       <a href="http://www.keio.ac.jp/">Keio</a> ), \r
+       All Rights Reserved. W3C \r
+       <a href="/Consortium/Legal/ipr-notice.html#Legal Disclaimer">\r
+         liability,\r
+       </a>\r
+       <a href="/Consortium/Legal/ipr-notice.html#W3C Trademarks">\r
+         trademark\r
+       </a>, \r
+       <a href="/Consortium/Legal/copyright-documents.html">\r
+         document use \r
+       </a>\r
+       and\r
+       <a href="/Consortium/Legal/copyright-software.html">\r
+         software licensing\r
+       </a> rules apply. Your interactions with this site are in\r
+       accordance with our \r
+       <a href="/Consortium/Legal/privacy-statement.html#Public">\r
+         public\r
+       </a> and \r
+       <a href="/Consortium/Legal/privacy-statement.html#Members">\r
+         Member\r
+       </a>\r
+       privacy statements.</font>\r
+    </div>\r
+  </BODY>\r
+</HTML>\r