<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.invoker</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.invoker</strong></font><br>
               Class Main</h2><br><hr><pre>public class <strong>Main</strong>
extends java.lang.Object</pre>The class whose <code>main</code> method is called when launching the transformation process from
 Eclipse.<p></p><hr><table width="100%" border="1"><tr bgcolor="#CCCCFF"><td width="100%"><h2>Constructor Summary</h2></td></tr><tr><td><code><strong><a href="#con_Main">Main</a></strong>()</code></td></tr></table><br><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Method Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>public static void</code></td><td width="" align="left"><code><a href="#method_main">main</a>(java.lang.String[] args)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               The <code>main</code> method called when launching the transformation process.
 There are 4 required arguments:
 <ol>
 <li>The class name of the <code>IProcessorInvoker</code> to use
 <li>The launch file (serialized <code>PipelineDefinition</code>)
 <li>The URL of the source XML document
 <li>The file where output will be written
 </ol></td></tr></table><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Constructor Detail
               </h2></td></tr></table><h2><a name="con_Main">Main</a></h2><p><code>public <strong>Main</strong>()</code></p><p></p><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Methods Detail
               </h2></td></tr></table><h2><a name="method_main">main</a></h2><p><code>public void <strong>main</strong>(java.lang.String[] args)</code></p><p>The <code>main</code> method called when launching the transformation process.
 There are 4 required arguments:
 <ol>
 <li>The class name of the <code>IProcessorInvoker</code> to use
 <li>The launch file (serialized <code>PipelineDefinition</code>)
 <li>The URL of the source XML document
 <li>The file where output will be written
 </ol></p><h3>Parameters</h3><p><code>args</code> - the 4 required arguments</p><hr></body></html>