ilene       2003/02/20 10:49:17

  Modified:    java/xdocs/sources/xalan samples.xml readme.xml
                        usagepatterns.xml
  Log:
  Committing Christine Li's ([EMAIL PROTECTED]) patch to the servlet sample 
documentation.
  Bugzilla #17136
  
  Revision  Changes    Path
  1.51      +29 -28    xml-xalan/java/xdocs/sources/xalan/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/samples.xml,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- samples.xml       4 Feb 2003 20:36:17 -0000       1.50
  +++ samples.xml       20 Feb 2003 18:49:17 -0000      1.51
  @@ -208,11 +208,13 @@
       </s2><anchor name="servlet"/>
       <s2 title="servlet">
      <p>For a general introduction, see <link idref="usagepatterns" 
anchor="servlet">Using &xslt4j; in a servlet</link>.</p>
  -    <p>The servlet subdirectory contains four sample servlets that use 
&xslt4j; to perform transformations. These servlets 
  -    are in a package named servlet and are compiled in xalanservlet.jar. To 
run these samples, you must place 
  -    xalanservlet.jar, and any XML and XSL files you want to use on a web 
server with a servlet engine, place 
  -    xalanservlet.jar, xalan.jar, and &xml4j-jar; on the servlet engine class 
path, and configure the servlet engine to
  -    locate the XML and XSL files, and the properties file used by 
ApplyXSL.</p>
  +    <p>The servlet subdirectory contains four sample servlets and one JSP 
that use &xslt4j; to perform transformations. The sample 
  +    code is compiled and packed in xalanservlet.war. To run these samples, 
you must place 
  +    xalanservlet.war on a web server with a servlet engine. For example, 
using <jump href="http://jakarta.apache.org/tomcat/index.html";>jakarta-tomcat 
4.1.18</jump>. 
  +    Copy the xalanservlet.war to %Tomcat_Home%/webapps. For more detail 
about deploying
  +    servlet on Tomcat, please refer to <jump 
href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/appdev/deployment.html";>Deployment
 Organization</jump>.</p>
  +    <note>Dependency on Tomcat version. If encountering 
"java.lang.VerifyError: Cannot inherit from final class" error, 
  +    replace XercesImpl.jar under %Tomcat_Home%/common/endorsed with the one 
included with &xslt4j; .</note>
       <p><link anchor="simplexsltservlet">servlet.SimpleXSLTServlet</link> 
applies a particular stylesheet to a particular 
       XML document.</p> 
       <p><link 
anchor="usestylesheetparamservlet">servlet.UseStylesheetParamServlet</link> 
sets a stylesheet parameter 
  @@ -227,12 +229,11 @@
       stylesheet to apply based on the identity of the client 
browser/device.</p>
       <anchor name="simplexsltservlet"/>
       <s3 title="servlet.SimpleXSLTServlet">
  -    <p>What it does: servlet.SimpleXSLTServlet applies the spec.xsl 
stylesheet to trax.xml (see the <link anchor="get-trax">
  -    get-trax applet</link>) and returns the transformation result to the 
HTTP client.</p>
  -    <p>To run this servlet: place spec.xsl and trax.xml (from the 
samples/AppletXMLtoHTML directory) in the directory where your servlet engine
  -    looks for HTTP documents, place xalanservlet.jar on the servlet engine 
classpath, and set up an HTML page to call the servlet as
  +    <p>What it does: servlet.SimpleXSLTServlet applies the birds.xsl 
stylesheet to birds.xml 
  +    and returns the transformation result to the HTTP client.</p>
  +    <p>To run this servlet: set up an HTML page to call the servlet as
       follows:</p>
  
-<gloss><label>http://localhost/servlethome/servlet.SimpleXSLTServlet</label></gloss>
  
+<gloss><label>http://localhost:port/xalanservlet/SimpleXSLTServlet</label></gloss>
        </s3><anchor name="usestylesheetparamservlet"/>
        <s3 title="servlet.UseStylesheetParamServlet">
        <note>Paul Campbell &lt;[EMAIL PROTECTED]&gt; wrote this servlet and 
the following explanatory text.
  @@ -240,15 +241,11 @@
        <p>What it does: The client (perhaps an HTML form ) specifies an XML 
document, a stylesheet, and a value to be passed
         to the stylesheet for a stylesheet parameter named "param1". The 
servlet performs the transformation and returns
         the output to the client. The client must specify which stylesheet 
