You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2002/07/01 17:11:08 UTC
cvs commit: xml-cocoon2/src/webapp/samples/sub/stylesheets dynamic-xsp2xsp.xsl error2html.xsl simple-page2html.xsl simple-page2html.xsp simple-samples2html.xsl
cziegeler 2002/07/01 08:11:08
Added: src/scratchpad/webapp/samples/editor editor.xmap
src/webapp/samples/sub/stylesheets dynamic-xsp2xsp.xsl
error2html.xsl simple-page2html.xsl
simple-page2html.xsp simple-samples2html.xsl
Log:
Added missing files
Revision Changes Path
1.1 xml-cocoon2/src/scratchpad/webapp/samples/editor/editor.xmap
Index: editor.xmap
===================================================================
<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<map:components>
<map:generators default="file">
<!--
Define an XPathDirectoryGenerator
-->
<map:generator
name="xpathdirectory"
logger="sitemap.generator.xpathdirectory"
src="org.apache.cocoon.generation.XPathDirectoryGenerator"
/>
</map:generators>
<map:serializers default="html"/>
<map:transformers default="xalan">
</map:transformers>
<map:readers default="resource"/>
<map:matchers default="wildcard"/>
<map:selectors default="browser"/>
</map:components>
<map:views>
<map:view name="content" from-label="content">
<map:serialize type="xml"/>
</map:view>
<map:view name="agg" from-label="agg">
<map:serialize type="xml"/>
</map:view>
<map:view name="source" from-label="source">
<map:serialize type="xml"/>
</map:view>
</map:views>
<map:pipelines>
<map:pipeline internal-only="false">
<!--
Validating XSLT generator
Generates a Schematron Validating XSLT
from your schematron-[doctype].xml file
-->
<map:match pattern="make-validator(*)">
<map:generate src="editor/docs/schematron-{1}.xml"/>
<map:transform src="editor/stylesheets/schematron-validator2xsl.xsl"/>
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
<map:pipeline internal-only="true">
<!--
Generation pipelines to collect and format the appropriate content based on the requested behaviour and sub-editor
-->
<!--
Directory Listing
Uses the XPathDirectoryGenerator to extract the 'title' of each document
This one removes any filename from the path, (which is a PIA to do in XSL!)
Enforces using 'docs' folder of the main project as the root.
-->
<map:match pattern="content-dir(*,**/*)">
<map:generate type="xpathdirectory" src="docs{2}/#/page/title"/>
<map:transform src="editor/stylesheets/dir2editor.xsl">
<map:parameter name="behaviour" value="dir"/>
<map:parameter name="sub" value="{1}"/>
<map:parameter name="target" value="{2}/"/>
</map:transform>
<map:serialize type="xml"/>
</map:match>
<!--
New
Start a new document from a template
-->
<map:match pattern="content-new(*,**)">
<map:generate src="editor/docs/template.xml"/> <!-- get a template -->
<map:transform src="editor/stylesheets/file2editor.xsl">
<map:parameter name="behaviour" value="new"/>
<map:parameter name="sub" value="{1}"/>
<map:parameter name="target" value="{2}"/>
</map:transform>
<map:serialize type="xml"/>
</map:match>
<!--
Put
Create a Document out of a Request
save it if ther are no validation errors
-->
<map:match pattern="content-put(*,**)">
<map:generate src="cocoon:/request-put({1})"/>
<map:transform src="cocoon:/make-validator(page)"/>
<map:transform src="editor/stylesheets/validationFilter.xsl"/>
<map:transform src="editor/stylesheets/editor2writer.xsl">
<map:parameter name="base" value="docs"/>
</map:transform>
<map:transform type="write-source"/>
<map:serialize type="xml"/>
</map:match>
<!--
Pre
Create a Preview Document out of a Request
validate it
-->
<map:match pattern="content-pre(*,**)">
<map:generate src="cocoon:/request-pre({1})"/>
<map:transform src="cocoon:/make-validator(page)"/>
<map:transform src="editor/stylesheets/validationFilter.xsl"/>
<map:serialize type="xml"/>
</map:match>
<!--
Get or See
Makes a Document from Source
Enforces using 'docs' folder of the main project as the root.
NB. Do not put a slash at the end of the root directory for the generator,
the target-path already has the correct ones
-->
<map:match pattern="content-*(*,**)">
<map:generate src="docs{3}"/>
<map:transform src="editor/stylesheets/file2editor.xsl">
<map:parameter name="behaviour" value="{1}"/>
<map:parameter name="sub" value="{2}"/>
<map:parameter name="target" value="{3}"/>
</map:transform>
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
<map:pipeline internal-only="true">
<!--
Generation pipelines to create a new Document from Request Data
-->
<!--
Alpha Editor, using the StreamGenerator
-->
<map:match pattern="request-*(alpha)">
<map:act type="request">
<map:parameter name="parameters" value="true"/>
<map:generate type="stream">
<map:parameter name="form-name" value="xml-field"/>
</map:generate>
<map:transform src="editor/stylesheets/stream2editor.xsl">
<map:parameter name="sub" value="alpha"/>
<map:parameter name="target" value="{target}"/>
<map:parameter name="behaviour" value="{../1}"/>
</map:transform>
<map:serialize type="xml"/>
</map:act>
</map:match>
<!--
Bravo Editor, using the RequestGenerator
-->
<map:match pattern="request-*(bravo)">
<map:generate type="request"/>
<map:transform src="editor/stylesheets/request2editor.xsl">
<map:parameter name="sub" value="bravo"/>
<map:parameter name="behaviour" value="{1}"/>
</map:transform>
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
<map:pipeline>
<!-- the default page -->
<map:match pattern="">
<map:redirect-to uri="welcome"/>
</map:match>
<map:match pattern="/">
<map:redirect-to uri="welcome"/>
</map:match>
<map:match pattern="welcome">
<map:generate src="editor/docs/welcome.xml"/>
<map:transform src="editor/stylesheets/simple-page2html.xsl"/>
<map:serialize type="html"/>
</map:match>
<!-- directory images -->
<map:match pattern="**image/*.gif">
<map:read src="editor/images/{2}.gif" mime-type="image/gif"/>
</map:match>
<!-- css -->
<map:match pattern="**style">
<map:read mime-type="text/css" src="editor/docs/slash-edit.css"/>
</map:match>
<!--
General purpose behaviour pipeline
Retrieves a page as a form or a view, or retrieves a directory listing
get(sub-editor-name)/path/to/file - get a document for editing in a form
see(sub-editor-name)/path/to/file - see a document with the editor
new(sub-editor-name)/path/to/file - create a new document
put(sub-editor-name) - save a modified document from a form submission
dir(sub-editor-name)/path/to/directory/ - show a directory listing
pre(sub-editor-name)/path/to/file - preview your changes
-->
<map:match pattern="*(*)**">
<map:aggregate element="slash-edit" label="agg">
<map:part src="editor/docs/{2}-config.xml"/>
<map:part src="cocoon:/content-{1}({2},{3})"/>
</map:aggregate>
<map:transform src="editor/stylesheets/editor-page2html.xsl"/>
<map:serialize type="xhtml"/>
</map:match>
<!-- generic error handlers -->
<map:handle-errors>
<map:transform src="context://stylesheets/system/error2html.xsl"/>
<map:serialize status-code="500"/>
</map:handle-errors>
<map:handle-errors type="404">
<map:transform src="context://stylesheets/system/error2html.xsl"/>
<map:serialize/>
</map:handle-errors>
</map:pipeline>
</map:pipelines>
</map:sitemap>
1.1 xml-cocoon2/src/webapp/samples/sub/stylesheets/dynamic-xsp2xsp.xsl
Index: dynamic-xsp2xsp.xsl
===================================================================
<?xml version="1.0"?>
<!-- CVS: $Id: dynamic-xsp2xsp.xsl,v 1.1 2002/07/01 15:11:08 cziegeler Exp $ -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-request="http://apache.org/xsp/request/2.0">
<xsl:template match="*[namespace-uri() = 'urn:xsp']">
<xsl:element name="xsp:{local-name()}">
<xsl:for-each select="@*">
<xsl:attribute name="{name(.)}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:for-each>
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="*[namespace-uri() = 'urn:xsp-request']">
<xsl:element name="xsp-request:{local-name()}">
<xsl:for-each select="@*">
<xsl:attribute name="{name(.)}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:for-each>
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="@*|node()" priority="-1">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
1.1 xml-cocoon2/src/webapp/samples/sub/stylesheets/error2html.xsl
Index: error2html.xsl
===================================================================
<?xml version="1.0"?>
<!-- CVS: $Id: error2html.xsl,v 1.1 2002/07/01 15:11:08 cziegeler Exp $ -->
<html xmlns:error="http://apache.org/cocoon/error/2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xsl:version="1.0">
<head>
<title>Requested resource is not found</title>
</head>
<body bgcolor="#ffffff">
<p>
<font face="Verdana" size="+2">Requested resource is not found</font>
</p>
<p>
<font face="Verdana">
Error occured during request processing:
<b><xsl:value-of select="error:notify/error:message"/></b>
</font>
</p>
<br/>
<font face="Verdana" size="-1">The corresponding exception stacktrace:</font>
<pre>
<xsl:value-of select="translate(error:notify/error:extra[2],' ',' ')"/>
</pre>
<font face="Verdana" size="-2">
This special error layout is specified in the sub sitemap.
</font>
</body>
</html>
1.1 xml-cocoon2/src/webapp/samples/sub/stylesheets/simple-page2html.xsl
Index: simple-page2html.xsl
===================================================================
<?xml version="1.0"?>
<!-- CVS: $Id: simple-page2html.xsl,v 1.1 2002/07/01 15:11:08 cziegeler Exp $ -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="page">
<html>
<head>
<title>
<xsl:value-of select="title"/>
</title>
</head>
<body bgcolor="white" alink="red" link="blue" vlink="blue">
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="title">
<h2 style="color: navy; text-align: center">
<xsl:apply-templates/>
</h2>
</xsl:template>
<xsl:template match="para">
<p align="left">
<i><xsl:apply-templates/></i>
</p>
<xsl:if test="not(following-sibling::para)">
<p align="left"><i>Notes from the stylesheet:<br/>
Page above was processed by static XSL stylesheet.<br/>
My source could be found in the file
<b>cocoon/sub/stylesheets/simple-page2html.xsl</b>.<br/>
I know nothing about the environment which is using me.
</i>
</p>
</xsl:if>
</xsl:template>
<xsl:template match="@*|node()" priority="-1">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
1.1 xml-cocoon2/src/webapp/samples/sub/stylesheets/simple-page2html.xsp
Index: simple-page2html.xsp
===================================================================
<?xml version="1.0"?>
<!-- CVS: $Id: simple-page2html.xsp,v 1.1 2002/07/01 15:11:08 cziegeler Exp $ -->
<xsp:page language="java"
xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0">
<xsl:template match="page">
<html>
<head>
<title>
<xsl:value-of select="title"/>
</title>
</head>
<body bgcolor="white" alink="red" link="blue" vlink="blue">
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="title">
<h2 style="color: navy; text-align: center">
<xsl:apply-templates/>
</h2>
</xsl:template>
<xsl:template match="para">
<p align="left">
<i>
<xsl:apply-templates/>
</i>
</p>
<xsl:if test="not(following-sibling::para)">
<p align="left">
<i>Note from the stylesheet:<br/>
Page above was processed by dynamic XSL stylesheet
generated by XSP (eXtensible Server Pages).<br/>
My source could be found in the file
<b>cocoon/sub/stylesheets/simple-page2html.xsp</b>.<br/>
I know that I was executed at <b><xsp:expr>new Date()</xsp:expr></b>
by <b><xsp:expr>Constants.COMPLETE_NAME</xsp:expr></b>.
</i>
</p>
</xsl:if>
</xsl:template>
<xsl:template match="@*|node()" priority="-1">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
</xsp:page>
1.1 xml-cocoon2/src/webapp/samples/sub/stylesheets/simple-samples2html.xsl
Index: simple-samples2html.xsl
===================================================================
<?xml version="1.0"?>
<!-- CVS: $Id: simple-samples2html.xsl,v 1.1 2002/07/01 15:11:08 cziegeler Exp $ -->
<!-- Author: Nicola Ken Barozzi "barozzi@nicolaken.com" -->
<!-- Author: Vadim Gritsenko "vgritsenko@apache.org" -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink">
<xsl:template match="/">
<html>
<head>
<title>Apache Cocoon @version@</title>
</head>
<body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
<table border="0" cellspacing="2" cellpadding="2" align="center" width="100%">
<tr>
<td colspan="3" align="center"><font face="arial,helvetica,sanserif" color="#000000">The Apache Software Foundation is proud to present...</font></td>
</tr>
<tr>
<td width="30%"></td>
<td width="40%" align="center"><img border="0" src="../images/cocoon.gif"/></td>
<td width="30%" align="center"><font face="arial,helvetica,sanserif" color="#000000"><b>version @version@</b></font></td>
</tr>
</table>
<xsl:apply-templates/>
<p align="center">
<font size="-1">
Copyright © @year@ <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
All rights reserved.
</font>
</p>
</body>
</html>
</xsl:template>
<xsl:template match="samples">
<xsl:variable name="all-samples" select="count(group/sample)"/>
<xsl:variable name="half-samples" select="round($all-samples div 2)"/>
<xsl:variable name="half">
<xsl:for-each select="group">
<xsl:if test="position() < last() and position() > 1">
<xsl:variable name="group-position" select="position()"/>
<xsl:variable name="prev-sample" select="count(../group[position() <= $group-position - 1]/sample)"/>
<xsl:variable name="curr-sample" select="count(../group[position() <= $group-position]/sample)"/>
<xsl:variable name="next-sample" select="count(../group[position() <= $group-position + 1]/sample)"/>
<xsl:variable name="prev-deviation">
<xsl:choose>
<xsl:when test="$prev-sample > $half-samples">
<xsl:value-of select="$prev-sample - $half-samples"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$half-samples - $prev-sample"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="curr-deviation">
<xsl:choose>
<xsl:when test="$curr-sample > $half-samples">
<xsl:value-of select="$curr-sample - $half-samples"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$half-samples - $curr-sample"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="next-deviation">
<xsl:choose>
<xsl:when test="$next-sample > $half-samples">
<xsl:value-of select="$next-sample - $half-samples"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$half-samples - $next-sample"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$prev-deviation >= $curr-deviation and $curr-deviation <= $next-deviation">
<xsl:value-of select="$group-position"/>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<table width="100%">
<tr>
<td width="50%" valign="top">
<xsl:for-each select="group">
<xsl:variable name="group-position" select="position()"/>
<xsl:choose>
<xsl:when test="$group-position <= $half">
<table border="0" bgcolor="#000000" cellpadding="0" cellspacing="0" width="97%">
<tbody>
<tr>
<td>
<table bgcolor="#000000" border="0" cellspacing="2" cellpadding="2" align="center" width="100%">
<tr>
<td bgcolor="#0086b2" width="100%" align="left">
<font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><xsl:value-of select="@name"/></font>
</td>
</tr>
<tr>
<td width="100%" bgcolor="#ffffff" align="left">
<table bgcolor="#ffffff" border="0" cellspacing="0" cellpadding="2" width="100%" align="center">
<xsl:apply-templates/>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
<br/>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</td>
<td valign="top">
<xsl:for-each select="group"> <!-- [position()<=$half] -->
<xsl:variable name="group-position" select="position()"/>
<xsl:choose>
<xsl:when test="$group-position > $half">
<table border="0" bgcolor="#000000" cellpadding="0" cellspacing="0" width="97%">
<tbody>
<tr>
<td>
<table bgcolor="#000000" border="0" cellspacing="2" cellpadding="2" align="center" width="100%">
<tr>
<td bgcolor="#0086b2" width="100%" align="left">
<font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><xsl:value-of select="@name"/></font>
</td>
</tr>
<tr>
<td width="100%" bgcolor="#ffffff" align="left">
<table bgcolor="#ffffff" border="0" cellspacing="0" cellpadding="2" width="100%" align="center">
<xsl:apply-templates/>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
<br/>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</td>
</tr>
</table>
</xsl:template>
<xsl:template match="sample">
<tr>
<td width="100%" bgcolor="#ffffff" align="left">
<font size="+0" face="arial,helvetica,sanserif" color="#000000">
<a href="{@href}"><xsl:value-of select="@name"/></a><xsl:text> - </xsl:text>
<xsl:value-of select="."/>
</font>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org