You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by dl...@locus.apache.org on 2000/04/24 19:03:00 UTC

cvs commit: xml-xalan/xdocs/sources/xalan usagepatterns.xml

dleslie     00/04/24 10:02:59

  Modified:    xdocs/sources/xalan usagepatterns.xml
  Log:
  Bugzilla Bug 168.
  Added  info on using StylesheetRoot process method with
  XSLTProcessor param to include a stylesheet param setting.
  
  Revision  Changes    Path
  1.8       +18 -2     xml-xalan/xdocs/sources/xalan/usagepatterns.xml
  
  Index: usagepatterns.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/xdocs/sources/xalan/usagepatterns.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- usagepatterns.xml	2000/03/16 18:59:33	1.7
  +++ usagepatterns.xml	2000/04/24 17:02:59	1.8
  @@ -123,8 +123,10 @@
   <p>An XSL stylesheet can include parameters that get set at run time when a transformation takes place. When we generate the HTML documents that make up the Xalan doc set, for example, we send the stylesheet an id parameter along with each XML source document. The id identifies that document and enables the stylesheet to integrate it into the overall doc set.</p>
   <p>To set a stylesheet parameter, use the XSLTProcessor setStylesheetParam(String key, String expression) method, where key is the parameter name and expression is an XPath expression. If the parameter is a String, enclose it in single quotes to make it a String expression.</p>
   <p>You can also use setStylesheetParam(String key, XObject value). This option is useful when you are working with the XPath API. For example, you could use the XObject returned by an Xpath function to set a parameter.</p>
  -<p>From the <link idref="commandline">command line</link>, include a -param argument. For example:</p>
  +<p>You can include a -param argument when you call the <link idref="commandline">command line utility</link>.For example:</p>
   <p><code>java org.apache.xalan.xslt.Process -in foo.xml -xsl foo.xsl -param 'boo'</code></p>
  +<p>The <link idref="samples" anchor="usestylesheetparam">UseStylesheetParam</link> sample application also uses a command-line parameter.</p>
  +<p>For information about using stylesheet parameters with a compiled stylesheet, see the next section.</p>
   </s2><anchor name="compiled"/>
   <s2 title="Compiling stylesheets">
   <p>A <resource-ref idref="StylesheetRootDoc"/> object is a binary representation of a stylesheet that adds efficiency to the performance of repeated transformations and supports thread-safe concurrent access by multiple clients. If, for example, you are setting up a servlet to perform transformations, you can improve performance by compiling any stylesheets the servlet repeatedly uses.</p>
  @@ -146,7 +148,21 @@
   StylesheetRoot style = processor.processStylesheet(new XSLTInputSource("foo.xsl"));
   ...
   style.process(new XSLTInputSource("foo.xml"), new XSLTResultTarget("foo.out"));</source>
  -<p>You should use the StylesheetRoot process() method if you are using a StylesheetRoot object to transform multiple XML sources.</p>
  +<p>You should use the StylesheetRoot process(XSLTInputSource xmlIn, XSLTResultTarget xmlOut) method if you are using a StylesheetRoot object to transform multiple XML sources. The StylesheetRoot creates a new XSLTProcessor instance for each transformation.</p>
  +<p>If you are using a compiled stylesheet to perform a transformation that includes a stylesheet parameter, use the version of the process() method that includes a parameter for the XSLTProcessor with which you have set the stylesheet parameter. Otherwise the parameter setting is not used. Keep in mind that you must reset the XSLTProcessor object if you want to use it in another transformation. For example:</p>
  +<source>import org.apache.xalan.xslt.*;
  +...
  +XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
  +processor.setStylesheetParam("param1", "'boo'");
  +StylesheetRoot style = processor.processStylesheet
  +                                       (new XSLTInputSource("foo.xsl"));
  +style.process (processor, new XSLTInputSource("foo.xml"),  
  +                          new XSLTResultTarget("foo.out"));
  +processor.reset();
  +processor.setStylesheetParam("param1", "'foobar'");
  +style.process (processor, new XSLTInputSource("bar.xml"),  
  +                          new XSLTResultTarget("bar.out"));
  +</source>
   <p>If you want to use the XSLTProcessor as a SAX document handler, you must provide the processor a compiled stylesheet. See <link anchor="sax">Generating and Responding to SAX events</link>.</p>
   </s2><anchor name="dom-in"/>
   <s2 title="Processing DOM input">