(containing a "param1" stylesheet parameter") 
  -      and XML file are to be used.</p>
  -     <p>How to run it: Configure your application server (Tomcat, Websphere 
or JServ, for example)
  -     so it can find servlet.UseStylesheetParamServlet (in xalanservlet.jar) 
as well as the XML document 
  -     and XSL stylesheet. For example, you can copy fooparam.xml and 
fooparam.xsl from samples/servlet to the application 
  -     server root directory for documents.</p>
  -     <p>Then you can set up an HTML client to call the servlet with 
arguments along the lines of</p>
  -    
<gloss><label>http://localhost/servlethome/servlet.UseStylesheetParamServlet?
  +      and XML file are to be used or use sample files fooparam.xml and 
fooparam.xsl</p>
  +     <p>How to run it: set up an HTML client to call the servlet with 
arguments along the lines of</p>
  +    
<gloss><label>http://localhost:port/xalanservlet/UseStylesheetParamServlet?
       XML=fooparam.xml&amp;XSL=fooparam.xsl&amp;PVAL=GoodBye</label></gloss>
  -     <p>In the doGet() method, the servlet obtains the PVAL value "GoodBye") 
from the servlet request and passes it to the 
  +     <p>In the doGet() method, the servlet obtains the PVAL value "GoodBye" 
from the servlet request and passes it to the 
        stylesheet as the paramValue argument in a Transformer setParameter() 
call:</p>
         <p><code>String paramValue = 
httpServletRequest.getParameter("PVAL");</code><br/>
         <code>...</code><br/>
  @@ -261,29 +258,33 @@
        <p>This Java Server Page performs essentially the same operation as 
        <link 
anchor="usestylesheetparamservlet">servlet.UseStylesheetParamServlet</link>. It 
applies a stylesheet parameter 
         to a stylesheet (fooparam.xsl), applies the stylesheet to an XML 
source document (fooparam.xml), and returns the
  -      result.</p>     
  +      result.</p>
  +      <p>Call JSP as follows:</p>
  +      <gloss><label>http://localhost:port/xalanservlet/jspSample.jsp?
  +    XML=fooparam.xml&amp;XSL=fooparam.xsl&amp;PMA=GoodBye</label></gloss>
  +      <p>The JSP obtains the PMA value "GoodBye" from the http request and 
passes it to the stylesheet as the 
  +      paramValue argument in a Transformer setParameter() call.</p>    
        </s3><anchor name="xsltservletwithparams"/>
        <s3 title="servlet.XSLTServletWithParams">
        <p>What it does: servlet.XSLTServletWithParams takes parameters in the 
request -- a URL parameter for
        the XML input document URL and an xslURL parameter for the stylesheet 
URL.</p>
        <p>To use XSLTServletWithParams to perform the same transformation as 
SimplestServlet: 
  -     place spec.xsl and trax.xml in the directory where your servlet engine 
looks for HTTP documents, place
  -     xalanservlet.jar on the servlet engine classpath, and set up an HTML 
page to call the servlet as follows:</p>
  
-<gloss><label>http://localhost/servlethome/servlet.XSLTServletWithParams?URL=file:trax.xml&amp;
  -xslURL=file:spec.xsl</label></gloss>
  +     use birds.xsl and birds.xml as examples. Set up an HTML page to call 
the servlet as follows:</p>
  
+<gloss><label>http://localhost:port/xalanservlet/XSLTServletWithParams?URL=birds.xml&amp;
  +xslURL=birds.xsl</label></gloss>
        <p>If the XML document contains an associated stylesheet (a stylesheet 
Processing Instruction) that you want to use, simply omit the
        xslURL parameter.</p>
  -     <p>If the stylesheet takes stylesheet parameters, you can include them 
in the URL. For example to set set the param1
  +     <p>If the stylesheet takes stylesheet parameters, you can include them 
in the URL. For example to set the param1
        stylesheet parameter to foo, include param1=foo in the URL.</p>
        </s3><anchor name="applyxslt"/>
        <s3 title="servlet.ApplyXSLT">
       <p>What it does: The client (which you must set up) specifies an XML 
document and a stylesheet. The servlet
        performs the transformation and returns the output to the client. You 
can use media.properties to specify 
       which stylesheet is to be used depending on the client 
browser/device.</p>
  -    <note>The source files for this servlet include ApplyXSLT.java, 
ApplyXSLTProperties.java, DefaultApplyXSLTProperties.java,
  -    ApplyXSLTListener.java, and ApplyXSLTException.java.</note>
  -    <p>To run the servlet: put xalanservlet.jar on the servlet engine 
