You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by js...@apache.org on 2001/06/05 10:35:50 UTC

cvs commit: jakarta-taglibs/io/doc/web io.html

jstrachan    01/06/05 01:35:50

  Modified:    io/doc/web io.html
  Log:
  Updated documentation
  
  Revision  Changes    Path
  1.5       +808 -797  jakarta-taglibs/io/doc/web/io.html
  
  Index: io.html
  ===================================================================
  RCS file: /home/cvs/jakarta-taglibs/io/doc/web/io.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- io.html	2001/05/10 11:37:44	1.4
  +++ io.html	2001/06/05 08:35:47	1.5
  @@ -1,110 +1,120 @@
   <html>
  +
   <head>
  -        <meta name="author" content="James Strachan">
  -        <title>Jakarta Project: IO Tag Library</title>
  -        <link type="text/css" href="taglib.css" rel="stylesheet">
  -    </head>
  +<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
  +<meta name="author" content="James Strachan">
  +<title>Jakarta Project: IO Tag Library</title>
  +<link type="text/css" href="taglib.css" rel="stylesheet">
  +</head>
  +
   <body>
  -        <h1>Jakarta Project: IO Tag library</h1>
  -        <h3 class="middle">Version: 1.0</h3>
  -        <h3>Table of Contents</h3>
  -        <a href="#overview">Overview</a>
  -        <br>
  -        <a href="#requirements">Requirements</a>
  -        <br>
  -        <a href="#config">Configuration</a>
  -        <br>
  -        <a href="#summary">Tag Summary</a>
  -        <br>
  -        <a href="#reference">Tag Reference</a>
  -        <br>
  -        <a href="#examples">Examples</a>
  -        <br>
  -        <a href="#javadocs">Javadocs</a>
  -        <br>
  -        <a href="#history">Revision History</a>
  -        <br>
  -        <a name="overview"></a>
  -        <h3>Overview</h3>
  -        <p>
  +<h1>Jakarta Project: IO Tag library</h1>
  +<h3 class="middle">Version: 1.0</h3>
  +<h3>Table of Contents</h3>
  +<a href="#overview">Overview</a>
  +<br>
  +<a href="#requirements">Requirements</a>
  +<br>
  +<a href="#config">Configuration</a>
  +<br>
  +<a href="#summary">Tag Summary</a>
  +<br>
  +<a href="#reference">Tag Reference</a>
  +<br>
  +<a href="#examples">Examples</a>
  +<br>
  +<a href="#javadocs">Javadocs</a>
  +<br>
  +<a href="#history">Revision History</a>
  +<br>
  +<a name="overview"></a>
  +<h3>Overview</h3>
  +<p>
   The IO library allows URLs and HTTP requests to be performed using JSP 
   custom tags. This allows JSP to be used to perform HTTP GETs or PUT 
   operations and to make XML-RPC and SOAP requests.
   </p>
  -        <p>Currently the IO library supports any protocols supported by the Java URL 
  +<p>Currently the IO library supports any protocols supported by the Java URL 
   class such as</p>
  -        <ul>
  -  <li>file system</li>
  -  <li>FTP</li>
  -  <li>HTTP</li>
  -  <li>HTTPS</li>
  -  <li>XML-RPC</li>
  -  <li>SOAP</li>
  +<ul>
  +  
  +<li>file system</li>
  +  
  +<li>FTP</li>
  +  
  +<li>HTTP</li>
  +  
  +<li>HTTPS</li>
  +  
  +<li>XML-RPC</li>
  +  
  +<li>SOAP</li>
  +
   </ul>
  -        <p>
  +<p>
   For example if you wanted to include the README from the GNU FTP site in
   your JSP output you could do:-
   </p>
  -        <pre>
  +<pre>
   &lt;io:request url="ftp://ftp.gnu.org/README"/&gt;
   </pre>
  -        <p>
  +<p>
   More likely is you'll want to include the result of a HTTP request. For
   example to include the home page of the Jakarta project in your JSP output
   you could use:-
   </p>
  -        <pre>
  +<pre>
   &lt;io:request url="http://jakarta.apache.org"/&gt;
   </pre>
  -        <p>
  +<p>
   This single tag is surprisingly useful. &lt;jsp:include&gt; is only capable of
   including a servlet that is in your current web application. The
   &lt;io:request&gt; can be used to make 'server side include' style calls to any
   web server anywhere for any resource.
   </p>
  -        <p>
  +<p>
   In the case of HTTP based calls, the default is to perform a HTTP GET. To
   make it easier to do other forms of HTTP requests such as POST and PUT there
   is another tag specialised for HTTP. The previous JSP could be replaced by
   the more verbose:-
   </p>
  -        <pre>
  +<pre>
   &lt;io:http url="http://jakarta.apache.org" action="GET"/&gt;
   </pre>
  -        <p>
  +<p>
   To perform a HTTP POST we need to specify the data to be POSTED to the
   remote server.
   </p>
  -        <pre>
  +<pre>
   &lt;io:http url="something" action="POST"&gt;
     &lt;io:pipe&gt;
       data to be posted....
     &lt;/io:pipe&gt;
   &lt;/io:xmlrpc&gt;
   </pre>
  -        <p>
  +<p>
   Here we use a nested &lt;io:pipe&gt; tag to capture its body content for the data
   to be posted. The IO tags can be "piped" together like unix processes such
   that the data to be posted can be specified using an inner &lt;io:request&gt; tag.
   For example the following example reads a file "foo.txt" and posts it to the
   "bar" web service and displays the result in your JSP output:-
   </p>
  -        <pre>
  +<pre>
   &lt;io:http url="bar" action="POST"&gt;
     &lt;io:request url="file://somewhere/foo.txt"/&gt;
   &lt;/io:xmlrpc&gt;
   </pre>
  -        <p>
  +<p>
   The pipelining of tags will be discussed in more detail below.
   The new wave of Web Services are based on XML and usually use HTTP POST to
   send a request to a web service and a response is returned as XML. Calling
   web services with the IO tags is easy.
   </p>
  -        <p>
  +<p>
   Here's an example of calling an XML-RPC web service using the &lt;io:http&gt;
   tag...
   </p>
  -        <pre>
  +<pre>
   &lt;io:http url="someXmlRpcUrl"&gt;
    &lt;io:header name="Content-Type" value="text/xml"/&gt;
    &lt;io:pipe&gt;
  @@ -119,17 +129,17 @@
    &lt;/io:pipe&gt;
   &lt;/io:http&gt;
   </pre>
  -        <p>
  +<p>
   Notice here that we've added an &lt;io:header&gt; tag to set the content type of
   the posted data to be the XML mime type.
   </p>
  -        <p>
  +<p>
   To make it easier when calling XML-RPC and SOAP based Web Services there are
   2 new tags to wrap up calling XML-RPC and SOAP protocols. They allow more
   brief JSP code hiding some of the HTTP detail of the protocols. For example
   here's the same request again using &lt;io:xmlrpc&gt; tag instead:-
   </p>
  -        <pre>
  +<pre>
   &lt;io:xmlrpc url="someXmlRpcUrl"&gt;
    &lt;io:pipe&gt;
     &lt;methodCall&gt;
  @@ -143,11 +153,11 @@
    &lt;/io:pipe&gt;
   &lt;/io:xmlrpc&gt;
   </pre>
  -        <p>
  +<p>
   And here is a SOAP request using the &lt;io:soap&gt; to request a fortune cookie
   from a SOAP web service on the net:-
   </p>
  -        <pre>
  +<pre>
   &lt;io:soap
       url="http://www.lemurlabs.com/rpcrouter"
       SOAPAction="urn:lemurlabs-Fortune"&gt;
  @@ -162,61 +172,61 @@
    &lt;/io:pipe&gt;
   &lt;/io:soap&gt;
   </pre>
  -        <h4>Pipelining</h4>
  -        <p>
  +<h4>Pipelining</h4>
  +<p>
   You can nest JSP custom tags together so that the output of one tag serves
   as the input to another tag. For example:-
   </p>
  -        <pre>
  +<pre>
   &lt;foo:a&gt;
       &lt;foo:b/&gt;
   &lt;/foo:a&gt;
   </pre>
  -        <p>
  +<p>
   This is quite like the piping that is available on Unix platforms, the
   output of program "b" can be piped into the input of program "a" via the
   command line:-
   </p>
  -        <pre>
  +<pre>
   b | a
   </pre>
  -        <p>
  +<p>
   To be able to process the output of &lt;foo:b&gt; the &lt;foo:a&gt; tag must be a
   BodyTag. A BodyContent object will be created and the content of the &lt;foo:a&gt;
   tag, including the output of the &lt;foo:b&gt; tag, will be written to the
   BodyContent object. This mechanism can cause unwanted double buffering. For
   example consider this pseudo JSP code:-
   </p>
  -        <pre>
  +<pre>
   &lt;foo:searchAndReplace from="Spain" to="London"&gt;
       &lt;file:read filename="Spain.txt"/&gt;
       &lt;file:write filename="London.txt"/&gt;
   &lt;/foo:searchAndReplace&gt;
   </pre>
  -        <p>
  +<p>
   In the above example, all of the Spain.txt file will be read into memory
   into the BodyContent before the &lt;foo:searchAndReplace&gt; tag begins to process
   the file. This is unnecessary double buffering and a bad use of streams.
   Even worse is, if the file is big, you could run out of memory in a heavily
   loaded server.
   </p>
  -        <p>
  +<p>
   The IO tag library currently has a "tag pipelining" proposal integrated into it.
   This proposal is the work of from Pierre Delisle and James Strachan and is 
   intended to avoid this unnecessary double buffering. 
   </p>
  -        <h4>Tag Pipelining Proposal</h4>
  -        <p>
  +<h4>Tag Pipelining Proposal</h4>
  +<p>
   The basic idea is that in the example below, the &lt;file:read&gt; tag should be
   able to pass a Reader object straight into the &lt;foo:searchAndReplace&gt; tag
   for it to use directly and thus avoiding unnecessary double buffering.
   </p>
  -        <pre>
  +<pre>
   &lt;foo:searchAndReplace from="foo" to="bar"&gt;
       &lt;file:read file="foo.txt"/&gt;
   &lt;/foo:searchAndReplace&gt;
   </pre>
  -        <p>
  +<p>
   Not only does this optimise away double buffering, but it allows any inner
   tag produce the Reader object used by the &lt;foo:searchAndReplace&gt; tag. This
   makes the &lt;foo:searchAndReplace&gt; really reusable as it can take any Reader,
  @@ -224,46 +234,46 @@
   It provides a clean separation of responsibility between "transformer" tags
   which process information and creators of Reader and Writer objects.
   </p>
  -        <p>
  +<p>
   How this Reader and Writer passing mechanism should work and what the API
   should look like is still an active area of discussion. A brief overview of
   my current proposal now follows. Please check out taglibs-dev for the latest
   developments ;-)
   </p>
  -        <p>
  +<p>
   A tag which can consume textual input should implement the following
   interface:-
   </p>
  -        <pre>
  +<pre>
       public interface PipeConsumer {
           public void setReader( Reader reader );
       }
   </pre>
  -        <p>
  +<p>
   A tag which can produce textual input should implement the following
   interface:-
   </p>
  -        <pre>
  +<pre>
       public interface PipeProducer {
           public void setWriter( Writer writer );
       }
   </pre>
  -        <p>
  +<p>
   These two interfaces allow "transformer" tags to be written such that their
   Reader and Writer objects can be configured in a flexible variety of ways.
   These "transformer" tags can also be pipelined together in an efficient
   manner similar to the pipelining of Unix processes.
   </p>
  -        <p>
  +<p>
   Examples of transformer tags could be to perform text based search and
   replace, screen scraping, styling of XML or the calling some external web
   service (via HTTP, XML-RPC, SOAP or whatever) and returning the results.
   </p>
  -        <p>
  +<p>
   A possible base class for a transformer tag could look something like the
   following:-
   </p>
  -        <pre>
  +<pre>
   public abstract class TransformerTagSupport
           extends BodyTagSupport
           implements PipeConsumer, PipeProducer {
  @@ -304,13 +314,13 @@
       ) throws JspException;
   }
   </pre>
  -        <p>
  +<p>
   A transformer tag could have its reader and/or writer configured via scriptlet expressions in JSP.
   </p>
  -        <pre>
  +<pre>
   &lt;foo:myTransformer reader="&lt;%= new MyReader() %&gt;" writer="&lt;%= new MyWriter() %&gt;"/&gt;
   </pre>
  -        <p>
  +<p>
   Or the transformer tag could have an inner tag set its Reader or Writer.  
   The inner tag could use the PipeConsumer or PipeProducer interfaces directly it 
   could use 
  @@ -319,29 +329,29 @@
   are used, the Reader from the tags BodyContent is used with the Writer 
   from the current PageContext.
   </p>
  -        <p>
  +<p>
   So the following would work without any direct pipelining:-
   </p>
  -        <pre>
  +<pre>
   &lt;foo:searchAndReplace from="Spain" to="London"&gt;
       The rain in Spain
   &lt;/foo:searchAndReplace&gt;
   </pre>
  -        <p>
  +<p>
   Or inner tags could provide the Reader and Writer:-
   </p>
  -        <pre>
  +<pre>
   &lt;foo:searchAndReplace from="Spain" to="London"&gt;
       &lt;file:read filename="Spain.txt"/&gt;
       &lt;file:write filename="London.txt"/&gt;
   &lt;/foo:searchAndReplace&gt;
   </pre>
  -        <p>
  +<p>
   This pipelining proposal has been implemented in the IO tag library so
   that the IO tags can be pipelined together efficiently and flexibly
   without unnecessary double buffering.
   </p>
  -        <p>
  +<p>
   Sometimes a transformer tag could accept multiple inputs (or outputs). This
   is rare but can happen. Currently there's an &lt;xsl:apply&gt; tag in the XSL tag
   library in the jakarta-taglibs project which does exactly this. To get
  @@ -350,7 +360,7 @@
   be piped into it, but it will use introspection on its outer tag to pass the
   Reader through the pipe. For example:-
   </p>
  -        <pre>
  +<pre>
   &lt;xsl:apply&gt;
       &lt;io:set property="xslReader"&gt;
           &lt;io:request url="someStylesheet.xsl"/&gt;
  @@ -360,10 +370,10 @@
       &lt;/io:set&gt;
   &lt;/xsl:apply&gt;
   </pre>
  -        <p>
  +<p>
   Here's an example of more intense pipelining,
   </p>
  -        <pre>
  +<pre>
   &lt;xsl:apply xsl="someStylesheet.xsl"&gt;
     &lt;io:soap url="someSoapURL" SOAPAction="doSomething"&gt;
       &lt;xsl:apply xsl="xmlRpcToSoap.xsl"&gt;
  @@ -384,7 +394,7 @@
     &lt;/io:soap&gt;
   &lt;/io:xmlrpc&gt;
   </pre>
  -        <p>
  +<p>
   The above example looks like a relatively small block of XML but its
   actually doing quite a lot. Reading from inside-out, its calling an XML-RPC
   service with some XML data then using XSLT to style the result into a SOAP
  @@ -392,21 +402,21 @@
   SOAP request is then styled again using XSLT and output to the users
   browser.
   </p>
  -        <a name="requirements"></a>
  -        <h3>Requirements</h3>
  -        <p>
  +<a name="requirements"></a>
  +<h3>Requirements</h3>
  +<p>
       This custom tag library requires no software other than a servlet container
       that supports the JavaServer Pages Specification, version 1.1 or higher.  
       </p>
  -        <a name="config"></a>
  -        <h3>Configuration</h3>
  -        <p>Follow these steps to configure your web application with this tag library:</p>
  -        <ul>
  -            <li>Copy the tag library descriptor file to the /WEB-INF subdirectory
  +<a name="config"></a>
  +<h3>Configuration</h3>
  +<p>Follow these steps to configure your web application with this tag library:</p>
  +<ul>
  +<li>Copy the tag library descriptor file to the /WEB-INF subdirectory
                    of your web application.</li>
  -            <li>Copy the tag library JAR file to the /WEB-INF/lib subdirectory 
  +<li>Copy the tag library JAR file to the /WEB-INF/lib subdirectory 
                   of your web application.</li>
  -            <li>Add a &lt;taglib&gt; element to your web application deployment
  +<li>Add a &lt;taglib&gt; element to your web application deployment
                   descriptor in /WEB-INF/web.xml like this:
   <pre>
   &lt;taglib&gt;
  @@ -414,695 +424,695 @@
     &lt;taglib-location&gt;/WEB-INF/io.tld&lt;/taglib-location&gt;
   &lt;/taglib&gt;
   </pre>
  -            </li>
  -        </ul>
  -        <p>To use the tags from this library in your JSP pages, add the following
  +</li>
  +</ul>
  +<p>To use the tags from this library in your JSP pages, add the following
           directive at the top of each page: </p>
  -        <pre>
  +<pre>
   &lt;%@ taglib uri="http://jakarta.apache.org/taglibs/io-1.0" prefix="io" %&gt;
   </pre>
  -        <p>where "<i>io</i>" is the tag name prefix you wish to use for tags 
  +<p>where "<i>io</i>" is the tag name prefix you wish to use for tags 
           from this library. You can change this value to any prefix you like.</p>
  -        <a name="summary"></a>
  -        <h3>Tag Summary</h3>
  -        <table summary="summary list of tags with short description of each.">
  -            <tr>
  -                <td><a href="#pipe">pipe</a></td><td>
  +<a name="summary"></a>
  +<h3>Tag Summary</h3>
  +<table summary="summary list of tags with short description of each.">
  +<tr>
  +<td><a href="#pipe">pipe</a></td><td>
             Acts like a Unix pipe between tags that are not capable of piping themselves.
             A pipe can take some input or some output or both. 
             If no input is specified then its body content is used. 
             If no output is specified then the current output is used.
           </td>
  -            </tr>
  -            <tr>
  -                <td><a href="#set">set</a></td><td>
  +</tr>
  +<tr>
  +<td><a href="#set">set</a></td><td>
             Sets the property on its parent tag. 
             Either the body of this tag is used as the value or a PipeConsumer 
             can be included in my body.
           </td>
  -            </tr>
  -            <tr>
  -                <td><a href="#get">get</a></td><td>
  +</tr>
  +<tr>
  +<td><a href="#get">get</a></td><td>
             Returns the bean or bean property and pipes it into its parent PipeConsumer tag.
           </td>
  -            </tr>
  -            <tr>
  -                <td><a href="#request">request</a></td><td>
  +</tr>
  +<tr>
  +<td><a href="#request">request</a></td><td>
             Requests the content of the given URL.
           </td>
  -            </tr>
  -            <tr>
  -                <td><a href="#http">http</a></td><td>
  +</tr>
  +<tr>
  +<td><a href="#http">http</a></td><td>
             Performs a HTTP request on the given URL with the specified action and optional body.
             If no action is specified then it defaults to "GET".
           </td>
  -            </tr>
  -            <tr>
  -                <td><a href="#header">header</a></td><td>
  +</tr>
  +<tr>
  +<td><a href="#header">header</a></td><td>
             Defines a URL / HTTP header for the current request tag.
             The value of the header can be specified as an attribute 
             otherwise the value of the tags body is taken instead.
           </td>
  -            </tr>
  -            <tr>
  -                <td><a href="#param">param</a></td><td>
  +</tr>
  +<tr>
  +<td><a href="#param">param</a></td><td>
             Defines a query argument for the URL of the current request.
             The value of the parameter can be specified as an attribute 
             otherwise the value of the tags body is taken instead.
           </td>
  -            </tr>
  -            <tr>
  -                <td><a href="#soap">soap</a></td><td>
  +</tr>
  +<tr>
  +<td><a href="#soap">soap</a></td><td>
             Performs a HTTP SOAP request on the given URL, SOAPAction and body.
           </td>
  -            </tr>
  -            <tr>
  -                <td><a href="#xmlrpc">xmlrpc</a></td><td>
  +</tr>
  +<tr>
  +<td><a href="#xmlrpc">xmlrpc</a></td><td>
             Performs an XML RPC request on the given URL.
           </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">&nbsp;</td>
  -            </tr>
  -        </table>
  -        <a name="reference"></a>
  -        <h3>Tag Reference</h3>
  -        <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  -            <tr>
  -                <td colspan="2">
  -                    <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  -                        <tr>
  -                            <td><b><font size="+1"><a name="pipe">pipe</a></font></b></td><td align="right">Availability: version 1.0</td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">
  +</tr>
  +<tr>
  +<td colspan="2">&nbsp;</td>
  +</tr>
  +</table>
  +<a name="reference"></a>
  +<h3>Tag Reference</h3>
  +<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  +<tr>
  +<td colspan="2">
  +<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  +<tr>
  +<td><b><font size="+1"><a name="pipe">pipe</a></font></b></td><td align="right">Availability: version 1.0</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td colspan="2">
             Acts like a Unix pipe between tags that are not capable of piping themselves.
             A pipe can take some input or some output or both. 
             If no input is specified then its body content is used. 
             If no output is specified then the current output is used.
           </td>
  -            </tr>
  -            <tr>
  -                <td width="2%">&nbsp;</td><td width="98%">
  -                    <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  -                        <tr>
  -                            <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.PipeTag</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%">&nbsp;</td><td width="80%">
  -                                <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  -                                    <tr>
  -                                        <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>reader</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>writer</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                </table>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  -                                <ol>
  -                                    <li>
  -                                        <span class="comment">&lt;%--
  +</tr>
  +<tr>
  +<td width="2%">&nbsp;</td><td width="98%">
  +<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  +<tr>
  +<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.PipeTag</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  +</tr>
  +<tr>
  +<td width="20%">&nbsp;</td><td width="80%">
  +<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  +<tr>
  +<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>reader</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>writer</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  +<ol>
  +<li>
  +<span class="comment">&lt;%--
               --%&gt;</span>
  -                                        <br>
  -                                        <p>
  -                                            <pre>
  -                                                <code>
  +<br>
  +<p>
  +<pre>
  +<code>
   &lt;io:pipe input="&lt;%= request.getReader() %&gt;"/&gt;
   </code>
  -                                            </pre>
  -                                        </p>
  -                                    </li>
  -                                </ol>
  -                            </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -        </table>
  -        <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  -            <tr>
  -                <td colspan="2">
  -                    <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  -                        <tr>
  -                            <td><b><font size="+1"><a name="set">set</a></font></b></td><td align="right">Availability: version 1.0</td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">
  +</pre>
  +</p>
  +</li>
  +</ol>
  +</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  +<tr>
  +<td colspan="2">
  +<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  +<tr>
  +<td><b><font size="+1"><a name="set">set</a></font></b></td><td align="right">Availability: version 1.0</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td colspan="2">
             Sets the property on its parent tag. 
             Either the body of this tag is used as the value or a PipeConsumer 
             can be included in my body.
           </td>
  -            </tr>
  -            <tr>
  -                <td width="2%">&nbsp;</td><td width="98%">
  -                    <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  -                        <tr>
  -                            <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.SetTag</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%">&nbsp;</td><td width="80%">
  -                                <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  -                                    <tr>
  -                                        <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>property</b></td><td width="20%">true</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>reader</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                </table>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  -                                <ol>
  -                                    <li>
  -                                        <span class="comment">&lt;%--
  +</tr>
  +<tr>
  +<td width="2%">&nbsp;</td><td width="98%">
  +<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  +<tr>
  +<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.SetTag</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  +</tr>
  +<tr>
  +<td width="20%">&nbsp;</td><td width="80%">
  +<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  +<tr>
  +<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>property</b></td><td width="20%">true</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>reader</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  +<ol>
  +<li>
  +<span class="comment">&lt;%--
               --%&gt;</span>
  -                                        <br>
  -                                        <p>
  -                                            <pre>
  -                                                <code>
  +<br>
  +<p>
  +<pre>
  +<code>
   &lt;io:set name="url"&gt;some text with mixed tags &amp; expressions&lt;/io:set&gt;
   </code>
  -                                            </pre>
  -                                        </p>
  -                                    </li>
  -                                </ol>
  -                            </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -        </table>
  -        <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  -            <tr>
  -                <td colspan="2">
  -                    <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  -                        <tr>
  -                            <td><b><font size="+1"><a name="get">get</a></font></b></td><td align="right">Availability: version 1.0</td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">
  +</pre>
  +</p>
  +</li>
  +</ol>
  +</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  +<tr>
  +<td colspan="2">
  +<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  +<tr>
  +<td><b><font size="+1"><a name="get">get</a></font></b></td><td align="right">Availability: version 1.0</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td colspan="2">
             Returns the bean or bean property and pipes it into its parent PipeConsumer tag.
           </td>
  -            </tr>
  -            <tr>
  -                <td width="2%">&nbsp;</td><td width="98%">
  -                    <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  -                        <tr>
  -                            <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.GetTag</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%">&nbsp;</td><td width="80%">
  -                                <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  -                                    <tr>
  -                                        <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>property</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                </table>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  -                                <ol>
  -                                    <li>
  -                                        <span class="comment">&lt;%--
  +</tr>
  +<tr>
  +<td width="2%">&nbsp;</td><td width="98%">
  +<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  +<tr>
  +<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.GetTag</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%"></td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  +</tr>
  +<tr>
  +<td width="20%">&nbsp;</td><td width="80%">
  +<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  +<tr>
  +<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>property</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  +<ol>
  +<li>
  +<span class="comment">&lt;%--
               --%&gt;</span>
  -                                        <br>
  -                                        <p>
  -                                            <pre>
  -                                                <code>
  +<br>
  +<p>
  +<pre>
  +<code>
   &lt;io:get name="something" property"bar"/&gt;
   </code>
  -                                            </pre>
  -                                        </p>
  -                                    </li>
  -                                </ol>
  -                            </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -        </table>
  -        <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  -            <tr>
  -                <td colspan="2">
  -                    <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  -                        <tr>
  -                            <td><b><font size="+1"><a name="request">request</a></font></b></td><td align="right">Availability: version 1.0</td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">
  +</pre>
  +</p>
  +</li>
  +</ol>
  +</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  +<tr>
  +<td colspan="2">
  +<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  +<tr>
  +<td><b><font size="+1"><a name="request">request</a></font></b></td><td align="right">Availability: version 1.0</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td colspan="2">
             Requests the content of the given URL.
           </td>
  -            </tr>
  -            <tr>
  -                <td width="2%">&nbsp;</td><td width="98%">
  -                    <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  -                        <tr>
  -                            <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLTag</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%"></td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%">&nbsp;</td><td width="80%">
  -                                <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  -                                    <tr>
  -                                        <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>output</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>input</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                </table>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  -                                <ol>
  -                                    <li>
  -                                        <span class="comment">&lt;%--
  +</tr>
  +<tr>
  +<td width="2%">&nbsp;</td><td width="98%">
  +<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  +<tr>
  +<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLTag</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%"></td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  +</tr>
  +<tr>
  +<td width="20%">&nbsp;</td><td width="80%">
  +<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  +<tr>
  +<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>output</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>input</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  +<ol>
  +<li>
  +<span class="comment">&lt;%--
               --%&gt;</span>
  -                                        <br>
  -                                        <p>
  -                                            <pre>
  -                                                <code>
  +<br>
  +<p>
  +<pre>
  +<code>
   &lt;io:url url="/WEB-INF/foo.xml"/&gt;
   </code>
  -                                            </pre>
  -                                        </p>
  -                                    </li>
  -                                </ol>
  -                            </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -        </table>
  -        <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  -            <tr>
  -                <td colspan="2">
  -                    <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  -                        <tr>
  -                            <td><b><font size="+1"><a name="http">http</a></font></b></td><td align="right">Availability: version 1.0</td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">
  +</pre>
  +</p>
  +</li>
  +</ol>
  +</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  +<tr>
  +<td colspan="2">
  +<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  +<tr>
  +<td><b><font size="+1"><a name="http">http</a></font></b></td><td align="right">Availability: version 1.0</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td colspan="2">
             Performs a HTTP request on the given URL with the specified action and optional body.
             If no action is specified then it defaults to "GET".
           </td>
  -            </tr>
  -            <tr>
  -                <td width="2%">&nbsp;</td><td width="98%">
  -                    <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  -                        <tr>
  -                            <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.HttpTag</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%">&nbsp;</td><td width="80%">
  -                                <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  -                                    <tr>
  -                                        <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>action</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                </table>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  -                                <ol>
  -                                    <li>
  -                                        <span class="comment">&lt;%--
  +</tr>
  +<tr>
  +<td width="2%">&nbsp;</td><td width="98%">
  +<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  +<tr>
  +<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.HttpTag</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  +</tr>
  +<tr>
  +<td width="20%">&nbsp;</td><td width="80%">
  +<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  +<tr>
  +<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>action</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  +<ol>
  +<li>
  +<span class="comment">&lt;%--
               --%&gt;</span>
  -                                        <br>
  -                                        <p>
  -                                            <pre>
  -                                                <code>
  +<br>
  +<p>
  +<pre>
  +<code>
   &lt;io:http url="http://jakarta.apache.org" action="GET"/&gt;
   </code>
  -                                            </pre>
  -                                        </p>
  -                                    </li>
  -                                </ol>
  -                            </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -        </table>
  -        <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  -            <tr>
  -                <td colspan="2">
  -                    <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  -                        <tr>
  -                            <td><b><font size="+1"><a name="header">header</a></font></b></td><td align="right">Availability: version 1.0</td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">
  +</pre>
  +</p>
  +</li>
  +</ol>
  +</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  +<tr>
  +<td colspan="2">
  +<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  +<tr>
  +<td><b><font size="+1"><a name="header">header</a></font></b></td><td align="right">Availability: version 1.0</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td colspan="2">
             Defines a URL / HTTP header for the current request tag.
             The value of the header can be specified as an attribute 
             otherwise the value of the tags body is taken instead.
           </td>
  -            </tr>
  -            <tr>
  -                <td width="2%">&nbsp;</td><td width="98%">
  -                    <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  -                        <tr>
  -                            <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLHeaderTag</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%">&nbsp;</td><td width="80%">
  -                                <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  -                                    <tr>
  -                                        <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>value</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                </table>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  -                                <ol>
  -                                    <li>
  -                                        <span class="comment">&lt;%--
  +</tr>
  +<tr>
  +<td width="2%">&nbsp;</td><td width="98%">
  +<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  +<tr>
  +<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLHeaderTag</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  +</tr>
  +<tr>
  +<td width="20%">&nbsp;</td><td width="80%">
  +<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  +<tr>
  +<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>value</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  +<ol>
  +<li>
  +<span class="comment">&lt;%--
               --%&gt;</span>
  -                                        <br>
  -                                        <p>
  -                                            <pre>
  -                                                <code>
  +<br>
  +<p>
  +<pre>
  +<code>
   &lt;io:http url="http://jakarta.apache.org" action="GET"/&gt;
     &lt;io:header name="Content-Type" value="text/xml"/&gt;
   &lt;/io:http&gt;
   </code>
  -                                            </pre>
  -                                        </p>
  -                                    </li>
  -                                </ol>
  -                            </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -        </table>
  -        <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  -            <tr>
  -                <td colspan="2">
  -                    <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  -                        <tr>
  -                            <td><b><font size="+1"><a name="param">param</a></font></b></td><td align="right">Availability: version 1.0</td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">
  +</pre>
  +</p>
  +</li>
  +</ol>
  +</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  +<tr>
  +<td colspan="2">
  +<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  +<tr>
  +<td><b><font size="+1"><a name="param">param</a></font></b></td><td align="right">Availability: version 1.0</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td colspan="2">
             Defines a query argument for the URL of the current request.
             The value of the parameter can be specified as an attribute 
             otherwise the value of the tags body is taken instead.
           </td>
  -            </tr>
  -            <tr>
  -                <td width="2%">&nbsp;</td><td width="98%">
  -                    <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  -                        <tr>
  -                            <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLParameterTag</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">Must be specified before any &lt;http:header&gt; or &lt;http:body&gt; tags</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%">&nbsp;</td><td width="80%">
  -                                <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  -                                    <tr>
  -                                        <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>value</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                </table>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  -                                <ol>
  -                                    <li>
  -                                        <span class="comment">&lt;%--
  +</tr>
  +<tr>
  +<td width="2%">&nbsp;</td><td width="98%">
  +<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  +<tr>
  +<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.URLParameterTag</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">Must be specified before any &lt;http:header&gt; or &lt;http:body&gt; tags</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  +</tr>
  +<tr>
  +<td width="20%">&nbsp;</td><td width="80%">
  +<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  +<tr>
  +<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>name</b></td><td width="20%">true</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>value</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  +<ol>
  +<li>
  +<span class="comment">&lt;%--
               --%&gt;</span>
  -                                        <br>
  -                                        <p>
  -                                            <pre>
  -                                                <code>
  +<br>
  +<p>
  +<pre>
  +<code>
   &lt;io:http url="http://jakarta.apache.org" action="GET"/&gt;
     &lt;io:header name="Content-Type" value="text/xml"/&gt;
   &lt;/io:http&gt;
   </code>
  -                                            </pre>
  -                                        </p>
  -                                    </li>
  -                                </ol>
  -                            </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -        </table>
  -        <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  -            <tr>
  -                <td colspan="2">
  -                    <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  -                        <tr>
  -                            <td><b><font size="+1"><a name="soap">soap</a></font></b></td><td align="right">Availability: version 1.0</td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">
  +</pre>
  +</p>
  +</li>
  +</ol>
  +</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  +<tr>
  +<td colspan="2">
  +<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  +<tr>
  +<td><b><font size="+1"><a name="soap">soap</a></font></b></td><td align="right">Availability: version 1.0</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td colspan="2">
             Performs a HTTP SOAP request on the given URL, SOAPAction and body.
           </td>
  -            </tr>
  -            <tr>
  -                <td width="2%">&nbsp;</td><td width="98%">
  -                    <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  -                        <tr>
  -                            <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.HttpSoapTag</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%">&nbsp;</td><td width="80%">
  -                                <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  -                                    <tr>
  -                                        <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>SOAPAction</b></td><td width="20%">true</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                </table>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  -                                <ol>
  -                                    <li>
  -                                        <span class="comment">&lt;%--
  +</tr>
  +<tr>
  +<td width="2%">&nbsp;</td><td width="98%">
  +<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  +<tr>
  +<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.HttpSoapTag</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  +</tr>
  +<tr>
  +<td width="20%">&nbsp;</td><td width="80%">
  +<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  +<tr>
  +<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>SOAPAction</b></td><td width="20%">true</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  +<ol>
  +<li>
  +<span class="comment">&lt;%--
               --%&gt;</span>
  -                                        <br>
  -                                        <p>
  -                                            <pre>
  -                                                <code>
  +<br>
  +<p>
  +<pre>
  +<code>
   &lt;io:soap 
       url="http://services.xmethods.net:80/perl/soaplite.cgi" 
       SOAPAction="urn:xmethodsBabelFish#BabelFish"&gt;
  @@ -1120,80 +1130,80 @@
    &lt;/io:body&gt;
   &lt;/io:soap&gt;
   </code>
  -                                            </pre>
  -                                        </p>
  -                                    </li>
  -                                </ol>
  -                            </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -        </table>
  -        <table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  -            <tr>
  -                <td colspan="2">
  -                    <table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  -                        <tr>
  -                            <td><b><font size="+1"><a name="xmlrpc">xmlrpc</a></font></b></td><td align="right">Availability: version 1.0</td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -            <tr>
  -                <td colspan="2">
  +</pre>
  +</p>
  +</li>
  +</ol>
  +</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +<table summary="This table is for visual formatting of tag reference information." cellspacing="0" cellpadding="3" width="90%" border="0">
  +<tr>
  +<td colspan="2">
  +<table summary="name and tag library version availability of tag." cellspacing="0" width="100%" bgcolor="#cccccc" border="0">
  +<tr>
  +<td><b><font size="+1"><a name="xmlrpc">xmlrpc</a></font></b></td><td align="right">Availability: version 1.0</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td colspan="2">
             Performs an XML RPC request on the given URL.
           </td>
  -            </tr>
  -            <tr>
  -                <td width="2%">&nbsp;</td><td width="98%">
  -                    <table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  -                        <tr>
  -                            <td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.XmlRpcTag</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  -                        </tr>
  -                        <tr>
  -                            <td width="20%">&nbsp;</td><td width="80%">
  -                                <table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  -                                    <tr>
  -                                        <td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                    <tr bgcolor="#cccccc">
  -                                        <td width="40%"><b>userAgent</b></td><td width="20%">false</td><td width="40%">true</td>
  -                                    </tr>
  -                                    <tr>
  -                                        <td colspan="3"></td>
  -                                    </tr>
  -                                </table>
  -                            </td>
  -                        </tr>
  -                        <tr>
  -                            <td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  -                                <ol>
  -                                    <li>
  -                                        <span class="comment">&lt;%--
  +</tr>
  +<tr>
  +<td width="2%">&nbsp;</td><td width="98%">
  +<table summary="Tag class, tag name, script variable (if any), and restrictions (if any)." width="100%" border="0">
  +<tr>
  +<td width="20%"><span class="tclass">Tag Class</span></td><td width="80%">org.apache.taglibs.io.XmlRpcTag</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="tbody">Tag Body</span></td><td width="80%">JSP</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="scriptvar">Script Variable</span></td><td width="80%">No</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="restrictions">Restrictions</span></td><td width="80%">None</td>
  +</tr>
  +<tr>
  +<td width="20%"><span class="attributes">Attributes</span></td><td width="80%">&nbsp;</td>
  +</tr>
  +<tr>
  +<td width="20%">&nbsp;</td><td width="80%">
  +<table summary="Tag attribute name, whether required, and whether rtexprvalue allowed." width="100%" border="0">
  +<tr>
  +<td width="40%">Name</td><td width="20%">Required</td><td width="40%">Runtime Expression Evaluation</td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>url</b></td><td width="20%">true</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +<tr bgcolor="#cccccc">
  +<td width="40%"><b>userAgent</b></td><td width="20%">false</td><td width="40%">true</td>
  +</tr>
  +<tr>
  +<td colspan="3"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +<tr>
  +<td valign="top" width="20%"><span class="example">Example</span></td><td width="80%">
  +<ol>
  +<li>
  +<span class="comment">&lt;%--
               --%&gt;</span>
  -                                        <br>
  -                                        <p>
  -                                            <pre>
  -                                                <code>
  +<br>
  +<p>
  +<pre>
  +<code>
   &lt;io:xmlrpc url="/RPC2"&gt;
    &lt;io:body&gt;
     &lt;?xml version="1.0"?&gt;
  @@ -1208,30 +1218,31 @@
    &lt;/io:body&gt;
   &lt;/io:xmlrpc&gt;
   </code>
  -                                            </pre>
  -                                        </p>
  -                                    </li>
  -                                </ol>
  -                            </td>
  -                        </tr>
  -                    </table>
  -                </td>
  -            </tr>
  -        </table>
  -        <a name="examples">
  -            <h3>Examples</h3>
  -        </a>
  -        <p>See the example application io-examples.war for examples of the usage
  +</pre>
  +</p>
  +</li>
  +</ol>
  +</td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +<a name="examples">
  +<h3>Examples</h3>
  +</a>
  +<p>See the example application io-examples.war for examples of the usage
           of the tags from this custom tag library.</p>
  -        <a name="javadocs">
  -            <h3>Java Docs</h3>
  -        </a>
  -        <p>Java programmers can view the java class documentation for this tag library
  +<a name="javadocs">
  +<h3>Java Docs</h3>
  +</a>
  +<p>Java programmers can view the java class documentation for this tag library
           as <a href="javadoc/index.html">javadocs</a>.</p>
  -        <a name="history">
  -            <h3>Revision History</h3>
  -        </a>
  -        <p>Review the complete <a href="changes.html">revision history</a> of this tag
  +<a name="history">
  +<h3>Revision History</h3>
  +</a>
  +<p>Review the complete <a href="changes.html">revision history</a> of this tag
          library.</p>
  -    </body>
  +</body>
  +
   </html>