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],'&#13;',' ')"/>
      </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 "[EMAIL PROTECTED]" -->
  <!-- Author: Vadim Gritsenko "[EMAIL PROTECTED]" -->
  <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 &#169; @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() &lt; last() and position() &gt; 1">
          <xsl:variable name="group-position" select="position()"/>
          <xsl:variable name="prev-sample" select="count(../group[position() &lt;= 
$group-position - 1]/sample)"/>
          <xsl:variable name="curr-sample" select="count(../group[position() &lt;= 
$group-position]/sample)"/>
          <xsl:variable name="next-sample" select="count(../group[position() &lt;= 
$group-position + 1]/sample)"/>
          <xsl:variable name="prev-deviation">
            <xsl:choose>
              <xsl:when test="$prev-sample &gt; $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 &gt; $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 &gt; $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 &gt;= $curr-deviation and $curr-deviation 
&lt;= $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 &lt;= $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 &gt; $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:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to