xalan-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From il...@apache.org
Subject cvs commit: xml-xalan/java/xdocs/sources/xalan samples.xml readme.xml usagepatterns.xml
Date Thu, 20 Feb 2003 18:49:17 GMT
ilene       2003/02/20 10:49:17

  Modified:    java/xdocs/sources/xalan samples.xml readme.xml
                        usagepatterns.xml
  Log:
  Committing Christine Li's (jycli@ca.ibm.com) 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;seapwc@halcyon.com&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: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org


Mime
View raw message