dleslie 01/02/12 08:41:46
Added: c/samples/ApacheModuleXSLT/xslt apachemod.xml apachemod.xsl
foo.xml foo.xsl
Log:
xml/xsl file pairs used by the sample Apache module.
Revision Changes Path
1.1 xml-xalan/c/samples/ApacheModuleXSLT/xslt/apachemod.xml
Index: apachemod.xml
===================================================================
<?xml version="1.0"?>
<s1 title="About ApacheModuleXSLT">
<s2 title="Using ApacheModuleXSLT to perform XSL transfomrations">
<p>ApacheModuleXSLT is an Apache Web server module that responds to
appropriate URLs by performing transformations and returning the output
to the client Web browser. The module responds to a request for a given
output file (html or txt as configured below) by applying an xsl
stylesheet file with that name to an xml document with the same name. The
requested "output file" is created on the fly and returned as a
text stream to the client.</p>
<p>To use this module, do the following:</p>
<ol>
<li>Add LoadModule and (UNIX only) AddModule entries to the Apache
configuration file: httpd.conf.<br/><br/>
Windows: <code>LoadModule mod_xslt
xml-xalan\c\Build\Win32\VC6\Release\ApacheModuleXSLT.dll</code><br/><br/>
UNIX: <code>AddModule mod_xslt.c</code><br/>
        and<br/>
        <code>LoadModule mod_xslt
usr/lib/mod_xslt.<ref>xx</ref></code><br/><br/>
where <ref>xx</ref> is the appropriate library suffix for the UNIX
platform.<br/><br/></li>
<li>Add a <Location> entry to httpd.conf that indicates where
xml/xsl file pairs are to be found, and what target file extensions
to recognize. We suggest the following:<br/><br/>
<code><Location /xslt></code><br/>
  <code>AddHandler .html</code><br/>
  <code>AddHandler .txt</code><br/>
