<HTML><HEAD><TITLE>Xalan-C++ API Documentation</TITLE></HEAD> <BODY> <h2 align="center">Xalan-C++ API Documentation</h2> <h3 align="center">The Xalan C++ XSL Transformer Version 1.1</h3> </BODY> <!-- Generated by Doxygen 1.2.0 on Thu Feb 15 10:47:56 2001 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center> <hr><h1>ExtensionFunctionHandler Class Reference</h1>Class handling an extension namespace for <a class="el" href="class_xpath.html">XPath</a>. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="ExtensionFunctionHandler.hpp-source.html">ExtensionFunctionHandler.hpp</a>></code> <p> Inheritance diagram for ExtensionFunctionHandler<p><center><img src="class_extensionfunctionhandler_inherit_graph.gif" border="0" usemap="#ExtensionFunctionHandler_inherit_map" alt="Inheritance graph"></center> <map name="ExtensionFunctionHandler_inherit_map"> <area href="class_extensionnshandler.html" shape="rect" coords="16,66,141,85"> </map><p> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for ExtensionFunctionHandler:<p><center><img src="class_extensionfunctionhandler_coll_graph.gif" border="0" usemap="#ExtensionFunctionHandler_coll_map" alt="Collaboration graph"></center> <map name="ExtensionFunctionHandler_coll_map"> <area href="class_xalandomstring.html" shape="rect" coords="24,0,133,18"> </map><p> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_extensionfunctionhandler-members.html">List of all members.</a><h2>Public Types</h2> <ul> <li>typedef std::vector<void*> <a class="el" href="class_extensionfunctionhandler.html#s0">ArgVectorType</a> <dl class="el"><dd><font size=-1><em>Vector of pointers to function arguments.<br><br></em></font></dl><li>typedef std::set<<a class="el" href="class_xalandomstring.html">XalanDOMString</a>> <a class="el" href="class_extensionfunctionhandler.html#s1">StringSetType</a> </ul> <h2>Public Methods</h2> <ul> <li><a class="el" href="class_extensionfunctionhandler.html#a0">ExtensionFunctionHandler</a> (const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& namespaceUri) <dl class="el"><dd><font size=-1><em>Construct a new extension namespace handler for a given extension NS.</em> <a href="#a0">More...</a><em><br><br></em></font></dl><li><a class="el" href="class_extensionfunctionhandler.html#a1">ExtensionFunctionHandler</a> ( const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& namespaceUri, const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& funcNames, const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& lang, const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& srcURL, const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& scriptSrc) <dl class="el"><dd><font size=-1><em>Construct a new extension namespace handler given all the information needed.</em> <a href="#a1">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="class_extensionfunctionhandler.html#a2">~ExtensionFunctionHandler</a> () <li>virtual void <a class="el" href="class_extensionfunctionhandler.html#a3">setFunctions</a> (const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& funcNames) <dl class="el"><dd><font size=-1><em>Set function local parts of extension NS.</em> <a href="#a3">More...</a><em><br><br></em></font></dl><li>virtual void <a class="el" href="class_extensionfunctionhandler.html#a4">setScript</a> ( const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& lang, const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& srcURL, const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& scriptSrc) <dl class="el"><dd><font size=-1><em>Set the script data for this extension NS.</em> <a href="#a4">More...</a><em><br><br></em></font></dl><li>virtual bool <a class="el" href="class_extensionfunctionhandler.html#a5">isFunctionAvailable</a> (const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& function) const <dl class="el"><dd><font size=-1><em>Tests whether a certain function name is known within this namespace.</em> <a href="#a5">More...</a><em><br><br></em></font></dl><li>virtual <a class="el" href="class_xobjectptr.html">XObjectPtr</a> <a class="el" href="class_extensionfunctionhandler.html#a6">callFunction</a> ( const <a class="el" href="class_xalandomstring.html">XalanDOMString</a>& funcName, const <a class="el" href="class_extensionfunctionhandler.html#s0">ArgVectorType</a>& args) <dl class="el"><dd><font size=-1><em>Process a call to a function.</em> <a href="#a6">More...</a><em><br><br></em></font></dl></ul> <h2>Protected Methods</h2> <ul> <li>virtual void <a class="el" href="class_extensionfunctionhandler.html#b0">startupComponent</a> () <dl class="el"><dd><font size=-1><em>Start the component up by executing any script that needs to run at startup time.</em> <a href="#b0">More...</a><em><br><br></em></font></dl></ul> <h2>Protected Attributes</h2> <ul> <li><a class="el" href="class_xalandomstring.html">XalanDOMString</a> <a class="el" href="class_extensionfunctionhandler.html#n0">m_namespaceUri</a> <li><a class="el" href="class_xalandomstring.html">XalanDOMString</a> <a class="el" href="class_extensionfunctionhandler.html#n1">m_scriptLang</a> <li><a class="el" href="class_xalandomstring.html">XalanDOMString</a> <a class="el" href="class_extensionfunctionhandler.html#n2">m_scriptSrc</a> <li><a class="el" href="class_xalandomstring.html">XalanDOMString</a> <a class="el" href="class_extensionfunctionhandler.html#n3">m_scriptSrcURL</a> <li>void* <a class="el" href="class_extensionfunctionhandler.html#n4">m_javaObject</a> <li><a class="el" href="class_extensionfunctionhandler.html#s1">StringSetType</a> <a class="el" href="class_extensionfunctionhandler.html#n5">m_functions</a> <li>bool <a class="el" href="class_extensionfunctionhandler.html#n6">m_componentStarted</a> </ul> <h2>Static Protected Attributes</h2> <ul> <li>const <a class="el" href="XalanDOMString.hpp.html#a1">XalanDOMChar</a> <a class="el" href="class_extensionfunctionhandler.html#q0">s_tokenDelimiterCharacters</a> [] </ul> <hr><a name="_details"></a><h2>Detailed Description</h2> Class handling an extension namespace for <a class="el" href="class_xpath.html">XPath</a>. <p> Provides functions to test a function's existence and call a function <p> <dl compact><dt> <b>Author(s): </b><dd> Sanjiva Weerawarana (<a href="mailto:sanjiva@watson.ibm.com">sanjiva@watson.ibm.com</a>) </dl> <p> <hr><h2>Member Typedef Documentation</h2> <a name="s0" doxytag="ExtensionFunctionHandler::ArgVectorType"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> typedef std::vector<void*> ExtensionFunctionHandler::ArgVectorType </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Vector of pointers to function arguments. <p> </td> </tr> </table> <a name="s1" doxytag="ExtensionFunctionHandler::StringSetType"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> typedef std::set<<a class="el" href="class_xalandomstring.html">XalanDOMString</a>> ExtensionFunctionHandler::StringSetType </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Constructor & Destructor Documentation</h2> <a name="a0" doxytag="ExtensionFunctionHandler::ExtensionFunctionHandler"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> ExtensionFunctionHandler::ExtensionFunctionHandler ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>namespaceUri</em> ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Construct a new extension namespace handler for a given extension NS. <p> This doesn't do anything - just hang on to the namespace URI.<dl compact><dt> <b>Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>namespaceUri</em> </td><td> the extension namespace URI that I'm implementing </td></tr> </table> </dl> </td> </tr> </table> <a name="a1" doxytag="ExtensionFunctionHandler::ExtensionFunctionHandler"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> ExtensionFunctionHandler::ExtensionFunctionHandler ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>namespaceUri</em>, </b></td> </tr> <tr> <td></td> <td><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>funcNames</em>, </b></td> </tr> <tr> <td></td> <td><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>lang</em>, </b></td> </tr> <tr> <td></td> <td><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>srcURL</em>, </b></td> </tr> <tr> <td></td> <td><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>scriptSrc</em> ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Construct a new extension namespace handler given all the information needed. <p> <dl compact><dt> <b>Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>namespaceUri</em> </td><td> the extension namespace URI that I'm implementing </td></tr> <tr><td valign=top><em>funcNames</em> </td><td> string containing list of functions of extension NS </td></tr> <tr><td valign=top><em>lang</em> </td><td> language of code implementing the extension </td></tr> <tr><td valign=top><em>srcURL</em> </td><td> value of src attribute (if any) - treated as a URL or a classname depending on the value of lang. If srcURL is not null, then scriptSrc is ignored. </td></tr> <tr><td valign=top><em>scriptSrc</em> </td><td> the actual script code (if any) </td></tr> </table> </dl> </td> </tr> </table> <a name="a2" doxytag="ExtensionFunctionHandler::~ExtensionFunctionHandler"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> virtual ExtensionFunctionHandler::~ExtensionFunctionHandler ( </b></td> <td valign="bottom"><b> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Member Function Documentation</h2> <a name="a6" doxytag="ExtensionFunctionHandler::callFunction"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> <a class="el" href="class_xobjectptr.html">XObjectPtr</a> ExtensionFunctionHandler::callFunction ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>funcName</em>, </b></td> </tr> <tr> <td></td> <td><b> const <a class="el" href="class_extensionfunctionhandler.html#s0">ArgVectorType</a> & <em>args</em> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Process a call to a function. <p> <dl compact><dt> <b>Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>funcName</em> </td><td> <a class="el" href="class_function.html">Function</a> name. </td></tr> <tr><td valign=top><em>args</em> </td><td> The arguments of the function call. <p> </td></tr> </table> </dl><dl compact><dt> <b>Returns: </b><dd> the return value of the function evaluation.</dl><dl compact><dt> <b>Exceptions: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>XSLProcessorException</em> </td><td> thrown if something goes wrong while running the extension handler. </td></tr> <tr><td valign=top><em>MalformedURLException</em> </td><td> if loading trouble </td></tr> <tr><td valign=top><em>FileNotFoundException</em> </td><td> if loading trouble </td></tr> <tr><td valign=top><em>IOException</em> </td><td> if loading trouble </td></tr> <tr><td valign=top><em>SAXException</em> </td><td> if parsing trouble </td></tr> </table> </dl> </td> </tr> </table> <a name="a5" doxytag="ExtensionFunctionHandler::isFunctionAvailable"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> bool ExtensionFunctionHandler::isFunctionAvailable ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>function</em> ) const<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Tests whether a certain function name is known within this namespace. <p> <dl compact><dt> <b>Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>function</em> </td><td> name of the function being tested </td></tr> </table> </dl><dl compact><dt> <b>Returns: </b><dd> true if its known, false if not. </dl> </td> </tr> </table> <a name="a3" doxytag="ExtensionFunctionHandler::setFunctions"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void ExtensionFunctionHandler::setFunctions ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>funcNames</em> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set function local parts of extension NS. <p> <dl compact><dt> <b>Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>functions</em> </td><td> whitespace separated list of function names defined by this extension namespace. </td></tr> </table> </dl> <p> Reimplemented in <a class="el" href="class_extensionnshandler.html#a2">ExtensionNSHandler</a>. </td> </tr> </table> <a name="a4" doxytag="ExtensionFunctionHandler::setScript"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void ExtensionFunctionHandler::setScript ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>lang</em>, </b></td> </tr> <tr> <td></td> <td><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>srcURL</em>, </b></td> </tr> <tr> <td></td> <td><b> const <a class="el" href="class_xalandomstring.html">XalanDOMString</a> & <em>scriptSrc</em> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Set the script data for this extension NS. <p> If srcURL is !null then the script body is read from that URL. If not the scriptSrc is used as the src. This method does not actually execute anything - that's done when the component is first hit by the user by an element or a function call.<dl compact><dt> <b>Parameters: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>lang</em> </td><td> language of the script. </td></tr> <tr><td valign=top><em>srcURL</em> </td><td> value of src attribute (if any) - treated as a URL or a classname depending on the value of lang. If srcURL is not null, then scriptSrc is ignored. </td></tr> <tr><td valign=top><em>scriptSrc</em> </td><td> the actual script code (if any) </td></tr> </table> </dl> <p> Reimplemented in <a class="el" href="class_extensionnshandler.html#a3">ExtensionNSHandler</a>. </td> </tr> </table> <a name="b0" doxytag="ExtensionFunctionHandler::startupComponent"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void ExtensionFunctionHandler::startupComponent ( </b></td> <td valign="bottom"><b> )<code> [protected, virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Start the component up by executing any script that needs to run at startup time. <p> This needs to happen before any functions can be called on the component.<dl compact><dt> <b>Exceptions: </b><dd> <table border=0 cellspacing=2 cellpadding=0> <tr><td valign=top><em>XPathProcessorException</em> </td><td> if something bad happens. </td></tr> </table> </dl> <p> Reimplemented in <a class="el" href="class_extensionnshandler.html#b0">ExtensionNSHandler</a>. </td> </tr> </table> <hr><h2>Member Data Documentation</h2> <a name="n6" doxytag="ExtensionFunctionHandler::m_componentStarted"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> bool ExtensionFunctionHandler::m_componentStarted<code> [protected]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="n5" doxytag="ExtensionFunctionHandler::m_functions"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> <a class="el" href="class_extensionfunctionhandler.html#s1">StringSetType</a> ExtensionFunctionHandler::m_functions<code> [protected]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="n4" doxytag="ExtensionFunctionHandler::m_javaObject"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void * ExtensionFunctionHandler::m_javaObject<code> [protected]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="n0" doxytag="ExtensionFunctionHandler::m_namespaceUri"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> <a class="el" href="class_xalandomstring.html">XalanDOMString</a> ExtensionFunctionHandler::m_namespaceUri<code> [protected]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="n1" doxytag="ExtensionFunctionHandler::m_scriptLang"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> <a class="el" href="class_xalandomstring.html">XalanDOMString</a> ExtensionFunctionHandler::m_scriptLang<code> [protected]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="n2" doxytag="ExtensionFunctionHandler::m_scriptSrc"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> <a class="el" href="class_xalandomstring.html">XalanDOMString</a> ExtensionFunctionHandler::m_scriptSrc<code> [protected]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="n3" doxytag="ExtensionFunctionHandler::m_scriptSrcURL"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> <a class="el" href="class_xalandomstring.html">XalanDOMString</a> ExtensionFunctionHandler::m_scriptSrcURL<code> [protected]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="q0" doxytag="ExtensionFunctionHandler::s_tokenDelimiterCharacters"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> const <a class="el" href="XalanDOMString.hpp.html#a1">XalanDOMChar</a> ExtensionFunctionHandler::s_tokenDelimiterCharacters[]<code> [static, protected]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="ExtensionFunctionHandler.hpp-source.html">ExtensionFunctionHandler.hpp</a></ul> <p align="center"><a href="diagramnotes.html">Interpreting class diagrams</a></p> <p><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"> <i><A href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</A> and <A href="http://www.research.att.com/sw/tools/graphviz/">GraphViz</A> are used to generate this API documentation from the Xalan-C header files.</I></FONT></p> <TABLE border="0" cellpadding="0" cellspacing="0" width="820"><TR><TD bgcolor="#0086b2"><IMG height="1" src="images/dot.gif" width="1"></TD></TR></TABLE> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="80%"> <TR> <TD WIDTH="80%" VALIGN="TOP"> <P ALIGN="CENTER"><B>Xalan-C++ XSL Transformer Version 1.1</B><BR> Copyright © 2000, 2001 The Apache Software Foundation. All Rights Reserved.</i></p> </TD> </TR> <TR> <TD WIDTH="100%"> <P ALIGN="CENTER"><IMG SRC="ApacheLogo.jpg" WIDTH="387" HEIGHT="100" ALIGN="BOTTOM" BORDER="0"> </TD> </TR> </TABLE>