classpath, configure your servlet engine so it can find the 
  -     stylesheets and properties file in the servlet subdirectory (and in 
xalanservlet.jar), and set up an HTML page to call
  +    <note>The source files for this servlet, including ApplyXSLT.java, 
ApplyXSLTProperties.java, DefaultApplyXSLTProperties.java,
  +    ApplyXSLTListener.java, ApplyXSLTException.java. booklist1.xsl, 
booklist2.xsl and catalog.xml,
  +    are provided for testing.</note>
  +    <p>To run the servlet:  set system property server.root=server root. Set 
up an HTML page to call
        servlet.ApplyXSLT with arguments as illustrated below.</p>
       <p>The files foo.xml and foo.xsl used in the following example are 
created by the user. Good 
       examples for these files are birds.xml/birds.xsl and foo.xml/foo.xsl 
under the SimpleTransform 
  
  
  
  1.88      +1 -1      xml-xalan/java/xdocs/sources/xalan/readme.xml
  
  Index: readme.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/readme.xml,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- readme.xml        27 Jan 2003 18:45:36 -0000      1.87
  +++ readme.xml        20 Feb 2003 18:49:17 -0000      1.88
  @@ -335,7 +335,7 @@
          <tr><td>compile</td><td>compiles &xslt4j; in build/classes.</td></tr>
          <tr><td>jar (the default)</td><td>creates xalan.jar in the build 
directory</td></tr>
          <tr><td>samples</td><td>compiles and jars the sample apps in 
build/xalansamples.jar</td></tr>
  -       <tr><td>servlet</td><td>compiles and jars the sample servlet in 
build/xalanservlet.jar</td></tr>       
  +       <tr><td>servlet</td><td>compiles and jars the sample servlet in 
build/xalanservlet.war</td></tr>       
          <tr><td>docs</td><td>creates the HTML User's Guide in 
build/docs</td></tr>
          <tr><td>javadocs</td><td>generates the API documentation in 
./build/docs/apidocs</td></tr>
          <tr><td>dist</td><td>generates a complete distribution tree with zip 
and tar.gz distribution files in build</td></tr>
  
  
  
  1.52      +6 -3      xml-xalan/java/xdocs/sources/xalan/usagepatterns.xml
  
  Index: usagepatterns.xml
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/xdocs/sources/xalan/usagepatterns.xml,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- usagepatterns.xml 27 Jan 2003 18:45:36 -0000      1.51
  +++ usagepatterns.xml 20 Feb 2003 18:49:17 -0000      1.52
  @@ -415,7 +415,8 @@
   <p>You can set up a servlet to use &xslt4j; to respond to requests for XML 
documents by transforming those documents into HTML and serving them to web 
browsers. To respond to HTTP GET requests, all you need to do is overwrite the 
HttpServlet doGet() method with a procedure that instantiates a Transformer and 
uses it to perform a transformation. As the following example shows, you can 
generate a ResultStream that a PrintWriter writes to the HttpResponse 
OutputStream, returning the transformation output to the web browser.</p>
   <source>
   public class SampleXSLTServlet extends javax.servlet.http.HttpServlet {
  -  
  +
  +  public final static String FS = System.getProperty("file.separator"); 
     // Respond to HTTP GET requests from browsers.
     public void doGet (javax.servlet.http.HttpServletRequest request,
                        javax.servlet.http.HttpServletResponse response)
  @@ -429,14 +430,16 @@
       {        
         javax.xml.transform.TransformerFactory tFactory = 
                   javax.xml.transform.TransformerFactory.newInstance();
  +      //get the real path for xml and xsl files.
  +      String ctx = getServletContext().getRealPath("") + FS;        
         // Get the XML input document and the stylesheet, both in the servlet
         // engine document directory.
         javax.xml.transform.Source xmlSource = 
                   new javax.xml.transform.stream.StreamSource
  -                             (new java.net.URL("file:foo.xml").openStream());
  +                             (new java.net.URL("file", "", 
ctx+"foo.xml").openStream());
         javax.xml.transform.Source xslSource = 
                   new javax.xml.transform.stream.StreamSource
  -                             (new java.net.URL("file:foo.xsl").openStream());
  +                             (new java.net.URL("file", "", 
ctx+"foo.xsl").openStream());
         // Generate the transformer.
         javax.xml.transform.Transformer transformer = 
                                tFactory.newTransformer(xslSource);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to