<code></Location></code><br/><br/>
This <Location> element instructs the module to respond to requests
for <ref>xxx</ref>.html and <ref>xxx</ref>.txt files in the
in the xslt subdirectory (under the document root; see next item) by
applying the <ref>xxx</ref>.xsl stylesheet to <ref>xxx</ref>.xml
(both in that directory) and returning the transformation result to the
browser.<br/><br/>
Note: It is up to the stylesheet to apply the appropriate xsl:output
method to the output. Whether the user specifies html or txt is, of
itself, immaterial.<br/><br/></li>
<li>Put xml/xsl file pairs in the <Location> subdirectory (xslt in
the example)) under the document root directory specified in httpd.conf by the
DocumentRoot and <Directory> settings. Alternatively, you can
modify these settings to point to xml-xalan/c/samples/ApacheModuleXSLT,
which includes an xslt subdirectory with xml/xsl file
pairs.<br/><br/></li>
<li>Start the Apache server.<br/><br/></li>
<li>From a Web browser, call the module with a URL as follows:<br/>
<code>http://<ref>serverName</ref>/xslt/<ref>xxx</ref>.html</code><br/>
where <ref>serverName</ref> is the Apache server (such as
www.myServer.com) and <ref>xxx</ref> is the name of an xml/xsl pair of files
(such as foo.xml and foo.xsl) in the xslt subdirectory under the
DocumentRoot directory.<br/><br/>
For example,<br/>
<code>http://www.myServer.com/xslt/foo.html</code><br/>
instructs ApacheModuleXSLT to apply the foo.xsl stylesheet to the foo.xml
XML document (both files in the xslt directory under the
Apache DocumentRoot directory) and return the transformation result to
the browser.</li>
</ol>
</s2>
</s1>
1.1 xml-xalan/c/samples/ApacheModuleXSLT/xslt/apachemod.xsl
Index: apachemod.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="s1">
<html>
<head><title><xsl:value-of select="@title"/></title></head>
<body bgcolor="#ffffff" text="#000000">
<xsl:apply-templates select="s2"/>
</body>
</html>
</xsl:template>
<xsl:template match="s2">
<table width="100%" border="0" cellspacing="0" cellpadding="4">
<tr>
<td bgcolor="#006699">
<font color="#ffffff" size="+1">
<b><xsl:value-of select="@title"/></b>
</font>
</td>
</tr>
</table>
<xsl:apply-templates/>
<br/>
</xsl:template>
<xsl:template match="p">
<p><xsl:apply-templates/></p>
</xsl:template>
<xsl:template match="note">
<table border="0" width="100%">
<tr>
<td width="20"> </td>
<td bgcolor="#88aacc">
<font size="-1"><i>NOTE: <xsl:apply-templates/></i></font>
</td>
<td width="20"> </td>
</tr>
</table>
</xsl:template>
<xsl:template match="ul">
<ul><xsl:apply-templates/></ul>
</xsl:template>
<xsl:template match="ol">
<ol><xsl:apply-templates/></ol>
</xsl:template>
<xsl:template match="gloss">
<dl><xsl:apply-templates/></dl>
</xsl:template>
<!-- <term> contains a single-word, multi-word or symbolic
designation which is regarded as a technical term. -->
<xsl:template match="term">
<dfn><xsl:apply-templates/></dfn>
</xsl:template>
<xsl:template match="label" priority="1">
<dt><xsl:apply-templates/></dt>
</xsl:template>
<xsl:template match="item" priority="2">
<dd>
<xsl:apply-templates/>
</dd>
</xsl:template>
<xsl:template match="table">
<p align="center"><table border="0"><xsl:apply-templates/></table></p>
</xsl:template>
<xsl:template match="source">
<table border="0" width="100%">
<tr>
<td width="20"> </td>
<td bgcolor="#88aacc"><pre><xsl:apply-templates/></pre></td>
<td width="20"> </td>
</tr>
</table>
</xsl:template>
<xsl:template match="li">
<li><xsl:apply-templates/></li>
</xsl:template>
<xsl:template match="tr">
<tr><xsl:apply-templates/></tr>
</xsl:template>
<xsl:template match="th">
<td bgcolor="#006699" align="center">
<font color="#ffffff"><b><xsl:apply-templates/></b></font>
</td>
</xsl:template>
<xsl:template match="td">
<td bgcolor="#88aacc"><xsl:apply-templates/> </td>
</xsl:template>
<xsl:template match="tn">
<td> </td>
</xsl:template>
<xsl:template match="em">
<b><xsl:apply-templates/></b>
</xsl:template>
<xsl:template match="ref">
<i><xsl:apply-templates/></i>
</xsl:template>
<xsl:template match="code">
<code><xsl:apply-templates/></code>
</xsl:template>
<xsl:template match="br">
<br/>
</xsl:template>
<xsl:template match="jump">
<a href="[EMAIL PROTECTED]" target="_top"><xsl:apply-templates/></a>
</xsl:template>
<xsl:template match="anchor">
<a name="[EMAIL PROTECTED]"> </a>
</xsl:template>
<xsl:template match="img">
<img src="[EMAIL PROTECTED]" align="right" border="0" vspace="4"
hspace="4"/>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/c/samples/ApacheModuleXSLT/xslt/foo.xml
Index: foo.xml
===================================================================
<?xml version="1.0"?>
<s1 title="s1 foo">
<s2 title="Foo">
<p>Hello</p>
</s2>
</s1>
1.1 xml-xalan/c/samples/ApacheModuleXSLT/xslt/foo.xsl
Index: foo.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="s1">
<html>
<head><title><xsl:value-of select="@title"/></title></head>
<body bgcolor="#ffffff" text="#000000">
<xsl:apply-templates select="s2"/>
</body>
</html>
</xsl:template>
<xsl:template match="s2">
<table width="100%" border="0" cellspacing="0" cellpadding="4">
<tr>
<td bgcolor="#006699">
<font color="#ffffff" size="+1">
<b><xsl:value-of select="@title"/></b>
</font>
</td>
</tr>
</table>
<xsl:apply-templates/>
<br/>
</xsl:template>
<xsl:template match="p">
<p><xsl:apply-templates/></p>
</xsl:template>
</xsl:stylesheet>