cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vgritse...@apache.org
Subject cvs commit: cocoon-2.1/src/webapp/samples/webserviceproxy/cocoonhive/stylesheets page.css
Date Tue, 06 May 2003 14:13:04 GMT
vgritsenko    2003/05/06 07:13:03

  Modified:    src/blocks/databases/samples/mod-db stupid.xsl
               src/blocks/deli/WEB-INF/deli/config localProfiles.xml
               src/blocks/html/conf tidy.xconf tidy.xroles
               src/blocks/linkrewriter/samples sitemap.xmap
               src/blocks/lucene/java/org/apache/cocoon/components/search
                        SimpleLuceneXMLIndexerImpl.java
               src/blocks/portal-fw/conf portal-act.xmap portal-gen.xmap
                        portal.xconf portal.xroles
               src/blocks/portal-fw/samples sitemap.xmap
               src/blocks/portal-fw/samples/styles TO-html.xsl
                        changeuser.xsl load.xsl login-html.xsl portal.xsl
                        portalHTML-Netscape.xsl portalHTML.xsl
                        portalconfHTML.xsl sunLet_MoreoverDotCom.xsl
                        sunLet_sundnNews.xsl sunletconf.xsl
                        sunrise-user.xsl sunriseconfHTML.xsl
                        sunriseeditHTML.xsl
               src/blocks/precept/samples samples.xml
               src/blocks/precept/samples/example1 README error.xml
                        error.xsl thanks.xml thanks.xsl view1.xml view1.xsl
                        view2.xml view2.xsl view3.xml view3.xsl view4.xml
                        view4.xsl
               src/blocks/precept/samples/example2 error.xml i2html.xsl
                        thanks.xml view1.xml view2.xml view3.xml view4.xml
               src/blocks/precept/samples/model easyrelax.xml
               src/blocks/session-fw/conf session-act.xmap session-sel.xmap
                        session-tran.xmap
               src/blocks/slide/java/org/apache/cocoon/components/repository/impl
                        SlideConfigurationAdapter.java
               src/blocks/slide/samples sitemap.xmap
               src/blocks/taglib/conf jxpath.xconf tag.xconf
               src/blocks/web3/conf web3.xconf web3.xsamples
               src/blocks/web3/java/org/apache/cocoon/components/web3
                        Web3.java Web3Client.java Web3DataSource.java
                        Web3Streamer.java
               src/blocks/web3/java/org/apache/cocoon/components/web3/impl
                        DefaultWeb3StreamerImpl.java Web3ClientImpl.java
                        Web3DataSourceImpl.java
                        Web3DataSourceSelectorImpl.java Web3Properties.java
               src/blocks/web3/java/org/apache/cocoon/transformation
                        Web3RfcTransformer.java
               src/blocks/web3/mocks/com/sap/mw/jco IFunctionTemplate.java
                        IRepository.java JCO.java
               src/blocks/web3/samples/dtd rfc-in.dtd rfc-out.dtd
               src/blocks/web3/samples/stylesheets pics2view.xsl pretty.xsl
                        proper.xsl rfc2html.xsl
               src/deprecated/conf deprecated.xconf deprecated.xroles
               src/documentation/xdocs/drafts cocoon2-docbook.xml
               src/scratchpad/src/org/apache/cocoon/components/source/impl
                        blob.xconf
               src/scratchpad/webapp/samples/jxforms/stylesheets
                        jxforms2html.xsl
               src/scratchpad/webapp/samples/paginator/content text.xml
               src/scratchpad/webapp/samples/paginator/pagesheets
                        text.pagesheet
               src/scratchpad/webapp/samples/petstore sitemap.xmap
               src/scratchpad/webapp/samples/petstore/stylesheets
                        form2html.xsl site2html.xsl
               src/scratchpad/webapp/samples/petstore/view/jxforms
                        EditAccountInformation.xml
                        EditProfileInformation.xml EditUserInformation.xml
               src/webapp/samples/errorhandling sitemap.xmap
               src/webapp/samples/errorhandling/exception sitemap.xmap
               src/webapp/samples/webserviceproxy/cocoonhive/stylesheets
                        page.css
  Log:
  fix line endings
  
  Revision  Changes    Path
  1.2       +4 -4      cocoon-2.1/src/blocks/databases/samples/mod-db/stupid.xsl
  
  Index: stupid.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/databases/samples/mod-db/stupid.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- stupid.xsl	9 Mar 2003 00:03:21 -0000	1.1
  +++ stupid.xsl	6 May 2003 14:12:54 -0000	1.2
  @@ -15,13 +15,13 @@
         <xsl:attribute name="bgcolor"><xsl:value-of select="$tablecolor"/></xsl:attribute>
         <xsl:element name="tr"> 
           <xsl:apply-templates select="child::*[1]" mode="head"/>
  -      </xsl:element> 
  +      </xsl:element>
         <xsl:for-each select="child::*">
           <xsl:element name="tr"> 
             <xsl:apply-templates select="."/>
  -        </xsl:element> 
  +        </xsl:element>
         </xsl:for-each>
  -    </xsl:element> 
  +    </xsl:element>
     </xsl:template>
   
     <xsl:template match="sqltblrow" mode="head">
  @@ -130,7 +130,7 @@
   	      <xsl:element name="big">	   
                    <xsl:apply-templates/>
   	      </xsl:element>
  -	   </xsl:element>	
  +	   </xsl:element>
           </xsl:element>
        </xsl:element>
     </xsl:template>
  
  
  
  1.2       +5 -17     cocoon-2.1/src/blocks/deli/WEB-INF/deli/config/localProfiles.xml
  
  Index: localProfiles.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/deli/WEB-INF/deli/config/localProfiles.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- localProfiles.xml	9 Mar 2003 00:03:32 -0000	1.1
  +++ localProfiles.xml	6 May 2003 14:12:54 -0000	1.2
  @@ -5,7 +5,6 @@
   <!-- Legacy devices contributed by Johannes Koch - Thanks Johannes -->
   
   <!-- Alcatel -->
  -
   	<device>
   		<ua value="Alcatel-BF4/2.0"
   		profile="Alcatel_OT512.rdf"/>
  @@ -32,7 +31,6 @@
   	</device>
   
   <!-- Ericsson -->
  -
   	<device>
   		<ua value="EricssonA2628/R2A"
   		profile="Ericsson_A2628.rdf"/>
  @@ -54,18 +52,16 @@
   	</device>
   
   <!-- Sony -->
  -
   	<device>
   		<ua value="Sony CMD-Z5"
   		profile="Sony_CMD-Z5.rdf"/>
  -	</device>	
  +	</device>
   
   <!-- Siemens -->
  -
   	<device>
   		<ua value="SIE-S45/05"
   		profile="Siemens_S45.rdf"/>
  -	</device>	
  +	</device>
   
   	<device>
   		<ua value="SIE-S35"
  @@ -78,14 +74,12 @@
   	</device>
   
   <!-- NEC -->
  -
   	<device>
   		<ua value="n21i-10"
   		profile="NEC_21i.rdf"/>
   	</device>
   
   <!-- Motorola -->
  -
   	<device>
   		<ua value="MOT-SAP4"
   		profile="Motorola_V66.rdf"/>
  @@ -136,9 +130,7 @@
   		profile="Motorola_A008.rdf"/>
   	</device>
   
  -
   <!-- Nokia -->
  -
   	<device>
   		<ua value="Nokia9210"
   		profile="Nokia_9210_WML.rdf"/>
  @@ -263,31 +255,27 @@
   -->
   
   <!-- UAProf phones - remove when UAProf enabled WAP gateways are more widespread -->
  -
   	<device>
   		<ua value="Mitsu/1.2.A (Eclipse)"
   		profile="Trium_Eclipse.rdf"/>
  -	</device>	
  +	</device>
   
   	<device>
   		<ua value="EricssonT68"
   		profile="Ericsson_T68R1.rdf"/>
  -	</device>	
  -
  +	</device>
   
           <device>
                   <ua value="SonyEricssonT68/R201A"
                   profile="SonyEricsson_T68R201A.rdf"/>
           </device>
  -
   	
   	<device>
   		<ua value="EricssonT39"
   		profile="Ericsson_T39.rdf"/>
  -	</device>	
  +	</device>
   
   <!-- Demonstration legacy devices - the information in these profiles SHOULD NOT be used for content adaptation -->
  -
   	<device>
   		<ua value="amaya"
   		profile="amaya.rdf"/>
  
  
  
  1.2       +7 -7      cocoon-2.1/src/blocks/html/conf/tidy.xconf
  
  Index: tidy.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/html/conf/tidy.xconf,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- tidy.xconf	2 May 2003 06:31:59 -0000	1.1
  +++ tidy.xconf	6 May 2003 14:12:54 -0000	1.2
  @@ -1,7 +1,7 @@
  -<?xml version="1.0"?>
  -
  -<xconf xpath="/cocoon/xmlizer" unless="parser[@role='org.apache.excalibur.xml.sax.SAXParser/HTML']">
  -
  -      <parser role="org.apache.excalibur.xml.sax.SAXParser/HTML" mime-type="text/html"/>
  -
  -</xconf>
  +<?xml version="1.0"?>
  +
  +<xconf xpath="/cocoon/xmlizer" unless="parser[@role='org.apache.excalibur.xml.sax.SAXParser/HTML']">
  +
  +      <parser role="org.apache.excalibur.xml.sax.SAXParser/HTML" mime-type="text/html"/>
  +
  +</xconf>
  
  
  
  1.2       +10 -10    cocoon-2.1/src/blocks/html/conf/tidy.xroles
  
  Index: tidy.xroles
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/html/conf/tidy.xroles,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- tidy.xroles	4 May 2003 17:33:41 -0000	1.1
  +++ tidy.xroles	6 May 2003 14:12:54 -0000	1.2
  @@ -1,10 +1,10 @@
  -<?xml version="1.0"?>
  -
  -<xroles xpath="/role-list" unless="role[@name='org.apache.excalibur.xml.sax.SAXParser/HTML']">
  -
  -  <!-- This is the HTML parser -->
  -  <role name="org.apache.excalibur.xml.sax.SAXParser/HTML"
  -        shorthand="html-parser"
  -        default-class="org.apache.excalibur.xml.sax.JTidyHTMLParser"/>
  -
  -</xroles>
  +<?xml version="1.0"?>
  +
  +<xroles xpath="/role-list" unless="role[@name='org.apache.excalibur.xml.sax.SAXParser/HTML']">
  +
  +  <!-- This is the HTML parser -->
  +  <role name="org.apache.excalibur.xml.sax.SAXParser/HTML"
  +        shorthand="html-parser"
  +        default-class="org.apache.excalibur.xml.sax.JTidyHTMLParser"/>
  +
  +</xroles>
  
  
  
  1.2       +39 -46    cocoon-2.1/src/blocks/linkrewriter/samples/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/linkrewriter/samples/sitemap.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sitemap.xmap	9 Mar 2003 00:04:20 -0000	1.1
  +++ sitemap.xmap	6 May 2003 14:12:54 -0000	1.2
  @@ -1,46 +1,39 @@
  -<?xml version="1.0"?>
  -
  -<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  -  <!-- =========================== Components ================================ -->
  -
  -  <map:components>
  -
  -    <map:generators default="file"/>
  -    <map:transformers default="xslt"/>
  -    <map:readers default="resource"/>
  -    <map:serializers default="html"/>
  -    <map:matchers default="wildcard"/>
  -    <map:selectors default="browser"/>
  -  </map:components>
  -
  -
  -  <!-- =========================== Pipelines ================================= -->
  -
  -  <map:pipelines>
  -
  -    <map:pipeline>
  -     <map:match pattern="">
  -       <map:redirect-to uri="welcome"/>
  -     </map:match>
  -     <map:match pattern="welcome">
  -       <map:generate src="samples.xml"/>
  -       <map:transform src="context://samples/common/style/xsl/html/simple-samples2html.xsl">
  -          <map:parameter name="contextPath" value="{request:contextPath}"/>
  -       </map:transform>
  -       <map:serialize/>
  -
  -     </map:match>
  -   </map:pipeline>
  -
  -    <!-- pipeline mounting linkrewriter samples sitemaps -->
  -    <map:pipeline>
  -      <!-- mount everything else -->
  -      <map:match pattern="*/**">
  -        <map:mount check-reload="yes" src="{1}/" uri-prefix="{1}"/>
  -      </map:match>
  -    </map:pipeline>
  -
  -  </map:pipelines>
  -
  -</map:sitemap>
  -
  +<?xml version="1.0"?>
  +
  +<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  +  <!-- =========================== Components ================================ -->
  +
  +  <map:components>
  +    <map:generators default="file"/>
  +    <map:transformers default="xslt"/>
  +    <map:readers default="resource"/>
  +    <map:serializers default="html"/>
  +    <map:matchers default="wildcard"/>
  +    <map:selectors default="browser"/>
  +  </map:components>
  +
  +  <!-- =========================== Pipelines ================================= -->
  +
  +  <map:pipelines>
  +    <map:pipeline>
  +     <map:match pattern="">
  +       <map:redirect-to uri="welcome"/>
  +     </map:match>
  +     <map:match pattern="welcome">
  +       <map:generate src="samples.xml"/>
  +       <map:transform src="context://samples/common/style/xsl/html/simple-samples2html.xsl">
  +          <map:parameter name="contextPath" value="{request:contextPath}"/>
  +       </map:transform>
  +       <map:serialize/>
  +     </map:match>
  +   </map:pipeline>
  +
  +    <!-- pipeline mounting linkrewriter samples sitemaps -->
  +    <map:pipeline>
  +      <!-- mount everything else -->
  +      <map:match pattern="*/**">
  +        <map:mount check-reload="yes" src="{1}/" uri-prefix="{1}"/>
  +      </map:match>
  +    </map:pipeline>
  +  </map:pipelines>
  +</map:sitemap>
  
  
  
  1.3       +17 -18    cocoon-2.1/src/blocks/lucene/java/org/apache/cocoon/components/search/SimpleLuceneXMLIndexerImpl.java
  
  Index: SimpleLuceneXMLIndexerImpl.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/lucene/java/org/apache/cocoon/components/search/SimpleLuceneXMLIndexerImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SimpleLuceneXMLIndexerImpl.java	11 Mar 2003 17:44:21 -0000	1.2
  +++ SimpleLuceneXMLIndexerImpl.java	6 May 2003 14:12:54 -0000	1.3
  @@ -81,23 +81,22 @@
   /**
    * A simple class building lucene documents from xml content.
    *
  - *	<p>
  - *    It has two parameters that effect the way it works:
  - *	</p><p>
  - *	  <tt>&lt;store-fields/&gt;</tt> 
  - *		Sets which tags in your content are stored in Lucene as fields, 
  - *		during the indexing process. Allows them to be output with search hits.
  - *	</p><p>		
  - *		<tt>&lt;content-view-query/&gt;</tt>
  - *		Sets the view the indexer will request for indexing content.
  - *	</p><p>
  - *	Example configuration (goes in cocoon.xconf)
  - *	<pre><tt>
  - *		&lt;lucene-xml-indexer logger="core.search.lucene"&gt;
  - *			&lt;store-fields&gt;title, summary&lt;store-fields&gt;
  - *			&lt;content-view-query&gt;cocoon-view=search&lt;/content-view-query&gt;
  - *		&lt;/lucene-xml-indexer&gt;
  - *	</tt></pre></p>
  + * <p>It has two parameters that effect the way it works:</p>
  + * <p>
  + *   <tt>&lt;store-fields/&gt;</tt> 
  + *   Sets which tags in your content are stored in Lucene as fields, 
  + *   during the indexing process. Allows them to be output with search hits.
  + * </p><p>
  + *   <tt>&lt;content-view-query/&gt;</tt>
  + *   Sets the view the indexer will request for indexing content.
  + * </p><p>
  + *   Example configuration (goes in cocoon.xconf)
  + *   <pre><tt>
  + *     &lt;lucene-xml-indexer logger="core.search.lucene"&gt;
  + *       &lt;store-fields&gt;title, summary&lt;store-fields&gt;
  + *       &lt;content-view-query&gt;cocoon-view=search&lt;/content-view-query&gt;
  + *     &lt;/lucene-xml-indexer&gt;
  + *   </tt></pre></p>
    *
    * @author <a href="mailto:berni_huber@a1.net">Bernhard Huber</a>
    * @author <a href="mailto:jeremy@apache.org">Jeremy Quinn</a>
  
  
  
  1.2       +8 -8      cocoon-2.1/src/blocks/portal-fw/conf/portal-act.xmap
  
  Index: portal-act.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/conf/portal-act.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- portal-act.xmap	9 Mar 2003 00:05:14 -0000	1.1
  +++ portal-act.xmap	6 May 2003 14:12:54 -0000	1.2
  @@ -1,8 +1,8 @@
  -<?xml version="1.0"?>
  -
  -<xmap xpath="/sitemap/components/actions"
  -      unless="action[@name='portal-auth']">
  -
  -    <map:action name="portal-auth"
  -                src="org.apache.cocoon.webapps.portal.acting.AuthAction"/>
  -</xmap>
  +<?xml version="1.0"?>
  +
  +<xmap xpath="/sitemap/components/actions"
  +      unless="action[@name='portal-auth']">
  +
  +    <map:action name="portal-auth"
  +                src="org.apache.cocoon.webapps.portal.acting.AuthAction"/>
  +</xmap>
  
  
  
  1.2       +12 -12    cocoon-2.1/src/blocks/portal-fw/conf/portal-gen.xmap
  
  Index: portal-gen.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/conf/portal-gen.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- portal-gen.xmap	9 Mar 2003 00:05:14 -0000	1.1
  +++ portal-gen.xmap	6 May 2003 14:12:54 -0000	1.2
  @@ -1,12 +1,12 @@
  -<?xml version="1.0"?>
  -
  -<xmap xpath="/sitemap/components/generators"
  -      unless="generator[@name='portal']">
  -
  -    <map:generator name="portal"
  -                   src="org.apache.cocoon.webapps.portal.generation.PortalGenerator"
  -                   label="content,data"/>
  -    <map:generator name="portal-conf"
  -                   src="org.apache.cocoon.webapps.portal.generation.ConfigurationGenerator"
  -                   label="content,data"/>
  -</xmap>
  +<?xml version="1.0"?>
  +
  +<xmap xpath="/sitemap/components/generators"
  +      unless="generator[@name='portal']">
  +
  +    <map:generator name="portal"
  +                   src="org.apache.cocoon.webapps.portal.generation.PortalGenerator"
  +                   label="content,data"/>
  +    <map:generator name="portal-conf"
  +                   src="org.apache.cocoon.webapps.portal.generation.ConfigurationGenerator"
  +                   label="content,data"/>
  +</xmap>
  
  
  
  1.2       +8 -8      cocoon-2.1/src/blocks/portal-fw/conf/portal.xconf
  
  Index: portal.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/conf/portal.xconf,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- portal.xconf	9 Mar 2003 00:05:14 -0000	1.1
  +++ portal.xconf	6 May 2003 14:12:54 -0000	1.2
  @@ -1,8 +1,8 @@
  -<?xml version="1.0"?>
  -
  -<xconf xpath="/cocoon" unless="portal-manager">
  -
  -  <portal-manager logger="core.portal-manager"
  -                  pool-max="32" pool-min="8" pool-grow="4"/>
  -
  -</xconf>
  +<?xml version="1.0"?>
  +
  +<xconf xpath="/cocoon" unless="portal-manager">
  +
  +  <portal-manager logger="core.portal-manager"
  +                  pool-max="32" pool-min="8" pool-grow="4"/>
  +
  +</xconf>
  
  
  
  1.2       +9 -9      cocoon-2.1/src/blocks/portal-fw/conf/portal.xroles
  
  Index: portal.xroles
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/conf/portal.xroles,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- portal.xroles	9 Mar 2003 00:05:14 -0000	1.1
  +++ portal.xroles	6 May 2003 14:12:54 -0000	1.2
  @@ -1,9 +1,9 @@
  -<?xml version="1.0"?>
  -
  -<xroles xpath="/role-list" unless="role[@name='org.apache.cocoon.webapps.portal.components.PortalManager']">
  -
  -  <role name="org.apache.cocoon.webapps.portal.components.PortalManager"
  -        shorthand="portal-manager"
  -        default-class="org.apache.cocoon.webapps.portal.components.PortalManager"/>
  -
  -</xroles>
  +<?xml version="1.0"?>
  +
  +<xroles xpath="/role-list" unless="role[@name='org.apache.cocoon.webapps.portal.components.PortalManager']">
  +
  +  <role name="org.apache.cocoon.webapps.portal.components.PortalManager"
  +        shorthand="portal-manager"
  +        default-class="org.apache.cocoon.webapps.portal.components.PortalManager"/>
  +
  +</xroles>
  
  
  
  1.2       +289 -296  cocoon-2.1/src/blocks/portal-fw/samples/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/sitemap.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sitemap.xmap	9 Mar 2003 00:05:21 -0000	1.1
  +++ sitemap.xmap	6 May 2003 14:12:55 -0000	1.2
  @@ -1,296 +1,289 @@
  -<?xml version="1.0"?>
  -
  -<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  -<!-- =========================== Components ================================ -->
  -
  - <map:components>
  -
  -  <map:generators default="file"/>
  -  <map:transformers default="xslt"/>
  -  <map:readers default="resource"/>
  -  <map:serializers default="html"/>
  -  <map:matchers default="wildcard"/>
  -  <map:selectors default="browser"/>
  - </map:components>
  -
  -
  -<!-- =========================== Pipelines ================================= -->
  -
  - <map:pipelines>
  -  <map:component-configurations>
  -  <authentication-manager>
  -    <handlers>
  -      <handler name="portalhandler">
  -		<redirect-to uri="cocoon:/sunspotdemoportal"/>
  -		<authentication uri="cocoon:raw:/sunrise-authuser"/>
  -		<applications>
  -			<application loadondemand="true" name="sunspotdemo">
  -				<configuration name="portal">
  -					<auth-redirect>sunspotdemo-portal</auth-redirect>
  -					<portal-uri>sunspotdemo-portal</portal-uri>
  -					<profile-cache>true</profile-cache>
  -					<process-coplets-parallel>false</process-coplets-parallel>
  -					<default-coplet-timeout>10000</default-coplet-timeout> <!-- milliseconds -->
  -					<profile>
  -						<layout-base uri="profiles/layoutprofile.xml"/>
  -						<coplet-base uri="profiles/copletprofile.xml"/>
  -						<coplet-base-save uri="profiles/copletprofile.xml"/>
  -						<type-base uri="profiles/types.xml"/>
  -						<admin-type-base uri="profiles/admintypes.xml"/>
  -						<global-delta-load uri="profiles/globalprofile.xml"/>
  -						<global-delta-save uri="cocoon:raw:/sunspotdemoresource-saveglobalprofile"/>
  -						<role-delta-load uri="cocoon:raw:/sunspotdemoresource-roleprofile"/>
  -						<role-delta-save uri="cocoon:raw:/sunspotdemoresource-saveroleprofile"/>
  -						<user-delta-load uri="cocoon:raw:/sunspotdemoresource-userprofile"/>
  -						<user-delta-save uri="cocoon:raw:/sunspotdemoresource-saveuserprofile"/>
  -						<user-status-load uri="cocoon:raw:/sunspotdemoresource-userstatus"/>
  -						<user-status-save uri="cocoon:raw:/sunspotdemoresource-saveuserstatus"/>
  -					</profile>
  -				</configuration>
  -				<configuration name="single-role-user-management">
  -                    <load-users uri="cocoon:raw:/sunrise-loaduser"/>
  -                    <load-roles uri="cocoon:raw:/sunrise-roles"/>
  -                    <new-user uri="cocoon:raw:/sunrise-newuser"/>
  -                    <new-role uri="cocoon:raw:/sunrise-newrole"/>
  -                    <change-user uri="cocoon:raw:/sunrise-changeuser"/>
  -                    <delete-role uri="cocoon:raw:/sunrise-delrole"/>
  -                    <delete-user uri="cocoon:raw:/sunrise-deluser"/>
  -				</configuration>
  -			</application>
  -		</applications>
  -      </handler>
  -     </handlers>
  -   </authentication-manager>
  -  </map:component-configurations>
  -
  -  <map:pipeline>
  -
  -     
  -      <map:match pattern="">
  -        <map:redirect-to uri="sunspotdemoportal"/>
  -      </map:match>
  -
  -     <!-- This is the Cocoon Demo Portal Pipeline -->
  -	<map:match pattern="sunspotdemoportal">
  -		<map:act type="auth-loggedIn">
  -			<map:parameter name="handler" value="portalhandler"/> 
  -			<map:redirect-to uri="sunspotdemo-portal"/>
  -		</map:act>
  -		<map:generate src="resources/free/portal.xml"/>
  -		<map:transform src="styles/TO-html.xsl"/>
  -		<map:transform type="encodeURL"/>
  -		<map:serialize/>
  -	</map:match>
  -
  -	<!-- images -->
  -	 <map:match pattern="sunspotdemoimg-*.gif">
  -		<map:read mime-type="image/gif" src="images/{1}.gif"/>
  -	</map:match>
  -	<map:match pattern="sunspotdemoimg-*.jpg">
  -    		<map:read mime-type="image/jpg" src="images/{1}.jpg"/>
  -   	</map:match>
  -
  -	<!-- free sites -->
  -	<map:match pattern="sunspotdemofree-login">
  -		<map:act type="auth-loggedIn">
  -			<map:parameter name="handler" value="portalhandler"/> 
  -			<map:redirect-to uri="sunspotdemo-portal"/>
  -		</map:act>
  -		<map:generate src="resources/free/login.xml"/>
  -		<map:transform src="styles/login-html.xsl"/>
  -		<map:transform src="styles/TO-html.xsl"/>
  -		<map:transform type="encodeURL"/>
  -		<map:serialize/>
  -	</map:match>
  -	<map:match pattern="sunspotdemofree-auth">
  -		<map:act type="auth-loggedIn">
  -			<map:parameter name="handler" value="portalhandler"/> 
  -			<map:redirect-to uri="sunspotdemo-loggedin"/>
  -		</map:act>
  -  	     	<map:act type="auth-login">
  -	      	<map:parameter name="handler" value="portalhandler"/>
  -			<map:parameter name="parameter_name" value="{request-param:name}"/>
  -			<map:parameter name="parameter_password" value="{request-param:password}"/>
  -  			<map:redirect-to uri="sunspotdemo-portal"/>
  -	      </map:act>
  -		<map:generate src="resources/free/auth.xml"/>
  -		<map:transform src="styles/TO-html.xsl"/>
  -		<map:transform type="encodeURL"/>
  -		<map:serialize/>
  -	</map:match>
  -	<map:match pattern="sunspotdemofree-*">
  -		<map:act type="auth-loggedIn">
  -			<map:parameter name="handler" value="portalhandler"/> 
  -			<map:redirect-to uri="sunspotdemo-portal"/>
  -		</map:act>
  -		<map:generate src="resources/free/{1}.xml"/>
  -		<map:transform src="styles/TO-html.xsl"/>
  -		<map:transform type="encodeURL"/>
  -		<map:serialize/>
  -	</map:match>
  -
  -      <map:match pattern="sunspotdemo**">
  -		<map:act type="auth-protect">
  -			<map:parameter name="handler" value="portalhandler"/> 
  -			<map:parameter name="application" value="sunspotdemo"/> 
  -	
  -			<map:match pattern="sunspotdemoresource-save*">
  -				<map:generate src="resources/save{1}.xml"/>
  -				<map:transform type="session"/>
  -				<map:transform type="cinclude"/>
  -				<map:transform type="write-source"/>
  -				<map:serialize type="xml"/>
  -			</map:match>
  -			<map:match pattern="sunspotdemoresource-*">
  -				<map:generate src="resources/{1}.xml"/>
  -				<map:transform type="session"/>
  -				<map:transform type="cinclude"/>
  -				<map:transform type="write-source"/>
  -				<map:transform src="styles/portal.xsl"/>
  -				<map:serialize type="xml"/>
  -			</map:match>
  -
  -		<!-- sunlets -->
  -			<map:match pattern="sunspotdemosunlet-onlinesundn.xml"> 
  -				<map:generate src="http://www.s-und-n.de/aktuelles/news.xml"/>
  -				<map:transform src="styles/sunLet_sundnNews.xsl"/>
  -				<map:serialize type="xml"/>
  -			</map:match>
  -
  -			<map:match pattern="sunspotdemosunlet-online-*.xml"> 
  -				<map:generate src="http://p.moreover.com/cgi-local/page?index_{1}+xml"/>
  -				<map:transform src="styles/sunLet_MoreoverDotCom.xsl"/>
  -				<map:serialize type="xml"/>
  -			</map:match>
  -			<map:match pattern="sunspotdemosunlet-customnews">
  -				<map:generate src="resources/auth/sunlet-customnews.xml"/>
  -				<map:transform type="session"/>
  -				<map:transform type="cinclude"/>
  -				<map:transform src="styles/sunLet_MoreoverDotCom.xsl"/>
  -				<map:serialize type="xml"/> 
  -			</map:match>
  -			<map:match pattern="sunspotdemosunletconf-*"> 
  -				<map:generate src="resources/auth/sunletconfig-{1}.xml"/>
  -				<map:transform type="session"/>
  -  			    <map:transform type="cinclude"/>
  -				<map:transform src="styles/sunletconf.xsl"/>
  -				<map:serialize type="xml"/>
  -			</map:match>
  -
  -			<map:match pattern="sunspotdemosunlet-*.xml"> 
  -				<map:generate src="resources/auth/sunlet-{1}.xml"/>
  -				<map:serialize type="xml"/>
  -			</map:match>
  -					
  -
  -		<!-- auth sites -->
  -
  -			<map:match pattern="sunspotdemo-conf">
  -				<map:generate type="portal-conf"/>
  -				<map:transform src="styles/portalconfHTML.xsl"/>
  -				<map:transform type="encodeURL"/>
  -				<map:serialize/>
  -			</map:match>
  -			<map:match pattern="sunspotdemo-adminconf">
  -				<!-- This pipeline can only be accessed if the current user is
  -                             allowed to configure the 'administration' coplet -->
  -				<map:act type="portal-auth">
  -					<map:parameter name="coplet" value="administration"/>
  -				</map:act>
  -				<map:generate src="admin" type="portal-conf"/>
  -				<map:transform src="styles/portalconfHTML.xsl"/>
  -				<map:transform type="encodeURL"/>
  -				<map:serialize/>
  -			</map:match> 
  -			<map:match pattern="sunspotdemo-sunriseconf">
  -				<!-- This pipeline can only be accessed if the current user is
  -                             allowed to configure the 'administration' coplet -->
  -				<map:act type="portal-auth">
  -					<map:parameter name="coplet" value="administration"/>
  -				</map:act>
  -				<map:generate type="auth-conf"/>
  -				<map:transform src="styles/sunriseconfHTML.xsl"/>
  -				<map:transform type="encodeURL"/>
  -				<map:serialize/>
  -			</map:match> 
  -			<map:match pattern="sunspotdemo-sunriseedit">
  -				<map:generate src="user" type="auth-conf"/>
  -				<map:transform src="styles/sunriseeditHTML.xsl"/>
  -				<map:transform type="encodeURL"/>
  -				<map:serialize/>
  -			</map:match> 
  -			<map:match pattern="sunspotdemo-portlets">
  -				<map:generate type="portal"/>
  -				<map:select type="browser">
  -					<map:when test="explorer">
  -						<map:transform src="styles/portalHTML.xsl"/>
  -					</map:when>
  -					<map:when test="netscape">
  -						<map:transform src="styles/portalHTML-Netscape.xsl"/>
  -					</map:when>
  -					<map:otherwise>
  -						<map:transform src="styles/portalHTML.xsl"/>
  -					</map:otherwise>
  -				</map:select>
  -				<map:transform type="encodeURL"/>
  -				<map:serialize/>
  -			</map:match>
  -			<map:match pattern="sunspotdemo-logout">
  -				<map:act type="auth-logout"/>
  -				<map:generate src="resources/auth/logout.xml"/>
  -				<map:transform src="styles/TO-html.xsl"/>
  -				<map:transform type="encodeURL"/>
  -				<map:serialize/>
  -			</map:match>
  -			<map:match pattern="sunspotdemo-*">
  -				<map:generate src="resources/auth/{1}.xml"/>
  -				<map:transform type="session"/>
  -     			<map:transform type="cinclude"/>
  -				<map:transform type="write-source"/>
  -				<map:transform src="styles/TO-html.xsl"/>
  -				<map:transform type="encodeURL"/>
  -				<map:serialize/>
  -			</map:match>
  -		</map:act>
  -    </map:match>
  -
  -  </map:pipeline>
  -
  -  <map:pipeline internal-only="true">
  -    <!-- This is the Cocoon Demo Portal Pipeline              -->
  -	<map:match pattern="sunrise-*">
  -		<!-- authentication -->
  -		<map:match pattern="sunrise-authuser">
  -			<map:generate src="resources/sunrise-user.xml"/>
  -			<map:transform src="styles/sunrise-user.xsl">
  -   				<map:parameter name="use-request-parameters" value="true"/>
  -                  </map:transform>
  -			<map:serialize type="xml"/>
  -		</map:match>
  -
  -		<map:match pattern="sunrise-changeuser">
  -			<map:generate src="resources/sunrise-changeuser.xml"/>
  -			<map:transform type="session"/>
  -			<map:transform type="cinclude"/>
  -			<map:transform src="styles/changeuser.xsl"/>
  -			<map:transform type="write-source"/>
  -			<map:transform src="styles/portal.xsl"/>
  -			<map:serialize type="xml"/>
  -		</map:match>
  -
  -		<map:match pattern="sunrise*">
  -			<map:generate src="resources/sunrise{1}.xml"/>
  -			<map:transform type="session"/>
  -			<map:transform type="cinclude"/>
  -			<map:transform type="write-source"/>
  -			<map:transform src="styles/portal.xsl"/>
  -			<map:serialize type="xml"/>
  -		</map:match>
  -	</map:match>
  -  </map:pipeline>
  -
  - </map:pipelines>
  -
  -</map:sitemap>
  -
  -<!-- end of file -->
  +<?xml version="1.0"?>
  +
  +<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  +<!-- =========================== Components ================================ -->
  +
  +  <map:components>
  +    <map:generators default="file"/>
  +    <map:transformers default="xslt"/>
  +    <map:readers default="resource"/>
  +    <map:serializers default="html"/>
  +    <map:matchers default="wildcard"/>
  +    <map:selectors default="browser"/>
  +  </map:components>
  +
  +<!-- =========================== Pipelines ================================= -->
  +
  +  <map:pipelines>
  +    <map:component-configurations>
  +      <authentication-manager>
  +        <handlers>
  +          <handler name="portalhandler">
  +            <redirect-to uri="cocoon:/sunspotdemoportal"/>
  +            <authentication uri="cocoon:raw:/sunrise-authuser"/>
  +            <applications>
  +              <application loadondemand="true" name="sunspotdemo">
  +                <configuration name="portal">
  +                  <auth-redirect>sunspotdemo-portal</auth-redirect>
  +                  <portal-uri>sunspotdemo-portal</portal-uri>
  +                  <profile-cache>true</profile-cache>
  +                  <process-coplets-parallel>false</process-coplets-parallel>
  +                  <default-coplet-timeout>10000</default-coplet-timeout> <!-- milliseconds -->
  +                  <profile>
  +                    <layout-base uri="profiles/layoutprofile.xml"/>
  +                    <coplet-base uri="profiles/copletprofile.xml"/>
  +                    <coplet-base-save uri="profiles/copletprofile.xml"/>
  +                    <type-base uri="profiles/types.xml"/>
  +                    <admin-type-base uri="profiles/admintypes.xml"/>
  +                    <global-delta-load uri="profiles/globalprofile.xml"/>
  +                    <global-delta-save uri="cocoon:raw:/sunspotdemoresource-saveglobalprofile"/>
  +                    <role-delta-load uri="cocoon:raw:/sunspotdemoresource-roleprofile"/>
  +                    <role-delta-save uri="cocoon:raw:/sunspotdemoresource-saveroleprofile"/>
  +                    <user-delta-load uri="cocoon:raw:/sunspotdemoresource-userprofile"/>
  +                    <user-delta-save uri="cocoon:raw:/sunspotdemoresource-saveuserprofile"/>
  +                    <user-status-load uri="cocoon:raw:/sunspotdemoresource-userstatus"/>
  +                    <user-status-save uri="cocoon:raw:/sunspotdemoresource-saveuserstatus"/>
  +                  </profile>
  +                </configuration>
  +                <configuration name="single-role-user-management">
  +                  <load-users uri="cocoon:raw:/sunrise-loaduser"/>
  +                  <load-roles uri="cocoon:raw:/sunrise-roles"/>
  +                  <new-user uri="cocoon:raw:/sunrise-newuser"/>
  +                  <new-role uri="cocoon:raw:/sunrise-newrole"/>
  +                  <change-user uri="cocoon:raw:/sunrise-changeuser"/>
  +                  <delete-role uri="cocoon:raw:/sunrise-delrole"/>
  +                  <delete-user uri="cocoon:raw:/sunrise-deluser"/>
  +                </configuration>
  +              </application>
  +            </applications>
  +          </handler>
  +        </handlers>
  +      </authentication-manager>
  +    </map:component-configurations>
  +
  +    <map:pipeline>
  +      <map:match pattern="">
  +        <map:redirect-to uri="sunspotdemoportal"/>
  +      </map:match>
  +
  +      <!-- This is the Cocoon Demo Portal Pipeline -->
  +      <map:match pattern="sunspotdemoportal">
  +        <map:act type="auth-loggedIn">
  +            <map:parameter name="handler" value="portalhandler"/> 
  +            <map:redirect-to uri="sunspotdemo-portal"/>
  +        </map:act>
  +        <map:generate src="resources/free/portal.xml"/>
  +        <map:transform src="styles/TO-html.xsl"/>
  +        <map:transform type="encodeURL"/>
  +        <map:serialize/>
  +      </map:match>
  +
  +      <!-- images -->
  +      <map:match pattern="sunspotdemoimg-*.gif">
  +        <map:read mime-type="image/gif" src="images/{1}.gif"/>
  +      </map:match>
  +      <map:match pattern="sunspotdemoimg-*.jpg">
  +        <map:read mime-type="image/jpg" src="images/{1}.jpg"/>
  +      </map:match>
  +
  +      <!-- free sites -->
  +      <map:match pattern="sunspotdemofree-login">
  +        <map:act type="auth-loggedIn">
  +          <map:parameter name="handler" value="portalhandler"/> 
  +          <map:redirect-to uri="sunspotdemo-portal"/>
  +        </map:act>
  +        <map:generate src="resources/free/login.xml"/>
  +        <map:transform src="styles/login-html.xsl"/>
  +        <map:transform src="styles/TO-html.xsl"/>
  +        <map:transform type="encodeURL"/>
  +        <map:serialize/>
  +      </map:match>
  +      <map:match pattern="sunspotdemofree-auth">
  +        <map:act type="auth-loggedIn">
  +          <map:parameter name="handler" value="portalhandler"/> 
  +          <map:redirect-to uri="sunspotdemo-loggedin"/>
  +        </map:act>
  +        <map:act type="auth-login">
  +          <map:parameter name="handler" value="portalhandler"/>
  +          <map:parameter name="parameter_name" value="{request-param:name}"/>
  +          <map:parameter name="parameter_password" value="{request-param:password}"/>
  +          <map:redirect-to uri="sunspotdemo-portal"/>
  +        </map:act>
  +        <map:generate src="resources/free/auth.xml"/>
  +        <map:transform src="styles/TO-html.xsl"/>
  +        <map:transform type="encodeURL"/>
  +        <map:serialize/>
  +      </map:match>
  +      <map:match pattern="sunspotdemofree-*">
  +        <map:act type="auth-loggedIn">
  +          <map:parameter name="handler" value="portalhandler"/> 
  +          <map:redirect-to uri="sunspotdemo-portal"/>
  +        </map:act>
  +        <map:generate src="resources/free/{1}.xml"/>
  +        <map:transform src="styles/TO-html.xsl"/>
  +        <map:transform type="encodeURL"/>
  +        <map:serialize/>
  +      </map:match>
  +
  +      <map:match pattern="sunspotdemo**">
  +        <map:act type="auth-protect">
  +          <map:parameter name="handler" value="portalhandler"/> 
  +          <map:parameter name="application" value="sunspotdemo"/> 
  +    
  +          <map:match pattern="sunspotdemoresource-save*">
  +            <map:generate src="resources/save{1}.xml"/>
  +            <map:transform type="session"/>
  +            <map:transform type="cinclude"/>
  +            <map:transform type="write-source"/>
  +            <map:serialize type="xml"/>
  +          </map:match>
  +          <map:match pattern="sunspotdemoresource-*">
  +            <map:generate src="resources/{1}.xml"/>
  +            <map:transform type="session"/>
  +            <map:transform type="cinclude"/>
  +            <map:transform type="write-source"/>
  +            <map:transform src="styles/portal.xsl"/>
  +            <map:serialize type="xml"/>
  +          </map:match>
  +
  +        <!-- sunlets -->
  +          <map:match pattern="sunspotdemosunlet-onlinesundn.xml"> 
  +            <map:generate src="http://www.s-und-n.de/aktuelles/news.xml"/>
  +            <map:transform src="styles/sunLet_sundnNews.xsl"/>
  +            <map:serialize type="xml"/>
  +          </map:match>
  +
  +          <map:match pattern="sunspotdemosunlet-online-*.xml"> 
  +            <map:generate src="http://p.moreover.com/cgi-local/page?index_{1}+xml"/>
  +            <map:transform src="styles/sunLet_MoreoverDotCom.xsl"/>
  +            <map:serialize type="xml"/>
  +          </map:match>
  +          <map:match pattern="sunspotdemosunlet-customnews">
  +            <map:generate src="resources/auth/sunlet-customnews.xml"/>
  +            <map:transform type="session"/>
  +            <map:transform type="cinclude"/>
  +            <map:transform src="styles/sunLet_MoreoverDotCom.xsl"/>
  +            <map:serialize type="xml"/> 
  +          </map:match>
  +          <map:match pattern="sunspotdemosunletconf-*"> 
  +            <map:generate src="resources/auth/sunletconfig-{1}.xml"/>
  +            <map:transform type="session"/>
  +              <map:transform type="cinclude"/>
  +            <map:transform src="styles/sunletconf.xsl"/>
  +            <map:serialize type="xml"/>
  +          </map:match>
  +
  +          <map:match pattern="sunspotdemosunlet-*.xml"> 
  +            <map:generate src="resources/auth/sunlet-{1}.xml"/>
  +            <map:serialize type="xml"/>
  +          </map:match>
  +                    
  +
  +        <!-- auth sites -->
  +
  +          <map:match pattern="sunspotdemo-conf">
  +            <map:generate type="portal-conf"/>
  +            <map:transform src="styles/portalconfHTML.xsl"/>
  +            <map:transform type="encodeURL"/>
  +            <map:serialize/>
  +          </map:match>
  +          <map:match pattern="sunspotdemo-adminconf">
  +            <!-- This pipeline can only be accessed if the current user is
  +                         allowed to configure the 'administration' coplet -->
  +            <map:act type="portal-auth">
  +              <map:parameter name="coplet" value="administration"/>
  +            </map:act>
  +            <map:generate src="admin" type="portal-conf"/>
  +            <map:transform src="styles/portalconfHTML.xsl"/>
  +            <map:transform type="encodeURL"/>
  +            <map:serialize/>
  +          </map:match> 
  +          <map:match pattern="sunspotdemo-sunriseconf">
  +            <!-- This pipeline can only be accessed if the current user is
  +                         allowed to configure the 'administration' coplet -->
  +            <map:act type="portal-auth">
  +              <map:parameter name="coplet" value="administration"/>
  +            </map:act>
  +            <map:generate type="auth-conf"/>
  +            <map:transform src="styles/sunriseconfHTML.xsl"/>
  +            <map:transform type="encodeURL"/>
  +            <map:serialize/>
  +          </map:match> 
  +          <map:match pattern="sunspotdemo-sunriseedit">
  +            <map:generate src="user" type="auth-conf"/>
  +            <map:transform src="styles/sunriseeditHTML.xsl"/>
  +            <map:transform type="encodeURL"/>
  +            <map:serialize/>
  +          </map:match> 
  +          <map:match pattern="sunspotdemo-portlets">
  +            <map:generate type="portal"/>
  +            <map:select type="browser">
  +              <map:when test="explorer">
  +                <map:transform src="styles/portalHTML.xsl"/>
  +              </map:when>
  +              <map:when test="netscape">
  +                <map:transform src="styles/portalHTML-Netscape.xsl"/>
  +              </map:when>
  +              <map:otherwise>
  +                <map:transform src="styles/portalHTML.xsl"/>
  +              </map:otherwise>
  +            </map:select>
  +            <map:transform type="encodeURL"/>
  +            <map:serialize/>
  +          </map:match>
  +          <map:match pattern="sunspotdemo-logout">
  +            <map:act type="auth-logout"/>
  +            <map:generate src="resources/auth/logout.xml"/>
  +            <map:transform src="styles/TO-html.xsl"/>
  +            <map:transform type="encodeURL"/>
  +            <map:serialize/>
  +          </map:match>
  +          <map:match pattern="sunspotdemo-*">
  +            <map:generate src="resources/auth/{1}.xml"/>
  +            <map:transform type="session"/>
  +            <map:transform type="cinclude"/>
  +            <map:transform type="write-source"/>
  +            <map:transform src="styles/TO-html.xsl"/>
  +            <map:transform type="encodeURL"/>
  +            <map:serialize/>
  +          </map:match>
  +        </map:act>
  +      </map:match>
  +    </map:pipeline>
  +
  +    <map:pipeline internal-only="true">
  +      <!-- This is the Cocoon Demo Portal Pipeline              -->
  +      <map:match pattern="sunrise-*">
  +        <!-- authentication -->
  +        <map:match pattern="sunrise-authuser">
  +          <map:generate src="resources/sunrise-user.xml"/>
  +          <map:transform src="styles/sunrise-user.xsl">
  +            <map:parameter name="use-request-parameters" value="true"/>
  +          </map:transform>
  +          <map:serialize type="xml"/>
  +        </map:match>
  +
  +        <map:match pattern="sunrise-changeuser">
  +          <map:generate src="resources/sunrise-changeuser.xml"/>
  +          <map:transform type="session"/>
  +          <map:transform type="cinclude"/>
  +          <map:transform src="styles/changeuser.xsl"/>
  +          <map:transform type="write-source"/>
  +          <map:transform src="styles/portal.xsl"/>
  +          <map:serialize type="xml"/>
  +        </map:match>
  +
  +        <map:match pattern="sunrise*">
  +          <map:generate src="resources/sunrise{1}.xml"/>
  +          <map:transform type="session"/>
  +          <map:transform type="cinclude"/>
  +          <map:transform type="write-source"/>
  +          <map:transform src="styles/portal.xsl"/>
  +          <map:serialize type="xml"/>
  +        </map:match>
  +      </map:match>
  +    </map:pipeline>
  +  </map:pipelines>
  +</map:sitemap>
  +
  +<!-- end of file -->
  
  
  
  1.2       +218 -220  cocoon-2.1/src/blocks/portal-fw/samples/styles/TO-html.xsl
  
  Index: TO-html.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/TO-html.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TO-html.xsl	9 Mar 2003 00:05:31 -0000	1.1
  +++ TO-html.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,220 +1,218 @@
  -<?xml version="1.0"?>
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<!-- $Id$ 
  -
  -
  --->
  -
  -<xsl:template match="page">
  -   <html>
  -    <head>
  -     <title>
  -      <xsl:if test="@title"><xsl:value-of select="@title"/></xsl:if>
  -      <xsl:if test="not(@title)">Cocoon Portal</xsl:if>
  -     </title>
  -     <xsl:if test="@logout">
  -  	 <script language="JavaScript"> 
  -		function timeout() {
  -			window.setTimeout("test()", 1500); 
  -		}
  -		function test() {  
  -  			top.location.href = "sunspotdemofree-portal";
  -		} 
  -	 </script> 
  -     </xsl:if>
  -    </head>
  -     <xsl:apply-templates/>
  -   </html>
  -  </xsl:template>
  -
  -<xsl:template match="content">
  -    <body text="#0B2A51" link="#0B2A51" vlink="#666666">
  -		<xsl:apply-templates select="@*"/>
  -      <xsl:if test="/page/@logout">
  -        <xsl:attribute name="onLoad">timeout()</xsl:attribute>
  -      </xsl:if>
  -      <xsl:if test="/page/@bgcolor">
  -        <xsl:attribute name="bgcolor"><xsl:value-of select="/page/@bgcolor"/></xsl:attribute>
  -      </xsl:if>
  -      <xsl:if test="/page/@textcolor">
  -        <xsl:attribute name="text"><xsl:value-of select="/page/@textcolor"/></xsl:attribute>
  -      </xsl:if>
  -      <xsl:if test="/page/@background">
  -        <xsl:attribute name="background"><xsl:value-of select="/page/@background"/></xsl:attribute>
  -      </xsl:if>
  -      <xsl:apply-templates/>										
  -    </body>
  -</xsl:template>
  -
  -<xsl:template match="logoutcontent">
  -    <body text="#0B2A51" link="#0B2A51" vlink="#666666">
  -		<xsl:apply-templates select="@*"/>
  -      <xsl:if test="/page/@logout">
  -        <xsl:attribute name="onLoad">timeout()</xsl:attribute>
  -      </xsl:if>
  -      <xsl:if test="/page/@bgcolor">
  -        <xsl:attribute name="bgcolor"><xsl:value-of select="/page/@bgcolor"/></xsl:attribute>
  -      </xsl:if>
  -      <xsl:if test="/page/@textcolor">
  -        <xsl:attribute name="text"><xsl:value-of select="/page/@textcolor"/></xsl:attribute>
  -      </xsl:if>
  -      <xsl:if test="/page/@background">
  -        <xsl:attribute name="background"><xsl:value-of select="/page/@background"/></xsl:attribute>
  -      </xsl:if>
  -	<table border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%">
  -			<tr>
  -				<td height="100%" noWrap="" width="193" valign="top" bgcolor="#46627a">
  -					<img height="2" src="sunspotdemoimg-space.gif" width="1"/>
  -				</td>
  -				<td>
  -					<table border="0" width="100%" cellspacing="0" cellpadding="0">
  -						<xsl:attribute name="bgcolor">
  -							<xsl:value-of select="portalconf/layout-profile/portal/layouts/layout/background/color"/>
  -						</xsl:attribute>
  -							
  -							<tr>
  -								<td width="1%"><img src="sunspotdemoimg-space.gif" width="20" height="1"/></td>
  -								<td align="center">
  -									<img src="sunspotdemoimg-space.gif" height="20" width="1"/>
  -									<table border="0" width="100%">
  -										<tr>
  -											<td>	
  -      <xsl:apply-templates/>	
  -	</td>
  -										</tr>
  -									</table>
  -								</td>
  -								<td><img src="sunspotdemoimg-space.gif" width="20"/></td>
  -							</tr>
  -						</table>
  -					</td>
  -				</tr>
  -		</table>									
  -    </body>
  -</xsl:template>
  -
  -<xsl:template match="paragraph">
  -    <xsl:if test="@title">
  -      <font face="Arial, Helvetica, sans-serif" size="3">
  -	  	<b>
  -        <xsl:value-of select="@title"/>
  -		</b>
  -      </font>
  -    </xsl:if>								
  -	<p>
  -   	<font face="Arial, Helvetica, sans-serif" size="2">
  - 			<xsl:apply-templates/>	
  -	 </font>
  -   </p>
  -  </xsl:template>
  -
  -<xsl:template match="logoutparagraph">							
  -	<p>
  -   	<font face="Arial, Helvetica, sans-serif" size="2">
  - 			<xsl:apply-templates/>	
  -	 </font>
  -   </p>
  -  </xsl:template>
  -
  -<xsl:template match="pageset">
  -      <frameset border="0" frameborder="0" framespacing="0" noresize="">
  -        <xsl:if test="@rows">
  -          <xsl:attribute name="rows"><xsl:value-of select="@rows"/></xsl:attribute>
  -        </xsl:if>
  -        <xsl:if test="@columns">
  -          <xsl:attribute name="cols"><xsl:value-of select="@columns"/></xsl:attribute>
  -        </xsl:if>
  -        <xsl:apply-templates/>
  -      </frameset>
  -  </xsl:template>
  -
  -<xsl:template match="pagepart">
  -  <xsl:apply-templates/>
  -</xsl:template>
  -
  -<xsl:template match="part">  
  -    <frame frameborder="0" border="0" noresize="" marginHeight="0" marginwidth="0">
  -      <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  -      <xsl:attribute name="name"><xsl:value-of select="@title"/></xsl:attribute>
  -      <xsl:if test="@scrolling">
  -        <xsl:attribute name="scrolling"><xsl:value-of select="@scrolling"/></xsl:attribute>
  -      </xsl:if>
  -      <xsl:if test="@noresize">
  -        <xsl:attribute name="noresize"><xsl:value-of select="@noresize"/></xsl:attribute>
  -      </xsl:if>
  -    </frame>  
  -  </xsl:template>
  -
  -<xsl:template match="picture">
  -    <xsl:if test="action">
  -      <a href="{action/@url}">
  -        <img border="0">
  -          <xsl:attribute name="src"><xsl:value-of select="@url"/></xsl:attribute>
  -        </img>
  -      </a>
  -    </xsl:if>
  -    <xsl:if test="not(action)">    
  -      <img>
  -        <xsl:attribute name="src"><xsl:value-of select="@url"/></xsl:attribute>
  -      </img>
  -     </xsl:if>
  -  </xsl:template>
  -
  -<xsl:template match="picturedyn">
  -    <xsl:if test="action">
  -      <a href="{action/@url}">
  -        <img border="0">
  -          <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  -        </img>
  -      </a>
  -    </xsl:if>
  -    <xsl:if test="not(action)">    
  -      <img border="0">
  -        <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  -      </img>
  -     </xsl:if>
  -  </xsl:template>
  -
  -<xsl:template match="link">
  -    <a>
  -      <xsl:choose>
  -        <xsl:when test="starts-with(normalize-space(url), 'http')">
  -          <xsl:attribute name="target">_new</xsl:attribute>
  -        </xsl:when>
  -        <xsl:when test="target">
  -            <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
  -        </xsl:when>     
  -        <xsl:otherwise>
  -          <xsl:attribute name="target">Main</xsl:attribute>
  -        </xsl:otherwise>
  -      </xsl:choose>
  -    
  -      <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  -      <xsl:value-of select="normalize-space(text)"/>
  -    </a>
  -  </xsl:template>
  -
  -<xsl:template match="field">
  -	<td>
  -	<xsl:value-of select="@name"/>
  -	</td>
  -	<td>
  -		<input type="text" size="30">
  -        	<xsl:attribute name="name"><xsl:value-of select="@field"/></xsl:attribute>
  -        	<xsl:attribute name="value"><xsl:value-of select="@value"/></xsl:attribute>
  -		</input>
  -	</td>
  -  </xsl:template>
  -
  -<!-- Copy all and apply templates -->
  -
  -<xsl:template match="@*|node()">
  -   <xsl:copy>
  -    <xsl:apply-templates select="@*|node()" />
  -   </xsl:copy>
  -  </xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ 
  +
  +-->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<xsl:template match="page">
  +   <html>
  +    <head>
  +     <title>
  +      <xsl:if test="@title"><xsl:value-of select="@title"/></xsl:if>
  +      <xsl:if test="not(@title)">Cocoon Portal</xsl:if>
  +     </title>
  +     <xsl:if test="@logout">
  +  	 <script language="JavaScript"> 
  +		function timeout() {
  +			window.setTimeout("test()", 1500); 
  +		}
  +		function test() {  
  +  			top.location.href = "sunspotdemofree-portal";
  +		} 
  +	 </script> 
  +     </xsl:if>
  +    </head>
  +     <xsl:apply-templates/>
  +   </html>
  +  </xsl:template>
  +
  +<xsl:template match="content">
  +    <body text="#0B2A51" link="#0B2A51" vlink="#666666">
  +		<xsl:apply-templates select="@*"/>
  +      <xsl:if test="/page/@logout">
  +        <xsl:attribute name="onLoad">timeout()</xsl:attribute>
  +      </xsl:if>
  +      <xsl:if test="/page/@bgcolor">
  +        <xsl:attribute name="bgcolor"><xsl:value-of select="/page/@bgcolor"/></xsl:attribute>
  +      </xsl:if>
  +      <xsl:if test="/page/@textcolor">
  +        <xsl:attribute name="text"><xsl:value-of select="/page/@textcolor"/></xsl:attribute>
  +      </xsl:if>
  +      <xsl:if test="/page/@background">
  +        <xsl:attribute name="background"><xsl:value-of select="/page/@background"/></xsl:attribute>
  +      </xsl:if>
  +      <xsl:apply-templates/>										
  +    </body>
  +</xsl:template>
  +
  +<xsl:template match="logoutcontent">
  +    <body text="#0B2A51" link="#0B2A51" vlink="#666666">
  +		<xsl:apply-templates select="@*"/>
  +      <xsl:if test="/page/@logout">
  +        <xsl:attribute name="onLoad">timeout()</xsl:attribute>
  +      </xsl:if>
  +      <xsl:if test="/page/@bgcolor">
  +        <xsl:attribute name="bgcolor"><xsl:value-of select="/page/@bgcolor"/></xsl:attribute>
  +      </xsl:if>
  +      <xsl:if test="/page/@textcolor">
  +        <xsl:attribute name="text"><xsl:value-of select="/page/@textcolor"/></xsl:attribute>
  +      </xsl:if>
  +      <xsl:if test="/page/@background">
  +        <xsl:attribute name="background"><xsl:value-of select="/page/@background"/></xsl:attribute>
  +      </xsl:if>
  +	<table border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%">
  +			<tr>
  +				<td height="100%" noWrap="" width="193" valign="top" bgcolor="#46627a">
  +					<img height="2" src="sunspotdemoimg-space.gif" width="1"/>
  +				</td>
  +				<td>
  +					<table border="0" width="100%" cellspacing="0" cellpadding="0">
  +						<xsl:attribute name="bgcolor">
  +							<xsl:value-of select="portalconf/layout-profile/portal/layouts/layout/background/color"/>
  +						</xsl:attribute>
  +							
  +							<tr>
  +								<td width="1%"><img src="sunspotdemoimg-space.gif" width="20" height="1"/></td>
  +								<td align="center">
  +									<img src="sunspotdemoimg-space.gif" height="20" width="1"/>
  +									<table border="0" width="100%">
  +										<tr>
  +											<td>	
  +      <xsl:apply-templates/>	
  +	</td>
  +										</tr>
  +									</table>
  +								</td>
  +								<td><img src="sunspotdemoimg-space.gif" width="20"/></td>
  +							</tr>
  +						</table>
  +					</td>
  +				</tr>
  +		</table>									
  +    </body>
  +</xsl:template>
  +
  +  <xsl:template match="paragraph">
  +    <xsl:if test="@title">
  +      <font face="Arial, Helvetica, sans-serif" size="3">
  +	  	<b>
  +        <xsl:value-of select="@title"/>
  +		</b>
  +      </font>
  +    </xsl:if>								
  +	<p>
  +   	<font face="Arial, Helvetica, sans-serif" size="2">
  + 			<xsl:apply-templates/>	
  +	 </font>
  +   </p>
  +  </xsl:template>
  +
  +  <xsl:template match="logoutparagraph">							
  +	<p>
  +   	<font face="Arial, Helvetica, sans-serif" size="2">
  + 			<xsl:apply-templates/>	
  +	 </font>
  +   </p>
  +  </xsl:template>
  +
  +  <xsl:template match="pageset">
  +      <frameset border="0" frameborder="0" framespacing="0" noresize="">
  +        <xsl:if test="@rows">
  +          <xsl:attribute name="rows"><xsl:value-of select="@rows"/></xsl:attribute>
  +        </xsl:if>
  +        <xsl:if test="@columns">
  +          <xsl:attribute name="cols"><xsl:value-of select="@columns"/></xsl:attribute>
  +        </xsl:if>
  +        <xsl:apply-templates/>
  +      </frameset>
  +  </xsl:template>
  +
  +  <xsl:template match="pagepart">
  +    <xsl:apply-templates/>
  +  </xsl:template>
  +
  +  <xsl:template match="part">  
  +    <frame frameborder="0" border="0" noresize="" marginHeight="0" marginwidth="0">
  +      <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  +      <xsl:attribute name="name"><xsl:value-of select="@title"/></xsl:attribute>
  +      <xsl:if test="@scrolling">
  +        <xsl:attribute name="scrolling"><xsl:value-of select="@scrolling"/></xsl:attribute>
  +      </xsl:if>
  +      <xsl:if test="@noresize">
  +        <xsl:attribute name="noresize"><xsl:value-of select="@noresize"/></xsl:attribute>
  +      </xsl:if>
  +    </frame>  
  +  </xsl:template>
  +
  +  <xsl:template match="picture">
  +    <xsl:if test="action">
  +      <a href="{action/@url}">
  +        <img border="0">
  +          <xsl:attribute name="src"><xsl:value-of select="@url"/></xsl:attribute>
  +        </img>
  +      </a>
  +    </xsl:if>
  +    <xsl:if test="not(action)">    
  +      <img>
  +        <xsl:attribute name="src"><xsl:value-of select="@url"/></xsl:attribute>
  +      </img>
  +     </xsl:if>
  +  </xsl:template>
  +
  +  <xsl:template match="picturedyn">
  +    <xsl:if test="action">
  +      <a href="{action/@url}">
  +        <img border="0">
  +          <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  +        </img>
  +      </a>
  +    </xsl:if>
  +    <xsl:if test="not(action)">    
  +      <img border="0">
  +        <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  +      </img>
  +     </xsl:if>
  +  </xsl:template>
  +
  +  <xsl:template match="link">
  +    <a>
  +      <xsl:choose>
  +        <xsl:when test="starts-with(normalize-space(url), 'http')">
  +          <xsl:attribute name="target">_new</xsl:attribute>
  +        </xsl:when>
  +        <xsl:when test="target">
  +            <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
  +        </xsl:when>     
  +        <xsl:otherwise>
  +          <xsl:attribute name="target">Main</xsl:attribute>
  +        </xsl:otherwise>
  +      </xsl:choose>
  +    
  +      <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  +      <xsl:value-of select="normalize-space(text)"/>
  +    </a>
  +  </xsl:template>
  +
  +  <xsl:template match="field">
  +	<td>
  +	<xsl:value-of select="@name"/>
  +	</td>
  +	<td>
  +		<input type="text" size="30">
  +        	<xsl:attribute name="name"><xsl:value-of select="@field"/></xsl:attribute>
  +        	<xsl:attribute name="value"><xsl:value-of select="@value"/></xsl:attribute>
  +		</input>
  +	</td>
  +  </xsl:template>
  +
  +  <!-- Copy all and apply templates -->
  +  <xsl:template match="@*|node()">
  +   <xsl:copy>
  +    <xsl:apply-templates select="@*|node()" />
  +   </xsl:copy>
  +  </xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +26 -28    cocoon-2.1/src/blocks/portal-fw/samples/styles/changeuser.xsl
  
  Index: changeuser.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/changeuser.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- changeuser.xsl	9 Mar 2003 00:05:32 -0000	1.1
  +++ changeuser.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,28 +1,26 @@
  -<?xml version="1.0"?>
  -<!-- $Id$ 
  -
  --->
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<xsl:template match="password">
  -	<xsl:choose>
  -		<xsl:when test="normalize-space(new) = normalize-space(old)">
  -			<password><xsl:value-of select="normalize-space(old)"/></password>
  -		</xsl:when>
  -		<xsl:otherwise>
  -			<password><xsl:value-of select="normalize-space(hashed)"/></password>
  -		</xsl:otherwise>
  -	</xsl:choose>
  -</xsl:template>
  -
  -<!-- Copy all and apply templates -->
  -<xsl:template match="@*|node()">
  -	<xsl:copy>
  -		<xsl:apply-templates select="@*|node()" />
  -	</xsl:copy>
  -</xsl:template>
  -
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ -->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<xsl:template match="password">
  +	<xsl:choose>
  +		<xsl:when test="normalize-space(new) = normalize-space(old)">
  +			<password><xsl:value-of select="normalize-space(old)"/></password>
  +		</xsl:when>
  +		<xsl:otherwise>
  +			<password><xsl:value-of select="normalize-space(hashed)"/></password>
  +		</xsl:otherwise>
  +	</xsl:choose>
  +</xsl:template>
  +
  +<!-- Copy all and apply templates -->
  +<xsl:template match="@*|node()">
  +	<xsl:copy>
  +		<xsl:apply-templates select="@*|node()" />
  +	</xsl:copy>
  +</xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +23 -25    cocoon-2.1/src/blocks/portal-fw/samples/styles/load.xsl
  
  Index: load.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/load.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- load.xsl	9 Mar 2003 00:05:32 -0000	1.1
  +++ load.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,25 +1,23 @@
  -<?xml version="1.0"?>
  -<!-- $Id$ 
  -
  --->
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  - <xsl:template match="ROWSET">
  -  <xsl:apply-templates/>
  -  </xsl:template>
  -
  - <xsl:template match="ROW">
  -  <xsl:apply-templates/>
  -  </xsl:template>
  -  
  -  <!-- Copy all and apply templates -->
  -  <xsl:template match="@*|node()">
  -   <xsl:copy>
  -    <xsl:apply-templates select="@*|node()" />
  -   </xsl:copy>
  -  </xsl:template>
  -
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ -->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  + <xsl:template match="ROWSET">
  +  <xsl:apply-templates/>
  +  </xsl:template>
  +
  + <xsl:template match="ROW">
  +  <xsl:apply-templates/>
  +  </xsl:template>
  +  
  +  <!-- Copy all and apply templates -->
  +  <xsl:template match="@*|node()">
  +   <xsl:copy>
  +    <xsl:apply-templates select="@*|node()" />
  +   </xsl:copy>
  +  </xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +103 -104  cocoon-2.1/src/blocks/portal-fw/samples/styles/login-html.xsl
  
  Index: login-html.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/login-html.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- login-html.xsl	9 Mar 2003 00:05:32 -0000	1.1
  +++ login-html.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,104 +1,103 @@
  -<?xml version="1.0"?>
  -
  -<xsl:stylesheet version="1.0"
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<!-- $Id$ 
  -
  - Description: Login page to HTML
  -
  --->
  -
  -<!-- Next transformation is "TO-html.xsl" -->
  -
  -<xsl:template match="content">
  -	<content background="sunspotdemoimg-bg_menue1.gif">
  -		<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="305"><tbody>
  -		<tr>
  -			<td>
  -				<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
  -					<tr>
  -						<td bgColor="#46627a" vAlign="middle" width="15">
  -                    						<img height="1" src="sunspotdemoimg-space.gif" width="15"/>
  -                  					</td>
  -                  					<td bgColor="#46627a" align="center">
  -                    						<font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="2">
  -                      							<b>
  -                        							<center>Cocoon Portal Login</center>
  -                      							</b>
  -                    						</font>
  -                  					</td>
  -                				</tr>
  -                				<tr>
  -                  					<td bgColor="#cccccc" width="15">
  -				  			<IMG height="1" src="sunspotdemoimg-space.gif" width="15"/>
  -                  					</td>
  -                  					<td bgColor="#cccccc" align="center">
  -				  			<br/>
  -                        					<font face="Arial, Helvetica, sans-serif" size="2">
  -                          						<xsl:apply-templates/>
  -							</font>
  -							<br/>
  -                  					</td>
  -                				</tr>
  -                				<tr>
  -					            <td bgColor="#cccccc" width="15">
  -							<img height="1" src="sunspotdemoimg-space.gif" width="15"/>
  -                  					</td>
  -                  					<td bgColor="#cccccc" align="center">
  -				  			<br/>
  -                        					<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
  -                          						If you are not already registered, use this guest login:
  -								<br/><br/>
  -								User:	<b>guest</b>
  -								Password:
  -								<b>guest</b>
  -								<br/><br/>Or use this administrator login:<br/>
  -								User:
  -								<b>cocoon</b>
  -								Password:
  -								<b>cocoon</b>
  -							</font>
  -							<br/><br/>
  -                  					</td>
  -                				</tr>
  -              			</tbody></table>
  -	          		</td>
  -        		</tr>
  -		</tbody></table>
  -	</content>
  -</xsl:template>
  -
  -<xsl:template match="form">
  -	<form method="post" target="_top"><xsl:attribute name="action"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  -      		<table>
  -		        <xsl:apply-templates select="field"/><br/>
  -		</table>
  -		<input type="submit" value="Login"></input>
  -	</form>
  -</xsl:template>
  -
  -<xsl:template match="field">
  -	<tr>
  -		<td>
  -			<font face="Arial, Helvetica, sans-serif" size="2"><xsl:value-of select="@description"/>:</font>
  -		</td>
  -		<td>
  -			<input>
  -				<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
  -				<xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
  -				<xsl:attribute name="size"><xsl:value-of select="@length"/></xsl:attribute>
  -			</input>
  -		</td>
  -	</tr>
  -</xsl:template>
  -
  -<!-- Copy all and apply templates -->
  -
  -<xsl:template match="@*|node()">
  -   <xsl:copy>
  -    <xsl:apply-templates select="@*|node()" />
  -   </xsl:copy>
  -  </xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!--+ $Id$ 
  +    |
  +    | Description: Login page to HTML
  +    |
  +    +-->
  +
  +<xsl:stylesheet version="1.0"
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<!-- Next transformation is "TO-html.xsl" -->
  +
  +<xsl:template match="content">
  +	<content background="sunspotdemoimg-bg_menue1.gif">
  +		<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="305"><tbody>
  +		<tr>
  +			<td>
  +				<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
  +					<tr>
  +						<td bgColor="#46627a" vAlign="middle" width="15">
  +                    						<img height="1" src="sunspotdemoimg-space.gif" width="15"/>
  +                  					</td>
  +                  					<td bgColor="#46627a" align="center">
  +                    						<font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="2">
  +                      							<b>
  +                        							<center>Cocoon Portal Login</center>
  +                      							</b>
  +                    						</font>
  +                  					</td>
  +                				</tr>
  +                				<tr>
  +                  					<td bgColor="#cccccc" width="15">
  +				  			<IMG height="1" src="sunspotdemoimg-space.gif" width="15"/>
  +                  					</td>
  +                  					<td bgColor="#cccccc" align="center">
  +				  			<br/>
  +                        					<font face="Arial, Helvetica, sans-serif" size="2">
  +                          						<xsl:apply-templates/>
  +							</font>
  +							<br/>
  +                  					</td>
  +                				</tr>
  +                				<tr>
  +					            <td bgColor="#cccccc" width="15">
  +							<img height="1" src="sunspotdemoimg-space.gif" width="15"/>
  +                  					</td>
  +                  					<td bgColor="#cccccc" align="center">
  +				  			<br/>
  +                        					<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
  +                          						If you are not already registered, use this guest login:
  +								<br/><br/>
  +								User:	<b>guest</b>
  +								Password:
  +								<b>guest</b>
  +								<br/><br/>Or use this administrator login:<br/>
  +								User:
  +								<b>cocoon</b>
  +								Password:
  +								<b>cocoon</b>
  +							</font>
  +							<br/><br/>
  +                  					</td>
  +                				</tr>
  +              			</tbody></table>
  +	          		</td>
  +        		</tr>
  +		</tbody></table>
  +	</content>
  +</xsl:template>
  +
  +<xsl:template match="form">
  +	<form method="post" target="_top"><xsl:attribute name="action"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  +      		<table>
  +		        <xsl:apply-templates select="field"/><br/>
  +		</table>
  +		<input type="submit" value="Login"></input>
  +	</form>
  +</xsl:template>
  +
  +<xsl:template match="field">
  +	<tr>
  +		<td>
  +			<font face="Arial, Helvetica, sans-serif" size="2"><xsl:value-of select="@description"/>:</font>
  +		</td>
  +		<td>
  +			<input>
  +				<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
  +				<xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
  +				<xsl:attribute name="size"><xsl:value-of select="@length"/></xsl:attribute>
  +			</input>
  +		</td>
  +	</tr>
  +</xsl:template>
  +
  +  <!-- Copy all and apply templates -->
  +  <xsl:template match="@*|node()">
  +   <xsl:copy>
  +    <xsl:apply-templates select="@*|node()" />
  +   </xsl:copy>
  +  </xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +148 -149  cocoon-2.1/src/blocks/portal-fw/samples/styles/portal.xsl
  
  Index: portal.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/portal.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- portal.xsl	9 Mar 2003 00:05:32 -0000	1.1
  +++ portal.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,149 +1,148 @@
  -<?xml version="1.0"?>
  -<!-- $Id$ 
  -
  -
  --->
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<xsl:template match="ROWSET">
  -	<xsl:apply-templates/>
  -</xsl:template>
  -
  -<xsl:template match="ROW">
  -	<xsl:apply-templates/>
  -</xsl:template>
  -
  -<xsl:template match="userdelta">
  -	<xsl:choose>
  -	<xsl:when test="user-delta">
  -            <xsl:apply-templates select="user-delta"/>
  -	</xsl:when>
  -	<xsl:otherwise>
  -	<user-delta/>
  -	</xsl:otherwise>
  -	</xsl:choose>
  -</xsl:template>
  -
  -<xsl:template match="roledelta">
  -	<xsl:choose>
  -		<xsl:when test="*">
  -      	      <xsl:apply-templates/>
  -		</xsl:when>
  -		<xsl:otherwise>
  -			<role-delta/>
  -		</xsl:otherwise>
  -	</xsl:choose>
  -</xsl:template>
  -
  -<xsl:template match="statusprofile">
  -	<xsl:choose>
  -		<xsl:when test="*">
  -      	      <xsl:apply-templates/>
  -		</xsl:when>
  -		<xsl:otherwise>
  -			<status-profile/>
  -		</xsl:otherwise>
  -	</xsl:choose>
  -</xsl:template>
  -
  -
  -<xsl:template match="loaduser">
  -	<xsl:apply-templates select="authentication/users"/>
  -</xsl:template>
  -
  -
  -<xsl:template match="authentication/users">
  -	<users>
  -		<xsl:for-each select="user">
  -			<xsl:call-template name="includeuser"/>
  -		</xsl:for-each>
  -	</users>
  -</xsl:template>
  -
  -
  -<xsl:template name="includeuser">
  -	<xsl:variable name="type"><xsl:value-of select="normalize-space(ancestor::loaduser/info/type)"/></xsl:variable>
  -	<xsl:variable name="name"><xsl:value-of select="normalize-space(ancestor::loaduser/info/ID)"/></xsl:variable>
  -  	<xsl:variable name="role"><xsl:value-of select="normalize-space(ancestor::loaduser/info/role)"/></xsl:variable>
  -	
  -	<xsl:choose>
  -		<xsl:when test="normalize-space(role) = $role and ($type='users' or normalize-space(name) = $name)"> 
  -			<user>
  -				<ID><xsl:value-of select="name"/></ID>
  -				<role><xsl:value-of select="role"/></role>
  -				<data>
  -					<password><xsl:value-of select="password"/></password>
  -					<name><xsl:value-of select="name"/></name>
  -					<role><xsl:value-of select="role"/></role>
  -					<ID><xsl:value-of select="name"/></ID>
  -					<user><xsl:value-of select="name"/></user>
  -					<title><xsl:value-of select="title"/></title>
  -					<firstname><xsl:value-of select="firstname"/></firstname>
  -					<lastname><xsl:value-of select="lastname"/></lastname>
  -					<company><xsl:value-of select="company"/></company>
  -					<street><xsl:value-of select="street"/></street>
  -					<zipcode><xsl:value-of select="zipcode"/></zipcode>
  -					<city><xsl:value-of select="city"/></city>
  -					<country><xsl:value-of select="country"/></country>
  -					<phone><xsl:value-of select="phone"/></phone>
  -					<fax><xsl:value-of select="fax"/></fax>
  -					<email><xsl:value-of select="email"/></email>
  -					<bankid><xsl:value-of select="bankid"/></bankid>
  -					<bankname><xsl:value-of select="bankname"/></bankname>
  -					<accountid><xsl:value-of select="accountid"/></accountid>
  -				</data>
  -			</user>
  -		</xsl:when>
  -		<xsl:when test="$type='users' and string-length($role) = 0">
  -			<user>
  -				<ID><xsl:value-of select="name"/></ID>
  -				<role><xsl:value-of select="role"/></role>
  -				<data>
  -					<password><xsl:value-of select="password"/></password>
  -					<name><xsl:value-of select="name"/></name>
  -					<role><xsl:value-of select="role"/></role>
  -					<ID><xsl:value-of select="name"/></ID>
  -					<user><xsl:value-of select="name"/></user>
  -					<title><xsl:value-of select="title"/></title>
  -					<firstname><xsl:value-of select="firstname"/></firstname>
  -					<lastname><xsl:value-of select="lastname"/></lastname>
  -					<company><xsl:value-of select="company"/></company>
  -					<street><xsl:value-of select="street"/></street>
  -					<zipcode><xsl:value-of select="zipcode"/></zipcode>
  -					<city><xsl:value-of select="city"/></city>
  -					<country><xsl:value-of select="country"/></country>
  -					<phone><xsl:value-of select="phone"/></phone>
  -					<fax><xsl:value-of select="fax"/></fax>
  -					<email><xsl:value-of select="email"/></email>
  -					<bankid><xsl:value-of select="bankid"/></bankid>
  -					<bankname><xsl:value-of select="bankname"/></bankname>
  -					<accountid><xsl:value-of select="accountid"/></accountid>
  -				</data>
  -			</user>
  -		</xsl:when>
  -	</xsl:choose>
  -</xsl:template>
  -
  -<xsl:template match="role">
  -	<xsl:apply-templates select="role-delta"/>
  -</xsl:template>
  -
  -<xsl:template match="roles">
  -	<roles>
  -		<xsl:for-each select="role">
  -			<role><xsl:value-of select="."/></role>
  -		</xsl:for-each>
  -	</roles>
  -</xsl:template>
  -
  -<!-- Copy all and apply templates -->
  -<xsl:template match="@*|node()">
  -	<xsl:copy>
  -		<xsl:apply-templates select="@*|node()" />
  -	</xsl:copy>
  -</xsl:template>
  -
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ 
  +
  +-->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<xsl:template match="ROWSET">
  +	<xsl:apply-templates/>
  +</xsl:template>
  +
  +<xsl:template match="ROW">
  +	<xsl:apply-templates/>
  +</xsl:template>
  +
  +<xsl:template match="userdelta">
  +	<xsl:choose>
  +	<xsl:when test="user-delta">
  +            <xsl:apply-templates select="user-delta"/>
  +	</xsl:when>
  +	<xsl:otherwise>
  +	<user-delta/>
  +	</xsl:otherwise>
  +	</xsl:choose>
  +</xsl:template>
  +
  +<xsl:template match="roledelta">
  +	<xsl:choose>
  +		<xsl:when test="*">
  +      	      <xsl:apply-templates/>
  +		</xsl:when>
  +		<xsl:otherwise>
  +			<role-delta/>
  +		</xsl:otherwise>
  +	</xsl:choose>
  +</xsl:template>
  +
  +<xsl:template match="statusprofile">
  +	<xsl:choose>
  +		<xsl:when test="*">
  +      	      <xsl:apply-templates/>
  +		</xsl:when>
  +		<xsl:otherwise>
  +			<status-profile/>
  +		</xsl:otherwise>
  +	</xsl:choose>
  +</xsl:template>
  +
  +
  +<xsl:template match="loaduser">
  +	<xsl:apply-templates select="authentication/users"/>
  +</xsl:template>
  +
  +
  +<xsl:template match="authentication/users">
  +	<users>
  +		<xsl:for-each select="user">
  +			<xsl:call-template name="includeuser"/>
  +		</xsl:for-each>
  +	</users>
  +</xsl:template>
  +
  +
  +<xsl:template name="includeuser">
  +	<xsl:variable name="type"><xsl:value-of select="normalize-space(ancestor::loaduser/info/type)"/></xsl:variable>
  +	<xsl:variable name="name"><xsl:value-of select="normalize-space(ancestor::loaduser/info/ID)"/></xsl:variable>
  +  	<xsl:variable name="role"><xsl:value-of select="normalize-space(ancestor::loaduser/info/role)"/></xsl:variable>
  +	
  +	<xsl:choose>
  +		<xsl:when test="normalize-space(role) = $role and ($type='users' or normalize-space(name) = $name)"> 
  +			<user>
  +				<ID><xsl:value-of select="name"/></ID>
  +				<role><xsl:value-of select="role"/></role>
  +				<data>
  +					<password><xsl:value-of select="password"/></password>
  +					<name><xsl:value-of select="name"/></name>
  +					<role><xsl:value-of select="role"/></role>
  +					<ID><xsl:value-of select="name"/></ID>
  +					<user><xsl:value-of select="name"/></user>
  +					<title><xsl:value-of select="title"/></title>
  +					<firstname><xsl:value-of select="firstname"/></firstname>
  +					<lastname><xsl:value-of select="lastname"/></lastname>
  +					<company><xsl:value-of select="company"/></company>
  +					<street><xsl:value-of select="street"/></street>
  +					<zipcode><xsl:value-of select="zipcode"/></zipcode>
  +					<city><xsl:value-of select="city"/></city>
  +					<country><xsl:value-of select="country"/></country>
  +					<phone><xsl:value-of select="phone"/></phone>
  +					<fax><xsl:value-of select="fax"/></fax>
  +					<email><xsl:value-of select="email"/></email>
  +					<bankid><xsl:value-of select="bankid"/></bankid>
  +					<bankname><xsl:value-of select="bankname"/></bankname>
  +					<accountid><xsl:value-of select="accountid"/></accountid>
  +				</data>
  +			</user>
  +		</xsl:when>
  +		<xsl:when test="$type='users' and string-length($role) = 0">
  +			<user>
  +				<ID><xsl:value-of select="name"/></ID>
  +				<role><xsl:value-of select="role"/></role>
  +				<data>
  +					<password><xsl:value-of select="password"/></password>
  +					<name><xsl:value-of select="name"/></name>
  +					<role><xsl:value-of select="role"/></role>
  +					<ID><xsl:value-of select="name"/></ID>
  +					<user><xsl:value-of select="name"/></user>
  +					<title><xsl:value-of select="title"/></title>
  +					<firstname><xsl:value-of select="firstname"/></firstname>
  +					<lastname><xsl:value-of select="lastname"/></lastname>
  +					<company><xsl:value-of select="company"/></company>
  +					<street><xsl:value-of select="street"/></street>
  +					<zipcode><xsl:value-of select="zipcode"/></zipcode>
  +					<city><xsl:value-of select="city"/></city>
  +					<country><xsl:value-of select="country"/></country>
  +					<phone><xsl:value-of select="phone"/></phone>
  +					<fax><xsl:value-of select="fax"/></fax>
  +					<email><xsl:value-of select="email"/></email>
  +					<bankid><xsl:value-of select="bankid"/></bankid>
  +					<bankname><xsl:value-of select="bankname"/></bankname>
  +					<accountid><xsl:value-of select="accountid"/></accountid>
  +				</data>
  +			</user>
  +		</xsl:when>
  +	</xsl:choose>
  +</xsl:template>
  +
  +<xsl:template match="role">
  +	<xsl:apply-templates select="role-delta"/>
  +</xsl:template>
  +
  +<xsl:template match="roles">
  +	<roles>
  +		<xsl:for-each select="role">
  +			<role><xsl:value-of select="."/></role>
  +		</xsl:for-each>
  +	</roles>
  +</xsl:template>
  +
  +<!-- Copy all and apply templates -->
  +<xsl:template match="@*|node()">
  +	<xsl:copy>
  +		<xsl:apply-templates select="@*|node()" />
  +	</xsl:copy>
  +</xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +282 -284  cocoon-2.1/src/blocks/portal-fw/samples/styles/portalHTML-Netscape.xsl
  
  Index: portalHTML-Netscape.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/portalHTML-Netscape.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- portalHTML-Netscape.xsl	9 Mar 2003 00:05:32 -0000	1.1
  +++ portalHTML-Netscape.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,284 +1,282 @@
  -<?xml version="1.0"?>
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<!-- $Id$ 
  -
  -
  - Description: Portal to HTML - Alternative for netscape (swapping coplet icons and title)
  -
  --->
  -
  -<!-- The main element -->
  -
  -<xsl:template match="portal">
  -<html>
  -	<head>
  -    	<title>Portal</title>
  -    	</head>
  -	<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgcolor="#cccccc">
  -		<xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
  -		<xsl:attribute name="text"><xsl:value-of select="layout/portal/font/color"/></xsl:attribute>
  -		<table border="0" cellPadding="0" cellSpacing="0" width="100%" height="100%">
  -		<xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
  -			<tr>
  -				<xsl:if test="header">
  -					<td noWrap="" width="193" valign="top" rowspan="2" bgcolor="cccccc">
  -			     		<xsl:apply-templates select="header"/>
  -					</td>
  -				</xsl:if>
  -				<td valign="top">
  -		  			<xsl:apply-templates select="columns"/>
  -			                </td>
  -			</tr>
  -			<tr>
  -				<td>
  -					<xsl:if test="footer">
  -						<xsl:apply-templates select="footer"/>
  -					</xsl:if>
  -				</td>
  -			</tr>
  -		</table>
  -	</body>
  -</html>
  -</xsl:template>
  -
  -<!-- the header -->
  -
  -<xsl:template match="header">
  -	<img height="2" src="sunspotdemoimg-space.gif" width="1"/>
  -	<table border="0" cellPadding="0" cellSpacing="0" width="100%" bgcolor="#ffffff"><tbody>
  -		<tr>
  -			<td valign="top">
  -				<table border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
  -					<tr>
  -						<td noWrap="" width="1%" bgcolor="#46627A" >
  -							<img src="sunspotdemoimg-space.gif" width="15" height="1"/>
  -						</td>
  -						<td width="99%" bgcolor="#46627A">
  -							<font face="Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">
  -								<b><img height="1" src="sunspotdemoimg-space.gif" width="5"/>Cocoon Portal</b>
  -							</font>
  -						</td>
  -					</tr>
  -					<tr>
  -						<td noWrap="" width="1%" bgcolor="#cccccc">
  -							<img src="sunspotdemoimg-space.gif"/>
  -						</td>
  -						<td valign="top" bgcolor="#cccccc">
  -							<br/>
  -							<img height="1" src="sunspotdemoimg-space.gif" width="10"/>
  -           							<font face="Arial, Helvetica, sans-serif" size="2" color="#0B2A51">
  -								<b>
  -									<xsl:value-of select="ancestor::portal/personal-profile/greeting"/>
  -								</b>
  -								<br/><br/>
  -								<xsl:if test="coplet">
  -									<xsl:apply-templates select="coplet"/>
  -								</xsl:if>
  -                						</font>
  -							<br/>
  -						</td>
  -					</tr>
  -				</tbody></table>
  -			</td>
  -		</tr>
  -	</tbody></table>
  -</xsl:template>
  -
  -<!-- the footer -->
  -
  -<xsl:template match="footer">
  -	<xsl:apply-templates/>
  -</xsl:template>
  -
  -<!-- The content of the portal -->
  -
  -<xsl:template match="columns">
  -<table width="100%" border="0" cellspacing="0" cellpadding="0">
  -	<tr>
  -		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -	</tr>
  -	<tr>
  -		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -		<xsl:for-each select="column">
  -				<xsl:sort select="@position"/>
  -				<xsl:apply-templates select="."/>
  -		</xsl:for-each>
  -		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -	</tr>
  -</table>
  -</xsl:template>
  -
  -<!-- The content of each column -->
  -
  -<xsl:template match="column">
  -<td vAlign="top">
  -<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
  -<table width="100%" border="0" cellspacing="0" cellpadding="0">
  -	<xsl:for-each select="coplet">
  -		<xsl:sort select="@position"/>
  -		<tr>
  -			<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -			<td vAlign="top">
  -				<xsl:apply-templates select="."/>
  -			</td>
  -		</tr>
  -	</xsl:for-each>
  -</table>
  -</td>
  -</xsl:template>
  -
  -<!-- One coplet -->
  -
  -<xsl:template match="coplet">
  -	<xsl:variable name="cmd"><xsl:value-of select="ancestor::portal/configuration/uri"/>&amp;portalcmd=</xsl:variable>
  -	<xsl:variable name="copletident"><xsl:value-of select="@id"/>_<xsl:value-of select="@number"/></xsl:variable>
  -<table border="0" cellSpacing="0" width="100%">
  -	<tr vAlign="top">
  -		<td align="left">
  -			<xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
  -			<font>
  -				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
  -				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
  -				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
  -				
  -				<!-- customize -->
  -				<xsl:if test="configuration/customizable='true' and (not(status/customize) or status/customize='false')">
  -					<xsl:variable name="customize"><xsl:value-of select="$cmd"/>customize_<xsl:value-of select="$copletident"/></xsl:variable>
  -					<a>
  -						<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($customize), ' ', '')"/></xsl:attribute>
  -						<img src="sunspotdemoimg-customize.gif" border="0" alt="Customize"/>
  -					</a>
  -				</xsl:if>
  -				
  -			<!-- minimize/maximize -->
  -			<xsl:if test="configuration/sizable='true' and status/size/@formpath">
  -				<xsl:variable name="linkurlmax"><xsl:value-of select="$cmd"/>minimize_<xsl:value-of select="$copletident"/></xsl:variable>
  -				<xsl:variable name="linkurlmin"><xsl:value-of select="$cmd"/>maximize_<xsl:value-of select="$copletident"/></xsl:variable>
  -				<a>
  -					<xsl:choose>
  -						<xsl:when test="status/size='max'">
  -							<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmax), ' ', '')"/></xsl:attribute>
  -							<img src="sunspotdemoimg-minimize.gif" border="0" alt="Minimize"/>
  -						</xsl:when>
  -						<xsl:otherwise>
  -							<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmin), ' ', '')"/></xsl:attribute>
  -							<img src="sunspotdemoimg-maximize.gif" border="0" alt="Maximize"/>
  -						</xsl:otherwise>
  -					</xsl:choose>
  -				</a>
  -			</xsl:if>
  -			<!-- show/ hide -->
  -			<xsl:choose>
  -				<xsl:when test="status/visible/@formpath and configuration/mandatory='false'">
  -					<xsl:variable name="linkurlshow"><xsl:value-of select="$cmd"/>show_<xsl:value-of select="$copletident"/></xsl:variable>
  -					<xsl:variable name="linkurlhide"><xsl:value-of select="$cmd"/>hide_<xsl:value-of select="$copletident"/></xsl:variable>
  -					<a>
  -						<xsl:choose>
  -							<xsl:when test="status/visible='true'">
  -								<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlhide), ' ', '')"/></xsl:attribute>
  -								<img src="sunspotdemoimg-hide.gif" border="0" alt="Hide"/>
  -							</xsl:when>
  -							<xsl:otherwise>
  -								<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlshow), ' ', '')"/></xsl:attribute>
  -								<img src="sunspotdemoimg-show.gif" border="0" alt="Show"/>
  -							</xsl:otherwise>
  -						</xsl:choose>
  -					</a>
  -				</xsl:when>
  -				<xsl:otherwise>
  -					<img src="sunspotdemoimg-space.gif" border="0"/>
  -				</xsl:otherwise>
  -			</xsl:choose>
  -			<!-- mandatory/delete -->
  -			<xsl:if test="configuration/mandatory='false'">
  -				<xsl:variable name="linkurlmand"><xsl:value-of select="$cmd"/>delete_<xsl:value-of select="$copletident"/></xsl:variable>
  -				<a>
  -					<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmand), ' ', '')"/></xsl:attribute>
  -					<img src="sunspotdemoimg-delete.gif" border="0" alt="Delete"/>
  -				</a>
  -			</xsl:if>
  -			</font>
  -		</td>
  -		<td align="right">
  -			<xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
  -			<font>
  -				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
  -				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
  -				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>	
  -				<img height="1" src="sunspotdemoimg-space.gif" width="5"/>				
  -				<b><xsl:value-of select="title"/></b>
  -			</font>
  -		</td>
  -	</tr>
  -	<xsl:if test="content">
  -		<tr>
  -			<td colSpan="2">
  -			<font>
  -				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  -				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  -				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  -				<xsl:apply-templates select="content"/>
  -			</font>
  -			</td>
  -		</tr>
  -	</xsl:if>
  -</table>
  -</xsl:template>
  -
  -<xsl:template match="content">
  -	<xsl:apply-templates/>
  -</xsl:template>
  -
  -<xsl:template match="td">
  -	<td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
  -	<xsl:if test="not(font) and not(FONT)">
  -		<font>
  -			<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  -			<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  -			<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  -			<xsl:apply-templates/>
  -		</font>
  -	</xsl:if>
  -	<xsl:if test="font or FONT">
  -		<xsl:apply-templates/>
  -	</xsl:if></td>
  -</xsl:template>
  -
  -<xsl:template match="TD">
  -	<td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
  -            <xsl:if test="not(font) and not(FONT)">
  -		<font>
  -			<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  -			<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  -			<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  -			<xsl:apply-templates/>
  -		</font>
  -	</xsl:if>
  -	<xsl:if test="font or FONT">
  -		<xsl:apply-templates/>
  -	</xsl:if></td>
  -</xsl:template>
  -
  -
  -<xsl:template match="link">
  -    <a>
  -        <xsl:if test="target">
  -            <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
  -        </xsl:if>     
  -        <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  -       <xsl:value-of select="normalize-space(text)"/>
  -    </a>
  -  </xsl:template>
  -
  -<!-- Copy all and apply templates -->
  -
  -<xsl:template match="@*|node()">
  -   <xsl:copy>
  -    <xsl:apply-templates select="@*|node()" />
  -   </xsl:copy>
  -  </xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ 
  +
  + Description: Portal to HTML - Alternative for netscape (swapping coplet icons and title)
  +
  +-->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<!-- The main element -->
  +
  +<xsl:template match="portal">
  +<html>
  +	<head>
  +    	<title>Portal</title>
  +    	</head>
  +	<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgcolor="#cccccc">
  +		<xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
  +		<xsl:attribute name="text"><xsl:value-of select="layout/portal/font/color"/></xsl:attribute>
  +		<table border="0" cellPadding="0" cellSpacing="0" width="100%" height="100%">
  +		<xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
  +			<tr>
  +				<xsl:if test="header">
  +					<td noWrap="" width="193" valign="top" rowspan="2" bgcolor="cccccc">
  +			     		<xsl:apply-templates select="header"/>
  +					</td>
  +				</xsl:if>
  +				<td valign="top">
  +		  			<xsl:apply-templates select="columns"/>
  +			                </td>
  +			</tr>
  +			<tr>
  +				<td>
  +					<xsl:if test="footer">
  +						<xsl:apply-templates select="footer"/>
  +					</xsl:if>
  +				</td>
  +			</tr>
  +		</table>
  +	</body>
  +</html>
  +</xsl:template>
  +
  +<!-- the header -->
  +
  +<xsl:template match="header">
  +	<img height="2" src="sunspotdemoimg-space.gif" width="1"/>
  +	<table border="0" cellPadding="0" cellSpacing="0" width="100%" bgcolor="#ffffff"><tbody>
  +		<tr>
  +			<td valign="top">
  +				<table border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
  +					<tr>
  +						<td noWrap="" width="1%" bgcolor="#46627A" >
  +							<img src="sunspotdemoimg-space.gif" width="15" height="1"/>
  +						</td>
  +						<td width="99%" bgcolor="#46627A">
  +							<font face="Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">
  +								<b><img height="1" src="sunspotdemoimg-space.gif" width="5"/>Cocoon Portal</b>
  +							</font>
  +						</td>
  +					</tr>
  +					<tr>
  +						<td noWrap="" width="1%" bgcolor="#cccccc">
  +							<img src="sunspotdemoimg-space.gif"/>
  +						</td>
  +						<td valign="top" bgcolor="#cccccc">
  +							<br/>
  +							<img height="1" src="sunspotdemoimg-space.gif" width="10"/>
  +           							<font face="Arial, Helvetica, sans-serif" size="2" color="#0B2A51">
  +								<b>
  +									<xsl:value-of select="ancestor::portal/personal-profile/greeting"/>
  +								</b>
  +								<br/><br/>
  +								<xsl:if test="coplet">
  +									<xsl:apply-templates select="coplet"/>
  +								</xsl:if>
  +                						</font>
  +							<br/>
  +						</td>
  +					</tr>
  +				</tbody></table>
  +			</td>
  +		</tr>
  +	</tbody></table>
  +</xsl:template>
  +
  +<!-- the footer -->
  +
  +<xsl:template match="footer">
  +	<xsl:apply-templates/>
  +</xsl:template>
  +
  +<!-- The content of the portal -->
  +
  +<xsl:template match="columns">
  +<table width="100%" border="0" cellspacing="0" cellpadding="0">
  +	<tr>
  +		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +	</tr>
  +	<tr>
  +		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +		<xsl:for-each select="column">
  +				<xsl:sort select="@position"/>
  +				<xsl:apply-templates select="."/>
  +		</xsl:for-each>
  +		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +	</tr>
  +</table>
  +</xsl:template>
  +
  +<!-- The content of each column -->
  +
  +<xsl:template match="column">
  +<td vAlign="top">
  +<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
  +<table width="100%" border="0" cellspacing="0" cellpadding="0">
  +	<xsl:for-each select="coplet">
  +		<xsl:sort select="@position"/>
  +		<tr>
  +			<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +			<td vAlign="top">
  +				<xsl:apply-templates select="."/>
  +			</td>
  +		</tr>
  +	</xsl:for-each>
  +</table>
  +</td>
  +</xsl:template>
  +
  +<!-- One coplet -->
  +
  +<xsl:template match="coplet">
  +	<xsl:variable name="cmd"><xsl:value-of select="ancestor::portal/configuration/uri"/>&amp;portalcmd=</xsl:variable>
  +	<xsl:variable name="copletident"><xsl:value-of select="@id"/>_<xsl:value-of select="@number"/></xsl:variable>
  +<table border="0" cellSpacing="0" width="100%">
  +	<tr vAlign="top">
  +		<td align="left">
  +			<xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
  +			<font>
  +				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
  +				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
  +				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
  +				
  +				<!-- customize -->
  +				<xsl:if test="configuration/customizable='true' and (not(status/customize) or status/customize='false')">
  +					<xsl:variable name="customize"><xsl:value-of select="$cmd"/>customize_<xsl:value-of select="$copletident"/></xsl:variable>
  +					<a>
  +						<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($customize), ' ', '')"/></xsl:attribute>
  +						<img src="sunspotdemoimg-customize.gif" border="0" alt="Customize"/>
  +					</a>
  +				</xsl:if>
  +				
  +			<!-- minimize/maximize -->
  +			<xsl:if test="configuration/sizable='true' and status/size/@formpath">
  +				<xsl:variable name="linkurlmax"><xsl:value-of select="$cmd"/>minimize_<xsl:value-of select="$copletident"/></xsl:variable>
  +				<xsl:variable name="linkurlmin"><xsl:value-of select="$cmd"/>maximize_<xsl:value-of select="$copletident"/></xsl:variable>
  +				<a>
  +					<xsl:choose>
  +						<xsl:when test="status/size='max'">
  +							<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmax), ' ', '')"/></xsl:attribute>
  +							<img src="sunspotdemoimg-minimize.gif" border="0" alt="Minimize"/>
  +						</xsl:when>
  +						<xsl:otherwise>
  +							<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmin), ' ', '')"/></xsl:attribute>
  +							<img src="sunspotdemoimg-maximize.gif" border="0" alt="Maximize"/>
  +						</xsl:otherwise>
  +					</xsl:choose>
  +				</a>
  +			</xsl:if>
  +			<!-- show/ hide -->
  +			<xsl:choose>
  +				<xsl:when test="status/visible/@formpath and configuration/mandatory='false'">
  +					<xsl:variable name="linkurlshow"><xsl:value-of select="$cmd"/>show_<xsl:value-of select="$copletident"/></xsl:variable>
  +					<xsl:variable name="linkurlhide"><xsl:value-of select="$cmd"/>hide_<xsl:value-of select="$copletident"/></xsl:variable>
  +					<a>
  +						<xsl:choose>
  +							<xsl:when test="status/visible='true'">
  +								<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlhide), ' ', '')"/></xsl:attribute>
  +								<img src="sunspotdemoimg-hide.gif" border="0" alt="Hide"/>
  +							</xsl:when>
  +							<xsl:otherwise>
  +								<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlshow), ' ', '')"/></xsl:attribute>
  +								<img src="sunspotdemoimg-show.gif" border="0" alt="Show"/>
  +							</xsl:otherwise>
  +						</xsl:choose>
  +					</a>
  +				</xsl:when>
  +				<xsl:otherwise>
  +					<img src="sunspotdemoimg-space.gif" border="0"/>
  +				</xsl:otherwise>
  +			</xsl:choose>
  +			<!-- mandatory/delete -->
  +			<xsl:if test="configuration/mandatory='false'">
  +				<xsl:variable name="linkurlmand"><xsl:value-of select="$cmd"/>delete_<xsl:value-of select="$copletident"/></xsl:variable>
  +				<a>
  +					<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmand), ' ', '')"/></xsl:attribute>
  +					<img src="sunspotdemoimg-delete.gif" border="0" alt="Delete"/>
  +				</a>
  +			</xsl:if>
  +			</font>
  +		</td>
  +		<td align="right">
  +			<xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
  +			<font>
  +				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
  +				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
  +				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>	
  +				<img height="1" src="sunspotdemoimg-space.gif" width="5"/>				
  +				<b><xsl:value-of select="title"/></b>
  +			</font>
  +		</td>
  +	</tr>
  +	<xsl:if test="content">
  +		<tr>
  +			<td colSpan="2">
  +			<font>
  +				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  +				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  +				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  +				<xsl:apply-templates select="content"/>
  +			</font>
  +			</td>
  +		</tr>
  +	</xsl:if>
  +</table>
  +</xsl:template>
  +
  +<xsl:template match="content">
  +	<xsl:apply-templates/>
  +</xsl:template>
  +
  +<xsl:template match="td">
  +	<td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
  +	<xsl:if test="not(font) and not(FONT)">
  +		<font>
  +			<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  +			<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  +			<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  +			<xsl:apply-templates/>
  +		</font>
  +	</xsl:if>
  +	<xsl:if test="font or FONT">
  +		<xsl:apply-templates/>
  +	</xsl:if></td>
  +</xsl:template>
  +
  +<xsl:template match="TD">
  +	<td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
  +            <xsl:if test="not(font) and not(FONT)">
  +		<font>
  +			<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  +			<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  +			<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  +			<xsl:apply-templates/>
  +		</font>
  +	</xsl:if>
  +	<xsl:if test="font or FONT">
  +		<xsl:apply-templates/>
  +	</xsl:if></td>
  +</xsl:template>
  +
  +
  +  <xsl:template match="link">
  +    <a>
  +        <xsl:if test="target">
  +            <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
  +        </xsl:if>     
  +        <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  +       <xsl:value-of select="normalize-space(text)"/>
  +    </a>
  +  </xsl:template>
  +
  +  <!-- Copy all and apply templates -->
  +  <xsl:template match="@*|node()">
  +   <xsl:copy>
  +    <xsl:apply-templates select="@*|node()" />
  +   </xsl:copy>
  +  </xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +284 -286  cocoon-2.1/src/blocks/portal-fw/samples/styles/portalHTML.xsl
  
  Index: portalHTML.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/portalHTML.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- portalHTML.xsl	9 Mar 2003 00:05:32 -0000	1.1
  +++ portalHTML.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,286 +1,284 @@
  -<?xml version="1.0"?>
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<!-- $Id$ 
  -
  -
  - Description: Portal to HTML
  -
  --->
  -
  -<!-- The main element -->
  -
  -<xsl:template match="portal">
  -<html>
  -	<head>
  -    	<title>Portal</title>
  -    	</head>
  -	<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgcolor="#cccccc">
  -		<xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
  -		<xsl:attribute name="text"><xsl:value-of select="layout/portal/font/color"/></xsl:attribute>
  -		<table border="0" cellPadding="0" cellSpacing="0" width="100%" height="100%">
  -		<xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
  -			<tr>
  -				<xsl:if test="header">
  -					<td noWrap="" width="193" valign="top" rowspan="2" bgcolor="cccccc">
  -			     		<xsl:apply-templates select="header"/>
  -					</td>
  -				</xsl:if>
  -				<td valign="top" width="100%">
  -		  			<xsl:apply-templates select="columns"/>
  -			                </td>
  -			</tr>
  -			<tr>
  -				<td>
  -					<xsl:if test="footer">
  -						<xsl:apply-templates select="footer"/>
  -					</xsl:if>
  -				</td>
  -			</tr>
  -		</table>
  -	</body>
  -</html>
  -</xsl:template>
  -
  -<!-- the header -->
  -
  -<xsl:template match="header">
  -	<img height="2" src="sunspotdemoimg-space.gif" width="1"/>
  -	<table border="0" cellPadding="0" cellSpacing="0" width="100%" bgcolor="#ffffff"><tbody>
  -		<tr>
  -			<td valign="top">
  -				<table border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
  -					<tr>
  -						<td noWrap="" width="1%" bgcolor="#46627A" >
  -							<img src="sunspotdemoimg-space.gif" width="15" height="1"/>
  -						</td>
  -						<td width="99%" bgcolor="#46627A">
  -							<font face="Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">
  -								<b><img height="1" src="sunspotdemoimg-space.gif" width="5"/>Cocoon Portal</b>
  -							</font>
  -						</td>
  -					</tr>
  -					<tr>
  -						<td noWrap="" width="1%" bgcolor="#cccccc">
  -							<img src="sunspotdemoimg-space.gif"/>
  -						</td>
  -						<td valign="top" bgcolor="#cccccc">
  -							<br/>
  -							<img height="1" src="sunspotdemoimg-space.gif" width="10"/>
  -           							<font face="Arial, Helvetica, sans-serif" size="2" color="#0B2A51">
  -								<b>
  -									<xsl:value-of select="ancestor::portal/personal-profile/greeting"/>
  -								</b>
  -								<br/><br/>
  -								<xsl:if test="coplet">
  -									<xsl:apply-templates select="coplet"/>
  -								</xsl:if>
  -                						</font>
  -							<br/>
  -						</td>
  -					</tr>
  -				</tbody></table>
  -			</td>
  -		</tr>
  -	</tbody></table>
  -</xsl:template>
  -
  -<!-- the footer -->
  -
  -<xsl:template match="footer">
  -	<xsl:apply-templates/>
  -</xsl:template>
  -
  -<!-- The content of the portal -->
  -
  -<xsl:template match="columns">
  -<table width="100%" border="0" cellspacing="0" cellpadding="0">
  -	<tr>
  -		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -	</tr>
  -	<tr>
  -		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -		<xsl:for-each select="column">
  -				<xsl:sort select="@position"/>
  -				<xsl:apply-templates select="."/>
  -		</xsl:for-each>
  -		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -	</tr>
  -</table>
  -</xsl:template>
  -
  -<!-- The content of each column -->
  -
  -<xsl:template match="column">
  -<td vAlign="top">
  -<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
  -<table width="100%" border="0" cellspacing="0" cellpadding="0">
  -	<xsl:for-each select="coplet">
  -		<xsl:sort select="@position"/>
  -		<tr>
  -			<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -			<td vAlign="top">
  -				<xsl:apply-templates select="."/>
  -			</td>
  -		</tr>
  -	</xsl:for-each>
  -</table>
  -</td>
  -</xsl:template>
  -
  -<!-- One coplet -->
  -
  -<xsl:template match="coplet">
  -	<xsl:variable name="cmd"><xsl:value-of select="ancestor::portal/configuration/uri"/>&amp;portalcmd=</xsl:variable>
  -	<xsl:variable name="copletident"><xsl:value-of select="@id"/>_<xsl:value-of select="@number"/></xsl:variable>
  -<table border="0" cellSpacing="0" width="100%">
  -	<tr vAlign="top">
  -		<td>
  -			<xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
  -			<font>
  -				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
  -				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
  -				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>	
  -				<img height="1" src="sunspotdemoimg-space.gif" width="5"/>				
  -				<b><xsl:value-of select="title"/></b>
  -			</font>
  -		</td>
  -		<td align="right">
  -			<xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
  -			<font>
  -				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
  -				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
  -				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
  -				
  -				<!-- customize -->
  -				<xsl:if test="configuration/customizable='true' and (not(status/customize) or status/customize='false')">
  -					<xsl:variable name="customize"><xsl:value-of select="$cmd"/>customize_<xsl:value-of select="$copletident"/></xsl:variable>
  -					<a>
  -						<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($customize), ' ', '')"/></xsl:attribute>
  -						<img src="sunspotdemoimg-customize.gif" border="0" alt="Customize"/>
  -					</a>
  -				</xsl:if>
  -				
  -				<!-- minimize/maximize -->
  -				<xsl:if test="configuration/sizable='true' and status/size/@formpath">
  -					<xsl:variable name="linkurlmax"><xsl:value-of select="$cmd"/>minimize_<xsl:value-of select="$copletident"/></xsl:variable>
  -					<xsl:variable name="linkurlmin"><xsl:value-of select="$cmd"/>maximize_<xsl:value-of select="$copletident"/></xsl:variable>
  -					<a>
  -						<xsl:choose>
  -							<xsl:when test="status/size='max'">
  -								<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmax), ' ', '')"/></xsl:attribute>
  -								<img src="sunspotdemoimg-minimize.gif" border="0" alt="Minimize"/>
  -							</xsl:when>
  -							<xsl:otherwise>
  -								<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmin), ' ', '')"/></xsl:attribute>
  -								<img src="sunspotdemoimg-maximize.gif" border="0" alt="Maximize"/>
  -							</xsl:otherwise>
  -						</xsl:choose>
  -					</a>
  -				</xsl:if>
  -		
  -				<!-- show/ hide -->
  -				<xsl:choose>
  -					<xsl:when test="status/visible/@formpath and configuration/mandatory='false'">
  -						<xsl:variable name="linkurlshow"><xsl:value-of select="$cmd"/>show_<xsl:value-of select="$copletident"/></xsl:variable>
  -						<xsl:variable name="linkurlhide"><xsl:value-of select="$cmd"/>hide_<xsl:value-of select="$copletident"/></xsl:variable>
  -						<a>
  -							<xsl:choose>
  -								<xsl:when test="status/visible='true'">
  -									<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlhide), ' ', '')"/></xsl:attribute>
  -									<img src="sunspotdemoimg-hide.gif" border="0" alt="Hide"/>
  -								</xsl:when>
  -								<xsl:otherwise>
  -									<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlshow), ' ', '')"/></xsl:attribute>
  -									<img src="sunspotdemoimg-show.gif" border="0" alt="Show"/>
  -								</xsl:otherwise>
  -							</xsl:choose>
  -						</a>
  -					</xsl:when>
  -					<xsl:otherwise>
  -						<img src="sunspotdemoimg-space.gif" border="0"/>
  -					</xsl:otherwise>
  -				</xsl:choose>
  -	
  -				<!-- mandatory/delete -->
  -				<xsl:if test="configuration/mandatory='false'">
  -					<xsl:variable name="linkurlmand"><xsl:value-of select="$cmd"/>delete_<xsl:value-of select="$copletident"/></xsl:variable>
  -					<a>
  -						<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmand), ' ', '')"/></xsl:attribute>
  -						<img src="sunspotdemoimg-delete.gif" border="0" alt="Delete"/>
  -					</a>
  -				</xsl:if>
  -			</font>
  -		</td>
  -	</tr>
  -	<xsl:if test="content">
  -		<tr>
  -			<td colSpan="2">
  -			<font>
  -				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  -				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  -				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  -				<xsl:apply-templates select="content"/>
  -			</font>
  -			</td>
  -		</tr>
  -	</xsl:if>
  -</table>
  -</xsl:template>
  -
  -<xsl:template match="content">
  -	<xsl:apply-templates/>
  -</xsl:template>
  -
  -<xsl:template match="td">
  -	<td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
  -	<xsl:if test="not(font) and not(FONT)">
  -		<font>
  -			<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  -			<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  -			<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  -			<xsl:apply-templates/>
  -		</font>
  -	</xsl:if>
  -	<xsl:if test="font or FONT">
  -		<xsl:apply-templates/>
  -	</xsl:if></td>
  -</xsl:template>
  -
  -<xsl:template match="TD">
  -	<td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
  -            <xsl:if test="not(font) and not(FONT)">
  -		<font>
  -			<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  -			<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  -			<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  -			<xsl:apply-templates/>
  -		</font>
  -	</xsl:if>
  -	<xsl:if test="font or FONT">
  -		<xsl:apply-templates/>
  -	</xsl:if></td>
  -</xsl:template>
  -
  -
  -<xsl:template match="link">
  -    <a>
  -        <xsl:if test="target">
  -            <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
  -        </xsl:if>     
  -        <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  -       <xsl:value-of select="normalize-space(text)"/>
  -    </a>
  -  </xsl:template>
  -
  -<!-- Copy all and apply templates -->
  -
  -<xsl:template match="@*|node()">
  -   <xsl:copy>
  -    <xsl:apply-templates select="@*|node()" />
  -   </xsl:copy>
  -  </xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ 
  +
  + Description: Portal to HTML
  +
  +-->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<!-- The main element -->
  +
  +<xsl:template match="portal">
  +<html>
  +	<head>
  +    	<title>Portal</title>
  +    	</head>
  +	<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgcolor="#cccccc">
  +		<xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
  +		<xsl:attribute name="text"><xsl:value-of select="layout/portal/font/color"/></xsl:attribute>
  +		<table border="0" cellPadding="0" cellSpacing="0" width="100%" height="100%">
  +		<xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
  +			<tr>
  +				<xsl:if test="header">
  +					<td noWrap="" width="193" valign="top" rowspan="2" bgcolor="cccccc">
  +			     		<xsl:apply-templates select="header"/>
  +					</td>
  +				</xsl:if>
  +				<td valign="top" width="100%">
  +		  			<xsl:apply-templates select="columns"/>
  +			                </td>
  +			</tr>
  +			<tr>
  +				<td>
  +					<xsl:if test="footer">
  +						<xsl:apply-templates select="footer"/>
  +					</xsl:if>
  +				</td>
  +			</tr>
  +		</table>
  +	</body>
  +</html>
  +</xsl:template>
  +
  +<!-- the header -->
  +
  +<xsl:template match="header">
  +	<img height="2" src="sunspotdemoimg-space.gif" width="1"/>
  +	<table border="0" cellPadding="0" cellSpacing="0" width="100%" bgcolor="#ffffff"><tbody>
  +		<tr>
  +			<td valign="top">
  +				<table border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
  +					<tr>
  +						<td noWrap="" width="1%" bgcolor="#46627A" >
  +							<img src="sunspotdemoimg-space.gif" width="15" height="1"/>
  +						</td>
  +						<td width="99%" bgcolor="#46627A">
  +							<font face="Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">
  +								<b><img height="1" src="sunspotdemoimg-space.gif" width="5"/>Cocoon Portal</b>
  +							</font>
  +						</td>
  +					</tr>
  +					<tr>
  +						<td noWrap="" width="1%" bgcolor="#cccccc">
  +							<img src="sunspotdemoimg-space.gif"/>
  +						</td>
  +						<td valign="top" bgcolor="#cccccc">
  +							<br/>
  +							<img height="1" src="sunspotdemoimg-space.gif" width="10"/>
  +           							<font face="Arial, Helvetica, sans-serif" size="2" color="#0B2A51">
  +								<b>
  +									<xsl:value-of select="ancestor::portal/personal-profile/greeting"/>
  +								</b>
  +								<br/><br/>
  +								<xsl:if test="coplet">
  +									<xsl:apply-templates select="coplet"/>
  +								</xsl:if>
  +                						</font>
  +							<br/>
  +						</td>
  +					</tr>
  +				</tbody></table>
  +			</td>
  +		</tr>
  +	</tbody></table>
  +</xsl:template>
  +
  +<!-- the footer -->
  +
  +<xsl:template match="footer">
  +	<xsl:apply-templates/>
  +</xsl:template>
  +
  +<!-- The content of the portal -->
  +
  +<xsl:template match="columns">
  +<table width="100%" border="0" cellspacing="0" cellpadding="0">
  +	<tr>
  +		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +	</tr>
  +	<tr>
  +		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +		<xsl:for-each select="column">
  +				<xsl:sort select="@position"/>
  +				<xsl:apply-templates select="."/>
  +		</xsl:for-each>
  +		<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +	</tr>
  +</table>
  +</xsl:template>
  +
  +<!-- The content of each column -->
  +
  +<xsl:template match="column">
  +<td vAlign="top">
  +<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
  +<table width="100%" border="0" cellspacing="0" cellpadding="0">
  +	<xsl:for-each select="coplet">
  +		<xsl:sort select="@position"/>
  +		<tr>
  +			<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +			<td vAlign="top">
  +				<xsl:apply-templates select="."/>
  +			</td>
  +		</tr>
  +	</xsl:for-each>
  +</table>
  +</td>
  +</xsl:template>
  +
  +<!-- One coplet -->
  +
  +<xsl:template match="coplet">
  +	<xsl:variable name="cmd"><xsl:value-of select="ancestor::portal/configuration/uri"/>&amp;portalcmd=</xsl:variable>
  +	<xsl:variable name="copletident"><xsl:value-of select="@id"/>_<xsl:value-of select="@number"/></xsl:variable>
  +<table border="0" cellSpacing="0" width="100%">
  +	<tr vAlign="top">
  +		<td>
  +			<xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
  +			<font>
  +				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
  +				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
  +				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>	
  +				<img height="1" src="sunspotdemoimg-space.gif" width="5"/>				
  +				<b><xsl:value-of select="title"/></b>
  +			</font>
  +		</td>
  +		<td align="right">
  +			<xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
  +			<font>
  +				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
  +				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
  +				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
  +				
  +				<!-- customize -->
  +				<xsl:if test="configuration/customizable='true' and (not(status/customize) or status/customize='false')">
  +					<xsl:variable name="customize"><xsl:value-of select="$cmd"/>customize_<xsl:value-of select="$copletident"/></xsl:variable>
  +					<a>
  +						<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($customize), ' ', '')"/></xsl:attribute>
  +						<img src="sunspotdemoimg-customize.gif" border="0" alt="Customize"/>
  +					</a>
  +				</xsl:if>
  +				
  +				<!-- minimize/maximize -->
  +				<xsl:if test="configuration/sizable='true' and status/size/@formpath">
  +					<xsl:variable name="linkurlmax"><xsl:value-of select="$cmd"/>minimize_<xsl:value-of select="$copletident"/></xsl:variable>
  +					<xsl:variable name="linkurlmin"><xsl:value-of select="$cmd"/>maximize_<xsl:value-of select="$copletident"/></xsl:variable>
  +					<a>
  +						<xsl:choose>
  +							<xsl:when test="status/size='max'">
  +								<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmax), ' ', '')"/></xsl:attribute>
  +								<img src="sunspotdemoimg-minimize.gif" border="0" alt="Minimize"/>
  +							</xsl:when>
  +							<xsl:otherwise>
  +								<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmin), ' ', '')"/></xsl:attribute>
  +								<img src="sunspotdemoimg-maximize.gif" border="0" alt="Maximize"/>
  +							</xsl:otherwise>
  +						</xsl:choose>
  +					</a>
  +				</xsl:if>
  +		
  +				<!-- show/ hide -->
  +				<xsl:choose>
  +					<xsl:when test="status/visible/@formpath and configuration/mandatory='false'">
  +						<xsl:variable name="linkurlshow"><xsl:value-of select="$cmd"/>show_<xsl:value-of select="$copletident"/></xsl:variable>
  +						<xsl:variable name="linkurlhide"><xsl:value-of select="$cmd"/>hide_<xsl:value-of select="$copletident"/></xsl:variable>
  +						<a>
  +							<xsl:choose>
  +								<xsl:when test="status/visible='true'">
  +									<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlhide), ' ', '')"/></xsl:attribute>
  +									<img src="sunspotdemoimg-hide.gif" border="0" alt="Hide"/>
  +								</xsl:when>
  +								<xsl:otherwise>
  +									<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlshow), ' ', '')"/></xsl:attribute>
  +									<img src="sunspotdemoimg-show.gif" border="0" alt="Show"/>
  +								</xsl:otherwise>
  +							</xsl:choose>
  +						</a>
  +					</xsl:when>
  +					<xsl:otherwise>
  +						<img src="sunspotdemoimg-space.gif" border="0"/>
  +					</xsl:otherwise>
  +				</xsl:choose>
  +	
  +				<!-- mandatory/delete -->
  +				<xsl:if test="configuration/mandatory='false'">
  +					<xsl:variable name="linkurlmand"><xsl:value-of select="$cmd"/>delete_<xsl:value-of select="$copletident"/></xsl:variable>
  +					<a>
  +						<xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmand), ' ', '')"/></xsl:attribute>
  +						<img src="sunspotdemoimg-delete.gif" border="0" alt="Delete"/>
  +					</a>
  +				</xsl:if>
  +			</font>
  +		</td>
  +	</tr>
  +	<xsl:if test="content">
  +		<tr>
  +			<td colSpan="2">
  +			<font>
  +				<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  +				<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  +				<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  +				<xsl:apply-templates select="content"/>
  +			</font>
  +			</td>
  +		</tr>
  +	</xsl:if>
  +</table>
  +</xsl:template>
  +
  +<xsl:template match="content">
  +	<xsl:apply-templates/>
  +</xsl:template>
  +
  +<xsl:template match="td">
  +	<td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
  +	<xsl:if test="not(font) and not(FONT)">
  +		<font>
  +			<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  +			<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  +			<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  +			<xsl:apply-templates/>
  +		</font>
  +	</xsl:if>
  +	<xsl:if test="font or FONT">
  +		<xsl:apply-templates/>
  +	</xsl:if></td>
  +</xsl:template>
  +
  +<xsl:template match="TD">
  +	<td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
  +            <xsl:if test="not(font) and not(FONT)">
  +		<font>
  +			<xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
  +			<xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
  +			<xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
  +			<xsl:apply-templates/>
  +		</font>
  +	</xsl:if>
  +	<xsl:if test="font or FONT">
  +		<xsl:apply-templates/>
  +	</xsl:if></td>
  +</xsl:template>
  +
  +
  +  <xsl:template match="link">
  +    <a>
  +        <xsl:if test="target">
  +            <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
  +        </xsl:if>     
  +        <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  +       <xsl:value-of select="normalize-space(text)"/>
  +    </a>
  +  </xsl:template>
  +
  +  <!-- Copy all and apply templates -->
  +  <xsl:template match="@*|node()">
  +   <xsl:copy>
  +    <xsl:apply-templates select="@*|node()" />
  +   </xsl:copy>
  +  </xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +6 -8      cocoon-2.1/src/blocks/portal-fw/samples/styles/portalconfHTML.xsl
  
  Index: portalconfHTML.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/portalconfHTML.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- portalconfHTML.xsl	9 Mar 2003 00:05:32 -0000	1.1
  +++ portalconfHTML.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,15 +1,14 @@
   <?xml version="1.0"?>
   
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
   <!-- $Id$ 
   
  -
    Description: Portal Configuration to HTML
   
   -->
   
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
   <!-- Frameset -->
   
   <xsl:template match="pageset">
  @@ -1984,9 +1983,8 @@
   	</xsl:if>
   </xsl:template>
   
  -<!-- Copy all and apply templates -->
  -
  -<xsl:template match="@*|node()">
  +  <!-- Copy all and apply templates -->
  +  <xsl:template match="@*|node()">
      <xsl:copy>
       <xsl:apply-templates select="@*|node()" />
      </xsl:copy>
  
  
  
  1.2       +33 -31    cocoon-2.1/src/blocks/portal-fw/samples/styles/sunLet_MoreoverDotCom.xsl
  
  Index: sunLet_MoreoverDotCom.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunLet_MoreoverDotCom.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sunLet_MoreoverDotCom.xsl	9 Mar 2003 00:05:33 -0000	1.1
  +++ sunLet_MoreoverDotCom.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,31 +1,33 @@
  -<?xml version="1.0"?>
  -<!-- $Id$ 
  -
  --->
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
  -
  -<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
  -
  -<xsl:template match="moreovernews">
  -<!-- Stylesheet to be used inside a coplet. Generates HTML from an XML-feed from http://w.moreover.com/ -->
  -<table>
  -	<xsl:apply-templates select ="article"/>
  -</table>
  -</xsl:template>
  -
  -<xsl:template match="article">
  -			<xsl:if test="position() &lt; 6">
  -				<tr bgcolor="#ffffff"><td><font face="Arial, Helvetica, sans-serif">
  -    			<a target="_blank"><xsl:attribute name="href"><xsl:value-of select="url"/></xsl:attribute>
  -				<font size="-1" color="#333333"><b><xsl:value-of select="headline_text"/></b></font></a><br/>
  -				<a target="_blank"><xsl:attribute name="href"><xsl:value-of select="document_url"/></xsl:attribute> 
  -    			<font size="-2" color="#46627A"><xsl:value-of select = "source"/></font></a>
  -				<font size="-2" color="#46627A">&#160;&#160;<xsl:value-of select="harvest_time"/></font>
  -    			</font></td></tr>
  -				<tr bgcolor="#ffffff"><td bgcolor="#ffffff" height="5"></td></tr>
  -			</xsl:if>
  -</xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ 
  +
  +-->
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
  +
  +<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
  +
  +<xsl:template match="moreovernews">
  +<!-- Stylesheet to be used inside a coplet. Generates HTML from an XML-feed from http://w.moreover.com/ -->
  +<table>
  +	<xsl:apply-templates select ="article"/>
  +</table>
  +</xsl:template>
  +
  +<xsl:template match="article">
  +			<xsl:if test="position() &lt; 6">
  +				<tr bgcolor="#ffffff"><td><font face="Arial, Helvetica, sans-serif">
  +    			<a target="_blank"><xsl:attribute name="href"><xsl:value-of select="url"/></xsl:attribute>
  +				<font size="-1" color="#333333"><b><xsl:value-of select="headline_text"/></b></font></a><br/>
  +				<a target="_blank"><xsl:attribute name="href"><xsl:value-of select="document_url"/></xsl:attribute> 
  +    			<font size="-2" color="#46627A"><xsl:value-of select = "source"/></font></a>
  +				<font size="-2" color="#46627A">&#160;&#160;<xsl:value-of select="harvest_time"/></font>
  +    			</font></td></tr>
  +				<tr bgcolor="#ffffff"><td bgcolor="#ffffff" height="5"></td></tr>
  +			</xsl:if>
  +</xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +34 -34    cocoon-2.1/src/blocks/portal-fw/samples/styles/sunLet_sundnNews.xsl
  
  Index: sunLet_sundnNews.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunLet_sundnNews.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sunLet_sundnNews.xsl	9 Mar 2003 00:05:33 -0000	1.1
  +++ sunLet_sundnNews.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,34 +1,34 @@
  -<?xml version="1.0"?>
  -
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<!-- $Id$ 
  -
  --->
  -
  -<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
  -
  -<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
  -
  -<xsl:template match="news"><!-- Stylesheet to be used inside a coplet. Generates HTML from an XML-feed from http://w.moreover.com/ -->
  -
  -	<table>
  -		<xsl:apply-templates select ="article">
  -		</xsl:apply-templates>
  -	</table>
  -</xsl:template>
  -
  -<xsl:template match="article">
  -			<xsl:if test="position() &lt; 6">
  -				<tr bgcolor="#ffffff"><td><font face="Arial, Helvetica, sans-serif">
  -    			<a target="_blank"><xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>
  -				<font size="-1" color="#333333"><b><xsl:value-of select="title"/></b></font></a><br/>
  -				<a target="_blank"><xsl:attribute name="href"><xsl:value-of select="authorlink"/></xsl:attribute> 
  -    			<font size="-2" color="#46627A"><xsl:value-of select = "author"/></font></a>
  -				<font size="-2" color="#46627A">&#160;&#160;<xsl:value-of select="date"/></font>
  -    			</font></td></tr>
  -				<tr bgcolor="#ffffff"><td bgcolor="#ffffff" height="5"></td></tr>
  -			</xsl:if>
  -</xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<!-- $Id$ 
  +
  +-->
  +
  +<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
  +
  +<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
  +
  +<xsl:template match="news"><!-- Stylesheet to be used inside a coplet. Generates HTML from an XML-feed from http://w.moreover.com/ -->
  +
  +	<table>
  +		<xsl:apply-templates select ="article">
  +		</xsl:apply-templates>
  +	</table>
  +</xsl:template>
  +
  +<xsl:template match="article">
  +			<xsl:if test="position() &lt; 6">
  +				<tr bgcolor="#ffffff"><td><font face="Arial, Helvetica, sans-serif">
  +    			<a target="_blank"><xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>
  +				<font size="-1" color="#333333"><b><xsl:value-of select="title"/></b></font></a><br/>
  +				<a target="_blank"><xsl:attribute name="href"><xsl:value-of select="authorlink"/></xsl:attribute> 
  +    			<font size="-2" color="#46627A"><xsl:value-of select = "author"/></font></a>
  +				<font size="-2" color="#46627A">&#160;&#160;<xsl:value-of select="date"/></font>
  +    			</font></td></tr>
  +				<tr bgcolor="#ffffff"><td bgcolor="#ffffff" height="5"></td></tr>
  +			</xsl:if>
  +</xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +82 -82    cocoon-2.1/src/blocks/portal-fw/samples/styles/sunletconf.xsl
  
  Index: sunletconf.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunletconf.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sunletconf.xsl	9 Mar 2003 00:05:33 -0000	1.1
  +++ sunletconf.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,82 +1,82 @@
  -<?xml version="1.0"?>
  -<!-- $Id$ 
  -
  - Description: The configuration page of a coplet
  -
  --->
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<xsl:template match="page">
  -	<xsl:apply-templates/>
  -</xsl:template>
  -
  -<xsl:template match="picture">
  -	<img>
  -		<xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  -	</img>
  -</xsl:template>
  -
  -
  -<xsl:template match="form">
  -	<form>
  -		<xsl:attribute name="method"><xsl:value-of select="@method"/></xsl:attribute>
  -		<xsl:attribute name="action"><xsl:value-of select="@action"/></xsl:attribute>
  -		<table><tbody>
  -			<xsl:apply-templates select="inputxml"/>
  -			<tr><td colspan="2" align="middle">
  -			<xsl:apply-templates select="input"/>
  -			</td></tr>
  -		</tbody></table>
  -	</form>
  -</xsl:template>
  -
  -<xsl:template match="inputxml">
  -	<tr>
  -		<td><xsl:value-of select="@name"/>:&#160;</td>
  -		<td>
  -			<xsl:choose>
  -				<xsl:when test="@name='Newsfeed'">
  -					<select name="Newsfeed">
  -						<option value="usa">
  -							<xsl:if test="normalize-space(.) = 'usa'">
  -								<xsl:attribute name="selected">true</xsl:attribute>
  -							</xsl:if>
  -							USA
  -						</option>
  -						<option value="entertainmentgeneral">
  -							<xsl:if test="normalize-space(.) = 'entertainmentgeneral'">
  -								<xsl:attribute name="selected">true</xsl:attribute>
  -							</xsl:if>
  -							Entertainment
  -						</option>
  -						<option value="foodanddrink">
  -							<xsl:if test="normalize-space(.) = 'foodanddrink'">
  -								<xsl:attribute name="selected">true</xsl:attribute>
  -							</xsl:if>
  -							Food &amp; Drink
  -						</option>
  -					</select>
  -				</xsl:when>
  -				<xsl:otherwise>
  -					<input>
  -						<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
  -						<xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute>
  -						<xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
  -					</input>
  -				</xsl:otherwise>
  -			</xsl:choose>
  -		</td>
  -	</tr>
  -</xsl:template>
  -
  -<!-- Copy all and apply templates -->
  -<xsl:template match="@*|node()">
  -	<xsl:copy>
  -		<xsl:apply-templates select="@*|node()" />
  -	</xsl:copy>
  -</xsl:template>
  -
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ 
  +
  + Description: The configuration page of a coplet
  +
  +-->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<xsl:template match="page">
  +	<xsl:apply-templates/>
  +</xsl:template>
  +
  +<xsl:template match="picture">
  +	<img>
  +		<xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
  +	</img>
  +</xsl:template>
  +
  +
  +<xsl:template match="form">
  +	<form>
  +		<xsl:attribute name="method"><xsl:value-of select="@method"/></xsl:attribute>
  +		<xsl:attribute name="action"><xsl:value-of select="@action"/></xsl:attribute>
  +		<table><tbody>
  +			<xsl:apply-templates select="inputxml"/>
  +			<tr><td colspan="2" align="middle">
  +			<xsl:apply-templates select="input"/>
  +			</td></tr>
  +		</tbody></table>
  +	</form>
  +</xsl:template>
  +
  +<xsl:template match="inputxml">
  +	<tr>
  +		<td><xsl:value-of select="@name"/>:&#160;</td>
  +		<td>
  +			<xsl:choose>
  +				<xsl:when test="@name='Newsfeed'">
  +					<select name="Newsfeed">
  +						<option value="usa">
  +							<xsl:if test="normalize-space(.) = 'usa'">
  +								<xsl:attribute name="selected">true</xsl:attribute>
  +							</xsl:if>
  +							USA
  +						</option>
  +						<option value="entertainmentgeneral">
  +							<xsl:if test="normalize-space(.) = 'entertainmentgeneral'">
  +								<xsl:attribute name="selected">true</xsl:attribute>
  +							</xsl:if>
  +							Entertainment
  +						</option>
  +						<option value="foodanddrink">
  +							<xsl:if test="normalize-space(.) = 'foodanddrink'">
  +								<xsl:attribute name="selected">true</xsl:attribute>
  +							</xsl:if>
  +							Food &amp; Drink
  +						</option>
  +					</select>
  +				</xsl:when>
  +				<xsl:otherwise>
  +					<input>
  +						<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
  +						<xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute>
  +						<xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
  +					</input>
  +				</xsl:otherwise>
  +			</xsl:choose>
  +		</td>
  +	</tr>
  +</xsl:template>
  +
  +<!-- Copy all and apply templates -->
  +<xsl:template match="@*|node()">
  +	<xsl:copy>
  +		<xsl:apply-templates select="@*|node()" />
  +	</xsl:copy>
  +</xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +55 -54    cocoon-2.1/src/blocks/portal-fw/samples/styles/sunrise-user.xsl
  
  Index: sunrise-user.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunrise-user.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sunrise-user.xsl	9 Mar 2003 00:05:33 -0000	1.1
  +++ sunrise-user.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,54 +1,55 @@
  -<?xml version="1.0"?>
  -<!-- $Id$ 
  -
  --->
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -
  -<xsl:param name="password"/>
  -<xsl:param name="name"/>
  -
  -
  -<xsl:template match="authentication">
  -  <authentication>
  -
  -	<xsl:apply-templates select="users"/>
  -
  -  </authentication>
  -</xsl:template>
  -
  -<xsl:template match="users">
  -<xsl:apply-templates select="user"/>
  -</xsl:template>
  -
  -<xsl:template match="user">
  -
  -<xsl:if test="normalize-space(name) = $name and normalize-space(password) = $password">
  -	<ID><xsl:value-of select="name"/></ID>
  -	<role><xsl:value-of select="role"/></role>
  -	<data>
  -		<name><xsl:value-of select="name"/></name>
  -		<role><xsl:value-of select="role"/></role>
  -		<ID><xsl:value-of select="name"/></ID>
  -		<user><xsl:value-of select="name"/></user>
  -		<title><xsl:value-of select="title"/></title>
  -		<firstname><xsl:value-of select="firstname"/></firstname>
  -		<lastname><xsl:value-of select="lastname"/></lastname>
  -		<company><xsl:value-of select="company"/></company>
  -		<street><xsl:value-of select="street"/></street>
  -		<zipcode><xsl:value-of select="zipcode"/></zipcode>
  -		<city><xsl:value-of select="city"/></city>
  -		<country><xsl:value-of select="country"/></country>
  -		<phone><xsl:value-of select="phone"/></phone>
  -		<fax><xsl:value-of select="fax"/></fax>
  -		<email><xsl:value-of select="email"/></email>
  -		<bankid><xsl:value-of select="bankid"/></bankid>
  -		<bankname><xsl:value-of select="bankname"/></bankname>
  -		<accountid><xsl:value-of select="accountid"/></accountid>
  -	</data>
  -</xsl:if>
  -</xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ 
  +
  +-->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +
  +<xsl:param name="password"/>
  +<xsl:param name="name"/>
  +
  +
  +<xsl:template match="authentication">
  +  <authentication>
  +
  +	<xsl:apply-templates select="users"/>
  +
  +  </authentication>
  +</xsl:template>
  +
  +<xsl:template match="users">
  +<xsl:apply-templates select="user"/>
  +</xsl:template>
  +
  +<xsl:template match="user">
  +
  +<xsl:if test="normalize-space(name) = $name and normalize-space(password) = $password">
  +	<ID><xsl:value-of select="name"/></ID>
  +	<role><xsl:value-of select="role"/></role>
  +	<data>
  +		<name><xsl:value-of select="name"/></name>
  +		<role><xsl:value-of select="role"/></role>
  +		<ID><xsl:value-of select="name"/></ID>
  +		<user><xsl:value-of select="name"/></user>
  +		<title><xsl:value-of select="title"/></title>
  +		<firstname><xsl:value-of select="firstname"/></firstname>
  +		<lastname><xsl:value-of select="lastname"/></lastname>
  +		<company><xsl:value-of select="company"/></company>
  +		<street><xsl:value-of select="street"/></street>
  +		<zipcode><xsl:value-of select="zipcode"/></zipcode>
  +		<city><xsl:value-of select="city"/></city>
  +		<country><xsl:value-of select="country"/></country>
  +		<phone><xsl:value-of select="phone"/></phone>
  +		<fax><xsl:value-of select="fax"/></fax>
  +		<email><xsl:value-of select="email"/></email>
  +		<bankid><xsl:value-of select="bankid"/></bankid>
  +		<bankname><xsl:value-of select="bankname"/></bankname>
  +		<accountid><xsl:value-of select="accountid"/></accountid>
  +	</data>
  +</xsl:if>
  +</xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +601 -602  cocoon-2.1/src/blocks/portal-fw/samples/styles/sunriseconfHTML.xsl
  
  Index: sunriseconfHTML.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunriseconfHTML.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sunriseconfHTML.xsl	9 Mar 2003 00:05:33 -0000	1.1
  +++ sunriseconfHTML.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,602 +1,601 @@
  -<?xml version="1.0"?>
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<!-- $Id$ 
  -
  - Description: Portal User configuration to HTML. This stylesheet is
  -              used for the administrator when he manages the users
  -
  --->
  -
  -<xsl:template match="configuration">
  -	<xsl:variable name="role" select="normalize-space(role)"/>
  -
  -	<html>
  -		<head>
  -			<title>Portal User Management</title>
  -		</head>
  -		<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgColor="#cccccc">
  -		<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="100%"><tbody>
  -		    	<tr>
  -			        	<td>
  -			            	<table border="0" cellPadding="0" cellSpacing="2" height="100%" width="100%"><tbody>
  -<!-- Start Header -->				<tr>
  -			                  	<td bgcolor="#AAB9BF" noWrap="" colspan="3">
  -								 <img src="sunspotdemoimg-space.gif" height="5"/>
  -							</td>
  -						</tr>
  -                					<tr>
  -			                  			<td bgcolor="#AAB9BF" noWrap="">	
  -								<img src="sunspotdemoimg-logo.jpg"/>
  -		                  				</td>
  -                  						<td bgcolor="#AAB9BF" align="center" valign="bottom" colspan="2">
  -                    							<font face="Arial, Helvetica, sans-serif" size="6" color="#46627A">
  -									<b>Portal User Management</b>
  -								</font>
  -                  						</td>
  -			              		</tr>
  -	                				<tr>
  -                  						<td noWrap="" width="10%" bgcolor="#cccccc">
  -								<img src="sunspotdemoimg-space.gif" height="10"/>
  -                  						</td>
  -                  						<td width="90%" bgcolor="#cccccc" colspan="2">
  -								<img src="sunspotdemoimg-space.gif"/>
  -							</td>
  -                					</tr>
  -<!-- Ende Header -->
  -<!-- Start Content -->
  -						<tr>
  -                  						<td bgcolor="#46627a">
  -								<img src="sunspotdemoimg-space.gif"/>
  -							</td>
  -							<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -                  						<td align="center"><img src="sunspotdemoimg-space.gif" height="10"/>
  -<!-- add new role -->						<xsl:if test="menue/addrole">
  -									<form method="post">
  -										<xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
  -										<input type="hidden" value="addrole" name="authstate"/>	
  -										<table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
  -											<tr>	
  -												<td>
  -													<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
  -														<tr>
  -															<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
  -															<td width="1%"><img src="sunspotdemoimg-kast_m.gif"/></td>
  -															<td width="1%">
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	<input type="text" name="authrole" size="20"/>
  -																</font>
  -															</td>
  -															<td width="97%">
  -																<img src="sunspotdemoimg-space.gif" width="10"/>
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	<input type="submit" value="Create New Role"/>
  -																</font>
  -															</td>
  -														</tr>
  -														<tr>
  -															<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  -														</tr>
  -													</table>
  -												</td>
  -											</tr>
  -										</table>
  -									</form>
  -								</xsl:if>
  -<!-- delete a role -->						<xsl:if test="menue/delrole">
  -									<form method="post">
  -										<xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
  -										<input type="hidden" value="delrole" name="authstate"/>	
  -										<table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
  -											<tr>	
  -												<td>
  -													<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
  -														<tr>
  -															<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
  -															<td width="1%"><img src="sunspotdemoimg-kast_m.gif"/></td>
  -															<td width="1%">
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	<select name="authrole">
  -																		<xsl:for-each select="roles/role">
  -																			<option>
  -																				<xsl:attribute name="value">
  -																					<xsl:value-of select="normalize-space(.)"/>
  -																				</xsl:attribute>
  -																				<xsl:value-of select="normalize-space(.)"/>
  -																			</option>
  -																		</xsl:for-each>
  -																	</select>
  -																</font>
  -																<img src="sunspotdemoimg-space.gif" width="90" height="1"/>
  -															</td>
  -															<td width="97%">
  -																<img src="sunspotdemoimg-space.gif" width="10"/>
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	<input type="submit" value="Delete Role"/>
  -																</font>
  -															</td>
  -														</tr>
  -														<tr>
  -															<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  -														</tr>
  -													</table>
  -												</td>
  -											</tr>
  -										</table>
  -									</form>
  -								</xsl:if>
  -<!-- User: select role -->						<table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
  -									<tr>	
  -										<td>
  -											<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
  -												<tr>
  -													<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  -												</tr>
  -												<form method="post">
  -													<xsl:attribute name="action">
  -														<xsl:value-of select="normalize-space(uri)"/>
  -													</xsl:attribute>
  -													<input type="hidden" value="selrole" name="authstate"/>
  -													<tr>
  -														<td width="1%">
  -															<img src="sunspotdemoimg-space.gif"/>
  -														</td>
  -														<td width="1%"><img src="sunspotdemoimg-kast_o.gif"/></td>
  -														<td width="1%" colspan="2">
  -															<font face="Arial, Helvetica, sans-serif" size="2">
  -																<b>User</b>
  -															</font>
  -														</td>
  -													</tr>
  -													<tr>
  -														<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -														<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -															<img src="sunspotdemoimg-space.gif"/>
  -														</td>
  -														<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  -													</tr>
  -													<tr>
  -														<td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
  -														<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -															<img src="sunspotdemoimg-kast.gif"/></td>
  -														<td width="1%">
  -															<font face="Arial, Helvetica, sans-serif" size="2">
  -																<select name="authrole">
  -																	<xsl:for-each select="roles/role">
  -																		<option>
  -																			<xsl:attribute name="value">
  -																				<xsl:value-of select="normalize-space(.)"/>
  -																			</xsl:attribute>
  -    	 						            											<xsl:if test="normalize-space(.)=$role">
  -																				<xsl:attribute name="selected">
  -																					true
  -																				</xsl:attribute>
  -																			</xsl:if>
  -																			<xsl:value-of select="normalize-space(.)"/>
  -																		</option>
  -																	</xsl:for-each>
  -																</select>
  -															</font>
  -															<img src="sunspotdemoimg-space.gif" width="90" height="1"/>
  -														</td>
  -														<td>
  -															<img src="sunspotdemoimg-space.gif" width="10"/>
  -															<font face="Arial, Helvetica, sans-serif" size="2">
  -																<input type="submit" value="Choose Role"/>
  -															</font>
  -														</td>
  -													</tr>
  -												</form>
  -												<tr>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -													<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  -														<img src="sunspotdemoimg-line_end.gif"/>
  -													</td>
  -													<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  -												</tr>	
  -<!-- User: select user or new user -->
  -												<xsl:if test="role and not(user)">
  -													<tr>
  -														<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -														<td width="1%" background="sunspotdemoimg-line_bg.gif"><img src="sunspotdemoimg-kast.gif"/></td>
  -														<td width="1%">
  -															<img src="sunspotdemoimg-space.gif"/>	
  -														</td>
  -														<form method="post">
  -															<xsl:attribute name="action">
  -																<xsl:value-of select="normalize-space(uri)"/>
  -															</xsl:attribute>
  -															<input type="hidden" value="adduser" name="authstate"/>
  -												                                    <input type="hidden" name="authrole">
  -																<xsl:attribute name="value">
  -																	<xsl:value-of select="$role"/>
  -																</xsl:attribute>
  -															</input>
  -															<td>
  -																<img src="sunspotdemoimg-space.gif" width="10"/>
  -																<input type="submit" value="Create New User"/>	
  -															</td>
  -														</form>
  -													</tr>
  -													<tr>
  -														<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -														<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  -															<img src="sunspotdemoimg-line_end.gif"/>
  -														</td>
  -														<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  -													</tr>
  -													<xsl:if test="users/user/ID">
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%">
  -																<img src="sunspotdemoimg-kast_u.gif"/>
  -															</td>
  -															<form method="post">
  -																<xsl:attribute name="action">
  -																	<xsl:value-of select="normalize-space(uri)"/>
  -																</xsl:attribute>
  -																<input type="hidden" value="seluser" name="authstate"/>
  -												                                                 <input type="hidden" name="authrole">
  -																	<xsl:attribute name="value">
  -																		<xsl:value-of select="$role"/>
  -																	</xsl:attribute>
  -																</input>
  -																<td width="1%">
  -																	<select name="authid">
  -																		<xsl:for-each select="users/user/ID">
  -																			<option>
  -																				<xsl:attribute name="value">
  -																					<xsl:value-of select="normalize-space(.)"/>
  -																				</xsl:attribute>
  -																				<xsl:if test="normalize-space(.)=$role">
  -																					<xsl:attribute name="selected">
  -																						true
  -																					</xsl:attribute>
  -																				</xsl:if>
  -																				<xsl:value-of select="normalize-space(.)"/>
  -																			</option>
  -																		</xsl:for-each>
  -																	</select>	
  -																</td>
  -																<td>
  -																	<img src="sunspotdemoimg-space.gif" width="10"/>
  -																	<input type="submit" value="Choose User"/>	
  -																</td>
  -															</form>
  -														</tr>
  -													</xsl:if>
  -												</xsl:if>
  -												<xsl:if test="user">	
  -													<xsl:variable name="user" select="normalize-space(user)"/>
  -													<form method="post">
  -					 									<xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
  -														<input type="hidden" value="chguser" name="authstate"/>
  -														<input type="hidden" name="authuser">
  -															<xsl:choose>
  -																<xsl:when test="$user='error'">
  -																	<xsl:attribute name="value">new</xsl:attribute>
  -																</xsl:when>
  -																<xsl:otherwise>
  -																	<xsl:attribute name="value">
  -																		<xsl:value-of select="normalize-space(user)"/>
  -																	</xsl:attribute>
  -																</xsl:otherwise>
  -															</xsl:choose>
  -														</input>
  -														<input type="hidden" name="autholdrole" value="{$role}"/>
  -														<input type="hidden" name="autholdpassword" value="{normalize-space(uservalues/data/password)}"/>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																<img src="sunspotdemoimg-kast.gif"/>
  -															</td>
  -															<td width="1%" colspan="2">
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	<b>User Information</b>
  -																</font>
  -															</td>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																<img src="sunspotdemoimg-space.gif"/>
  -															</td>
  -															<td width="1%">
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	Title:
  -																</font>
  -															</td>
  -															<td>
  -																<img src="sunspotdemoimg-space.gif" width="10"/>
  -																<select name="title">
  -																	<option>
  -																		<xsl:if test="normalize-space(uservalues/data/title)='Mr.'">
  -																			<xsl:attribute name="selected">
  -																				true
  -																			</xsl:attribute>
  -																		</xsl:if>
  -                                                       														Mr.
  -																	</option>
  -																	<option>
  -																		<xsl:if test="normalize-space(uservalues/data/title)='Mrs.'">
  -																			<xsl:attribute name="selected">
  -																				true
  -																			</xsl:attribute>
  -																		</xsl:if>
  -                                                         														Mrs.
  -																	</option>
  -																</select>
  -															</td>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																<img src="sunspotdemoimg-space.gif"/>
  -															</td>
  -															<td width="1%">
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	Firstname:
  -																</font>
  -															</td>
  -															<td>
  -																<img src="sunspotdemoimg-space.gif" width="10"/>
  -																<xsl:choose>
  -																	<xsl:when test="$user='new'">
  -																		<input type="text" name="firstname" value="??"/>
  -																	</xsl:when>
  -																	<xsl:when test="$user='error'">
  -																		<input type="text" name="firstname" value="{uservalues/data/firstname}"/> 
  -																	</xsl:when>
  -																	<xsl:otherwise>
  -																		<input type="text" name="firstname" value="{uservalues/data/firstname}"/>
  -																	</xsl:otherwise>
  -																</xsl:choose>
  -															</td>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																<img src="sunspotdemoimg-space.gif"/>
  -															</td>
  -															<td width="1%">
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	Lastname:
  -																</font>
  -															</td>
  -															<td>
  -																<img src="sunspotdemoimg-space.gif" width="10"/>
  -																<xsl:choose>
  -																	<xsl:when test="$user='new'">
  -																		<input type="text" name="lastname" value="??"/>
  -																	</xsl:when>
  -																	<xsl:otherwise>
  -																		<input type="text" name="lastname">
  -																			<xsl:attribute name="value">
  -																				<xsl:value-of select="uservalues/data/lastname"/>
  -																			</xsl:attribute>
  -																		</input>
  -																	</xsl:otherwise>
  -																</xsl:choose>
  -															</td>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																<img src="sunspotdemoimg-space.gif"/>
  -															</td>
  -															<td width="1%">
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	Login:
  -																</font>
  -															</td>
  -															<td>
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	<img src="sunspotdemoimg-space.gif" width="10"/>
  -																	<xsl:choose>
  -																		<xsl:when test="$user='new'">
  -																			<input type="text" name="authid" value="??"/>
  -																		</xsl:when>
  -																		<xsl:when test="$user='error'">
  -																			<input type="text" name="authid" value="{uservalues/data/ID}"/>
  -																		</xsl:when>
  -																		<xsl:otherwise>
  -																			<xsl:value-of select="uservalues/data/ID"/>
  -																			<input type="hidden" name="authid">
  -																				<xsl:attribute name="value">
  -																					<xsl:value-of select="normalize-space(uservalues/data/ID)"/>
  -																				</xsl:attribute>
  -																			</input>
  -																		</xsl:otherwise>
  -																	</xsl:choose>
  -																</font>
  -															</td>
  -														</tr>
  -														<xsl:if test="$user='error'">
  -															<tr>
  -																<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -																<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																	<img src="sunspotdemoimg-space.gif"/>
  -																</td>
  -																<td width="1%">
  -																	<font face="Arial, Helvetica, sans-serif" size="2">&#160;</font>
  -																</td>
  -																<td>
  -																	<font face="Arial, Helvetica, sans-serif" size="2" color="ff1111">
  -																		<img src="sunspotdemoimg-space.gif" width="10"/>
  -																		User already exists
  -																	</font>
  -																</td>
  -															</tr>
  -														</xsl:if>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																<img src="sunspotdemoimg-space.gif"/>
  -															</td>
  -															<td width="1%">
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	Password:
  -																</font>
  -															</td>
  -															<td>
  -																<img src="sunspotdemoimg-space.gif" width="10"/>
  -																<xsl:choose>
  -																	<xsl:when test="$user='new'">
  -																		<input type="password" name="password" value=""/>
  -																	</xsl:when>
  -																	<xsl:otherwise>
  -																		<input type="password" name="password" value="{uservalues/data/password}"/>
  -																	</xsl:otherwise>
  -																</xsl:choose>
  -															</td>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																<img src="sunspotdemoimg-space.gif"/>
  -															</td>
  -															<td width="1%">
  -																<font face="Arial, Helvetica, sans-serif" size="2">
  -																	Role:
  -																</font>
  -															</td>
  -															<td>
  -																<img src="sunspotdemoimg-space.gif" width="10"/>
  -																<select name="authrole">
  -																	<xsl:for-each select="roles/role">
  -																		<option>
  -																			<xsl:attribute name="value">
  -																				<xsl:value-of select="normalize-space(.)"/>
  -																			</xsl:attribute>
  -																			<xsl:if test="normalize-space(.)=$role">
  -																				<xsl:attribute name="selected">
  -																					true
  -																				</xsl:attribute>
  -																			</xsl:if>
  -																			<xsl:value-of select="normalize-space(.)"/>
  -																		</option>
  -																	</xsl:for-each>
  -																</select>
  -															</td>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  -																<img src="sunspotdemoimg-line_end.gif"/>
  -															</td>
  -															<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																<img src="sunspotdemoimg-kast_url_u.gif"/>
  -															</td>
  -															<xsl:choose>
  -																<xsl:when test="not($user='new') and not($user='error')">
  -																	<td width="1%">
  -																		<font face="Arial, Helvetica, sans-serif" size="2">
  -																			<input type="checkbox" value="true" name="authdeluser"/>	
  -																		</font>			
  -																	</td>
  -																	<td width="97%">
  -																		<img src="sunspotdemoimg-space.gif" width="10"/>
  -																		<font face="Arial, Helvetica, sans-serif" size="2">
  -																			Delete User
  -																		</font>
  -																	</td>
  -																</xsl:when>
  -																<xsl:otherwise>
  -																	<td width="1%">
  -																		<img src="sunspotdemoimg-space.gif" width="10"/>		
  -																	</td>
  -																	<td width="97%">
  -																		<img src="sunspotdemoimg-space.gif" width="10"/>
  -																	</td>
  -																</xsl:otherwise>
  -															</xsl:choose>
  -														</tr>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  -																<img src="sunspotdemoimg-line_end.gif"/>
  -															</td>
  -															<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  -														</tr>
  -														<xsl:if test="addeduser">	
  -															<tr>
  -																<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -																<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -																	<img src="sunspotdemoimg-kast.gif"/>
  -																</td>
  -																<td width="1%" colspan="2">
  -																	<font face="Arial, Helvetica, sans-serif" size="2">
  -																		User <xsl:value-of select="normalize-space(addeduser)"/> created.
  -																	</font>
  -																</td>
  -															</tr>
  -														</xsl:if>
  -														<tr>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -															<td width="1%">
  -																<img src="sunspotdemoimg-kast_url_u.gif"/>
  -															</td>
  -															<td width="1%"><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -															<td>
  -																<img src="sunspotdemoimg-space.gif" width="10"/>
  -																<xsl:choose>
  -																	<xsl:when test="$user='new' or $user='error'">
  -																		<input type="submit" name="Create New" value="Create New"/>
  -																	</xsl:when>
  -																	<xsl:otherwise>
  -																		<input type="submit" name="Change" value="Change"/>
  -																	</xsl:otherwise>
  -																</xsl:choose>
  -															</td>
  -														</tr>
  -													</form>
  -												</xsl:if>
  -												<tr>
  -													<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  -												</tr>
  -											</table>
  -										</td>
  -									</tr>
  -								</table>
  -								<img src="sunspotdemoimg-space.gif" height="20"/>
  -							</td>
  -			                		</tr>
  -<!-- Ende Content -->
  -
  -<!-- Start Bottom -->
  -						<tr>   
  -          							<td bgcolor="#AAB9BF" noWrap="" colspan="3">
  -								<img src="sunspotdemoimg-space.gif" height="8"/>
  -							</td>
  -						</tr>
  -<!-- Ende Bottom -->
  -
  -					</tbody></table>
  -				</td>
  -			</tr>
  -		</tbody></table>
  -	</body>
  -</html>
  -</xsl:template>
  -
  -<!-- Copy all and apply templates -->
  -
  -<xsl:template match="@*|node()">
  -   <xsl:copy>
  -    <xsl:apply-templates select="@*|node()" />
  -   </xsl:copy>
  -  </xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ 
  +
  + Description: Portal User configuration to HTML. This stylesheet is
  +              used for the administrator when he manages the users
  +
  +-->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<xsl:template match="configuration">
  +	<xsl:variable name="role" select="normalize-space(role)"/>
  +
  +	<html>
  +		<head>
  +			<title>Portal User Management</title>
  +		</head>
  +		<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgColor="#cccccc">
  +		<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="100%"><tbody>
  +		    	<tr>
  +			        	<td>
  +			            	<table border="0" cellPadding="0" cellSpacing="2" height="100%" width="100%"><tbody>
  +<!-- Start Header -->				<tr>
  +			                  	<td bgcolor="#AAB9BF" noWrap="" colspan="3">
  +								 <img src="sunspotdemoimg-space.gif" height="5"/>
  +							</td>
  +						</tr>
  +                					<tr>
  +			                  			<td bgcolor="#AAB9BF" noWrap="">	
  +								<img src="sunspotdemoimg-logo.jpg"/>
  +		                  				</td>
  +                  						<td bgcolor="#AAB9BF" align="center" valign="bottom" colspan="2">
  +                    							<font face="Arial, Helvetica, sans-serif" size="6" color="#46627A">
  +									<b>Portal User Management</b>
  +								</font>
  +                  						</td>
  +			              		</tr>
  +	                				<tr>
  +                  						<td noWrap="" width="10%" bgcolor="#cccccc">
  +								<img src="sunspotdemoimg-space.gif" height="10"/>
  +                  						</td>
  +                  						<td width="90%" bgcolor="#cccccc" colspan="2">
  +								<img src="sunspotdemoimg-space.gif"/>
  +							</td>
  +                					</tr>
  +<!-- Ende Header -->
  +<!-- Start Content -->
  +						<tr>
  +                  						<td bgcolor="#46627a">
  +								<img src="sunspotdemoimg-space.gif"/>
  +							</td>
  +							<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +                  						<td align="center"><img src="sunspotdemoimg-space.gif" height="10"/>
  +<!-- add new role -->						<xsl:if test="menue/addrole">
  +									<form method="post">
  +										<xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
  +										<input type="hidden" value="addrole" name="authstate"/>	
  +										<table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
  +											<tr>	
  +												<td>
  +													<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
  +														<tr>
  +															<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
  +															<td width="1%"><img src="sunspotdemoimg-kast_m.gif"/></td>
  +															<td width="1%">
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	<input type="text" name="authrole" size="20"/>
  +																</font>
  +															</td>
  +															<td width="97%">
  +																<img src="sunspotdemoimg-space.gif" width="10"/>
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	<input type="submit" value="Create New Role"/>
  +																</font>
  +															</td>
  +														</tr>
  +														<tr>
  +															<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  +														</tr>
  +													</table>
  +												</td>
  +											</tr>
  +										</table>
  +									</form>
  +								</xsl:if>
  +<!-- delete a role -->						<xsl:if test="menue/delrole">
  +									<form method="post">
  +										<xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
  +										<input type="hidden" value="delrole" name="authstate"/>	
  +										<table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
  +											<tr>	
  +												<td>
  +													<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
  +														<tr>
  +															<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
  +															<td width="1%"><img src="sunspotdemoimg-kast_m.gif"/></td>
  +															<td width="1%">
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	<select name="authrole">
  +																		<xsl:for-each select="roles/role">
  +																			<option>
  +																				<xsl:attribute name="value">
  +																					<xsl:value-of select="normalize-space(.)"/>
  +																				</xsl:attribute>
  +																				<xsl:value-of select="normalize-space(.)"/>
  +																			</option>
  +																		</xsl:for-each>
  +																	</select>
  +																</font>
  +																<img src="sunspotdemoimg-space.gif" width="90" height="1"/>
  +															</td>
  +															<td width="97%">
  +																<img src="sunspotdemoimg-space.gif" width="10"/>
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	<input type="submit" value="Delete Role"/>
  +																</font>
  +															</td>
  +														</tr>
  +														<tr>
  +															<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  +														</tr>
  +													</table>
  +												</td>
  +											</tr>
  +										</table>
  +									</form>
  +								</xsl:if>
  +<!-- User: select role -->						<table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
  +									<tr>	
  +										<td>
  +											<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
  +												<tr>
  +													<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  +												</tr>
  +												<form method="post">
  +													<xsl:attribute name="action">
  +														<xsl:value-of select="normalize-space(uri)"/>
  +													</xsl:attribute>
  +													<input type="hidden" value="selrole" name="authstate"/>
  +													<tr>
  +														<td width="1%">
  +															<img src="sunspotdemoimg-space.gif"/>
  +														</td>
  +														<td width="1%"><img src="sunspotdemoimg-kast_o.gif"/></td>
  +														<td width="1%" colspan="2">
  +															<font face="Arial, Helvetica, sans-serif" size="2">
  +																<b>User</b>
  +															</font>
  +														</td>
  +													</tr>
  +													<tr>
  +														<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +														<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +															<img src="sunspotdemoimg-space.gif"/>
  +														</td>
  +														<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  +													</tr>
  +													<tr>
  +														<td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
  +														<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +															<img src="sunspotdemoimg-kast.gif"/></td>
  +														<td width="1%">
  +															<font face="Arial, Helvetica, sans-serif" size="2">
  +																<select name="authrole">
  +																	<xsl:for-each select="roles/role">
  +																		<option>
  +																			<xsl:attribute name="value">
  +																				<xsl:value-of select="normalize-space(.)"/>
  +																			</xsl:attribute>
  +    	 						            											<xsl:if test="normalize-space(.)=$role">
  +																				<xsl:attribute name="selected">
  +																					true
  +																				</xsl:attribute>
  +																			</xsl:if>
  +																			<xsl:value-of select="normalize-space(.)"/>
  +																		</option>
  +																	</xsl:for-each>
  +																</select>
  +															</font>
  +															<img src="sunspotdemoimg-space.gif" width="90" height="1"/>
  +														</td>
  +														<td>
  +															<img src="sunspotdemoimg-space.gif" width="10"/>
  +															<font face="Arial, Helvetica, sans-serif" size="2">
  +																<input type="submit" value="Choose Role"/>
  +															</font>
  +														</td>
  +													</tr>
  +												</form>
  +												<tr>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +													<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  +														<img src="sunspotdemoimg-line_end.gif"/>
  +													</td>
  +													<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  +												</tr>	
  +<!-- User: select user or new user -->
  +												<xsl:if test="role and not(user)">
  +													<tr>
  +														<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +														<td width="1%" background="sunspotdemoimg-line_bg.gif"><img src="sunspotdemoimg-kast.gif"/></td>
  +														<td width="1%">
  +															<img src="sunspotdemoimg-space.gif"/>	
  +														</td>
  +														<form method="post">
  +															<xsl:attribute name="action">
  +																<xsl:value-of select="normalize-space(uri)"/>
  +															</xsl:attribute>
  +															<input type="hidden" value="adduser" name="authstate"/>
  +												                                    <input type="hidden" name="authrole">
  +																<xsl:attribute name="value">
  +																	<xsl:value-of select="$role"/>
  +																</xsl:attribute>
  +															</input>
  +															<td>
  +																<img src="sunspotdemoimg-space.gif" width="10"/>
  +																<input type="submit" value="Create New User"/>	
  +															</td>
  +														</form>
  +													</tr>
  +													<tr>
  +														<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +														<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  +															<img src="sunspotdemoimg-line_end.gif"/>
  +														</td>
  +														<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  +													</tr>
  +													<xsl:if test="users/user/ID">
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%">
  +																<img src="sunspotdemoimg-kast_u.gif"/>
  +															</td>
  +															<form method="post">
  +																<xsl:attribute name="action">
  +																	<xsl:value-of select="normalize-space(uri)"/>
  +																</xsl:attribute>
  +																<input type="hidden" value="seluser" name="authstate"/>
  +												                                                 <input type="hidden" name="authrole">
  +																	<xsl:attribute name="value">
  +																		<xsl:value-of select="$role"/>
  +																	</xsl:attribute>
  +																</input>
  +																<td width="1%">
  +																	<select name="authid">
  +																		<xsl:for-each select="users/user/ID">
  +																			<option>
  +																				<xsl:attribute name="value">
  +																					<xsl:value-of select="normalize-space(.)"/>
  +																				</xsl:attribute>
  +																				<xsl:if test="normalize-space(.)=$role">
  +																					<xsl:attribute name="selected">
  +																						true
  +																					</xsl:attribute>
  +																				</xsl:if>
  +																				<xsl:value-of select="normalize-space(.)"/>
  +																			</option>
  +																		</xsl:for-each>
  +																	</select>	
  +																</td>
  +																<td>
  +																	<img src="sunspotdemoimg-space.gif" width="10"/>
  +																	<input type="submit" value="Choose User"/>	
  +																</td>
  +															</form>
  +														</tr>
  +													</xsl:if>
  +												</xsl:if>
  +												<xsl:if test="user">	
  +													<xsl:variable name="user" select="normalize-space(user)"/>
  +													<form method="post">
  +					 									<xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
  +														<input type="hidden" value="chguser" name="authstate"/>
  +														<input type="hidden" name="authuser">
  +															<xsl:choose>
  +																<xsl:when test="$user='error'">
  +																	<xsl:attribute name="value">new</xsl:attribute>
  +																</xsl:when>
  +																<xsl:otherwise>
  +																	<xsl:attribute name="value">
  +																		<xsl:value-of select="normalize-space(user)"/>
  +																	</xsl:attribute>
  +																</xsl:otherwise>
  +															</xsl:choose>
  +														</input>
  +														<input type="hidden" name="autholdrole" value="{$role}"/>
  +														<input type="hidden" name="autholdpassword" value="{normalize-space(uservalues/data/password)}"/>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																<img src="sunspotdemoimg-kast.gif"/>
  +															</td>
  +															<td width="1%" colspan="2">
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	<b>User Information</b>
  +																</font>
  +															</td>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																<img src="sunspotdemoimg-space.gif"/>
  +															</td>
  +															<td width="1%">
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	Title:
  +																</font>
  +															</td>
  +															<td>
  +																<img src="sunspotdemoimg-space.gif" width="10"/>
  +																<select name="title">
  +																	<option>
  +																		<xsl:if test="normalize-space(uservalues/data/title)='Mr.'">
  +																			<xsl:attribute name="selected">
  +																				true
  +																			</xsl:attribute>
  +																		</xsl:if>
  +                                                       														Mr.
  +																	</option>
  +																	<option>
  +																		<xsl:if test="normalize-space(uservalues/data/title)='Mrs.'">
  +																			<xsl:attribute name="selected">
  +																				true
  +																			</xsl:attribute>
  +																		</xsl:if>
  +                                                         														Mrs.
  +																	</option>
  +																</select>
  +															</td>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																<img src="sunspotdemoimg-space.gif"/>
  +															</td>
  +															<td width="1%">
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	Firstname:
  +																</font>
  +															</td>
  +															<td>
  +																<img src="sunspotdemoimg-space.gif" width="10"/>
  +																<xsl:choose>
  +																	<xsl:when test="$user='new'">
  +																		<input type="text" name="firstname" value="??"/>
  +																	</xsl:when>
  +																	<xsl:when test="$user='error'">
  +																		<input type="text" name="firstname" value="{uservalues/data/firstname}"/> 
  +																	</xsl:when>
  +																	<xsl:otherwise>
  +																		<input type="text" name="firstname" value="{uservalues/data/firstname}"/>
  +																	</xsl:otherwise>
  +																</xsl:choose>
  +															</td>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																<img src="sunspotdemoimg-space.gif"/>
  +															</td>
  +															<td width="1%">
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	Lastname:
  +																</font>
  +															</td>
  +															<td>
  +																<img src="sunspotdemoimg-space.gif" width="10"/>
  +																<xsl:choose>
  +																	<xsl:when test="$user='new'">
  +																		<input type="text" name="lastname" value="??"/>
  +																	</xsl:when>
  +																	<xsl:otherwise>
  +																		<input type="text" name="lastname">
  +																			<xsl:attribute name="value">
  +																				<xsl:value-of select="uservalues/data/lastname"/>
  +																			</xsl:attribute>
  +																		</input>
  +																	</xsl:otherwise>
  +																</xsl:choose>
  +															</td>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																<img src="sunspotdemoimg-space.gif"/>
  +															</td>
  +															<td width="1%">
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	Login:
  +																</font>
  +															</td>
  +															<td>
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	<img src="sunspotdemoimg-space.gif" width="10"/>
  +																	<xsl:choose>
  +																		<xsl:when test="$user='new'">
  +																			<input type="text" name="authid" value="??"/>
  +																		</xsl:when>
  +																		<xsl:when test="$user='error'">
  +																			<input type="text" name="authid" value="{uservalues/data/ID}"/>
  +																		</xsl:when>
  +																		<xsl:otherwise>
  +																			<xsl:value-of select="uservalues/data/ID"/>
  +																			<input type="hidden" name="authid">
  +																				<xsl:attribute name="value">
  +																					<xsl:value-of select="normalize-space(uservalues/data/ID)"/>
  +																				</xsl:attribute>
  +																			</input>
  +																		</xsl:otherwise>
  +																	</xsl:choose>
  +																</font>
  +															</td>
  +														</tr>
  +														<xsl:if test="$user='error'">
  +															<tr>
  +																<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +																<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																	<img src="sunspotdemoimg-space.gif"/>
  +																</td>
  +																<td width="1%">
  +																	<font face="Arial, Helvetica, sans-serif" size="2">&#160;</font>
  +																</td>
  +																<td>
  +																	<font face="Arial, Helvetica, sans-serif" size="2" color="ff1111">
  +																		<img src="sunspotdemoimg-space.gif" width="10"/>
  +																		User already exists
  +																	</font>
  +																</td>
  +															</tr>
  +														</xsl:if>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																<img src="sunspotdemoimg-space.gif"/>
  +															</td>
  +															<td width="1%">
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	Password:
  +																</font>
  +															</td>
  +															<td>
  +																<img src="sunspotdemoimg-space.gif" width="10"/>
  +																<xsl:choose>
  +																	<xsl:when test="$user='new'">
  +																		<input type="password" name="password" value=""/>
  +																	</xsl:when>
  +																	<xsl:otherwise>
  +																		<input type="password" name="password" value="{uservalues/data/password}"/>
  +																	</xsl:otherwise>
  +																</xsl:choose>
  +															</td>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																<img src="sunspotdemoimg-space.gif"/>
  +															</td>
  +															<td width="1%">
  +																<font face="Arial, Helvetica, sans-serif" size="2">
  +																	Role:
  +																</font>
  +															</td>
  +															<td>
  +																<img src="sunspotdemoimg-space.gif" width="10"/>
  +																<select name="authrole">
  +																	<xsl:for-each select="roles/role">
  +																		<option>
  +																			<xsl:attribute name="value">
  +																				<xsl:value-of select="normalize-space(.)"/>
  +																			</xsl:attribute>
  +																			<xsl:if test="normalize-space(.)=$role">
  +																				<xsl:attribute name="selected">
  +																					true
  +																				</xsl:attribute>
  +																			</xsl:if>
  +																			<xsl:value-of select="normalize-space(.)"/>
  +																		</option>
  +																	</xsl:for-each>
  +																</select>
  +															</td>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  +																<img src="sunspotdemoimg-line_end.gif"/>
  +															</td>
  +															<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																<img src="sunspotdemoimg-kast_url_u.gif"/>
  +															</td>
  +															<xsl:choose>
  +																<xsl:when test="not($user='new') and not($user='error')">
  +																	<td width="1%">
  +																		<font face="Arial, Helvetica, sans-serif" size="2">
  +																			<input type="checkbox" value="true" name="authdeluser"/>	
  +																		</font>			
  +																	</td>
  +																	<td width="97%">
  +																		<img src="sunspotdemoimg-space.gif" width="10"/>
  +																		<font face="Arial, Helvetica, sans-serif" size="2">
  +																			Delete User
  +																		</font>
  +																	</td>
  +																</xsl:when>
  +																<xsl:otherwise>
  +																	<td width="1%">
  +																		<img src="sunspotdemoimg-space.gif" width="10"/>		
  +																	</td>
  +																	<td width="97%">
  +																		<img src="sunspotdemoimg-space.gif" width="10"/>
  +																	</td>
  +																</xsl:otherwise>
  +															</xsl:choose>
  +														</tr>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  +																<img src="sunspotdemoimg-line_end.gif"/>
  +															</td>
  +															<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  +														</tr>
  +														<xsl:if test="addeduser">	
  +															<tr>
  +																<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +																<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +																	<img src="sunspotdemoimg-kast.gif"/>
  +																</td>
  +																<td width="1%" colspan="2">
  +																	<font face="Arial, Helvetica, sans-serif" size="2">
  +																		User <xsl:value-of select="normalize-space(addeduser)"/> created.
  +																	</font>
  +																</td>
  +															</tr>
  +														</xsl:if>
  +														<tr>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +															<td width="1%">
  +																<img src="sunspotdemoimg-kast_url_u.gif"/>
  +															</td>
  +															<td width="1%"><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +															<td>
  +																<img src="sunspotdemoimg-space.gif" width="10"/>
  +																<xsl:choose>
  +																	<xsl:when test="$user='new' or $user='error'">
  +																		<input type="submit" name="Create New" value="Create New"/>
  +																	</xsl:when>
  +																	<xsl:otherwise>
  +																		<input type="submit" name="Change" value="Change"/>
  +																	</xsl:otherwise>
  +																</xsl:choose>
  +															</td>
  +														</tr>
  +													</form>
  +												</xsl:if>
  +												<tr>
  +													<td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  +												</tr>
  +											</table>
  +										</td>
  +									</tr>
  +								</table>
  +								<img src="sunspotdemoimg-space.gif" height="20"/>
  +							</td>
  +			                		</tr>
  +<!-- Ende Content -->
  +
  +<!-- Start Bottom -->
  +						<tr>   
  +          							<td bgcolor="#AAB9BF" noWrap="" colspan="3">
  +								<img src="sunspotdemoimg-space.gif" height="8"/>
  +							</td>
  +						</tr>
  +<!-- Ende Bottom -->
  +
  +					</tbody></table>
  +				</td>
  +			</tr>
  +		</tbody></table>
  +	</body>
  +</html>
  +</xsl:template>
  +
  +  <!-- Copy all and apply templates -->
  +  <xsl:template match="@*|node()">
  +   <xsl:copy>
  +    <xsl:apply-templates select="@*|node()" />
  +   </xsl:copy>
  +  </xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +219 -220  cocoon-2.1/src/blocks/portal-fw/samples/styles/sunriseeditHTML.xsl
  
  Index: sunriseeditHTML.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunriseeditHTML.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sunriseeditHTML.xsl	9 Mar 2003 00:05:33 -0000	1.1
  +++ sunriseeditHTML.xsl	6 May 2003 14:12:55 -0000	1.2
  @@ -1,220 +1,219 @@
  -<?xml version="1.0"?>
  -
  -<xsl:stylesheet version="1.0" 
  -                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -
  -<!-- $Id$ 
  -
  - Description: Portal User Management to HTML. This stylesheet is used
  -              if the user changes his own information.
  -
  --->
  -
  -<xsl:template match="configuration">
  -	<xsl:variable name="role" select="normalize-space(role)"/>
  -
  -<html>
  -<head>
  -    <title>Portal User Managemenet</title>
  -</head>
  -<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgColor="#ffffff">
  -<table border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%">
  -	<tr>
  -
  -<!-- menue -->
  -		<td height="100%" noWrap="" width="193" valign="top" bgcolor="#cccccc">
  -		<img height="2" src="sunspotdemoimg-space.gif" width="1"/>
  -			<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="100%">
  -				<tr>
  -					<td>
  -						<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="2" width="100%">
  -							<tr>
  -								<td bgcolor="#46627A" width="1%">
  -									<img src="sunspotdemoimg-space.gif" width="20" height="40"/>
  -								</td>
  -								<td bgcolor="#cccccc">
  -									<br/>
  -									<font face="Arial, Helvetica, sans-serif" size="2">
  -										<b><a target="_top" href="sunspotdemo-portal">
  -											<blockquote>Your Portal</blockquote>
  -										</a></b>
  -									</font>
  -								</td>
  -							</tr>
  -						</table>
  -					</td>
  -				</tr>
  -			</table>
  -		</td>
  -<!-- /menue -->
  -		<td>
  -<!-- content -->
  -            		<table border="0" cellPadding="0" cellSpacing="2" height="100%" width="100%">
  -              			<tbody>
  -					<tr>
  -						<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -                  				<td valign="top"><img src="sunspotdemoimg-space.gif" height="10"/><br/>
  -                                                	<table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A">
  -								<tr>
  -									<td>
  -										<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff">
  -											<tr>
  -												<td colspan="5"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  -											</tr>
  -											<xsl:variable name="user" select="normalize-space(user)"/>
  -											<xsl:variable name="linkurl"><xsl:value-of select="normalize-space(uri)"/><xsl:value-of select="urlrewrite"/></xsl:variable>
  -											<form method="post" action="{translate(normalize-space($linkurl), ' ', '')}">
  -												<input type="hidden" name="authstate" value="chguser"/>
  -					                            	        	<input type="hidden" name="authrole" value="{$role}"/>
  -												<input type="hidden" name="authuser" value="{normalize-space(user)}"/>
  -												<input type="hidden" name="autholdrole" value="{$role}"/>
  -												<input type="hidden" name="autholdpassword" value="{normalize-space(uservalues/data/password)}"/>
  -												<tr>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -													<td width="1%">
  -														<img src="sunspotdemoimg-kast_o.gif"/>
  -													</td>
  -													<td width="1%" colspan="2">
  -														<font face="Arial, Helvetica, sans-serif" size="2">
  -															<b>User Information</b>
  -														</font>
  -													</td>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -												</tr>
  -												<tr>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -														<img src="sunspotdemoimg-space.gif"/>
  -													</td>
  -													<td width="1%">
  -														<font face="Arial, Helvetica, sans-serif" size="2">
  -															Title:
  -														</font>
  -													</td>
  -													<td>
  -														<img src="sunspotdemoimg-space.gif" width="10"/>
  -														<select name="title">
  -															<option><xsl:if test="normalize-space(uservalues/data/title)='Mr.'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Mr.</option>
  -															<option><xsl:if test="normalize-space(uservalues/data/title)='Mrs.'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Mrs.</option>
  -														</select>
  -													</td>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -												</tr>
  -												<tr>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -														<img src="sunspotdemoimg-space.gif"/>
  -													</td>
  -													<td width="1%">
  -														<font face="Arial, Helvetica, sans-serif" size="2">
  -															Firstname:
  -														</font>
  -													</td>
  -													<td>
  -														<img src="sunspotdemoimg-space.gif" width="10"/>
  -														<input size="35" type="text" name="firstname" value="{normalize-space(uservalues/data/firstname)}"/>
  -													</td>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -												</tr>
  -												<tr>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -														<img src="sunspotdemoimg-space.gif"/>
  -													</td>
  -													<td width="1%">
  -														<font face="Arial, Helvetica, sans-serif" size="2">
  -															Lastname:
  -														</font>
  -													</td>
  -													<td>
  -														<img src="sunspotdemoimg-space.gif" width="10"/>
  -														<input size="35" type="text" name="lastname" value="{normalize-space(uservalues/data/lastname)}"/>
  -													</td>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -												</tr>
  -												<tr>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -														<img src="sunspotdemoimg-space.gif"/>
  -													</td>
  -													<td width="1%">
  -														<font face="Arial, Helvetica, sans-serif" size="2">
  -															Login:
  -														</font>
  -													</td>
  -													<td>
  -														<img src="sunspotdemoimg-space.gif" width="10"/>
  -														<font face="Arial, Helvetica, sans-serif" size="2">
  -															<xsl:value-of select="uservalues/data/ID"/>
  -															<input type="hidden" name="authid" value="{normalize-space(uservalues/data/ID)}"/>
  -														</font>
  -													</td>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -												</tr>
  -												<tr>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  -														<img src="sunspotdemoimg-space.gif"/>
  -													</td>
  -													<td width="1%">
  -														<font face="Arial, Helvetica, sans-serif" size="2">
  -															Password:
  -														</font>
  -													</td>
  -													<td>
  -														<img src="sunspotdemoimg-space.gif" width="10"/>
  -														<input size="35" type="password" name="password" value="{normalize-space(uservalues/data/password)}"/>
  -													</td>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -												</tr>
  -												<tr>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -													<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  -														<img src="sunspotdemoimg-line_end.gif"/>
  -													</td>
  -													<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -												</tr>
  -												<tr>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -													<td width="1%">
  -														<img src="sunspotdemoimg-kast_url_u.gif"/>
  -													</td>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif" width="10"/></td>
  -													<td>
  -														<img src="sunspotdemoimg-space.gif" width="10"/>
  -														<input type="submit" name="Change" value="Change"/>
  -													</td>
  -													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  -												</tr>
  -												</form>
  -												<tr>
  -													<td colspan="5"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  -												</tr>
  -											</table>
  -										</td>
  -									</tr>
  -								</table>
  -								<img src="sunspotdemoimg-space.gif" height="20"/>
  -							</td>
  -                				</tr>
  -					</tbody>
  -				</table>
  -			</td>
  -<!-- /content -->
  -
  -		</tr>
  -	</table>
  -</body>
  -</html>
  -</xsl:template>
  -
  -<!-- Copy all and apply templates -->
  -
  -<xsl:template match="@*|node()">
  -   <xsl:copy>
  -    <xsl:apply-templates select="@*|node()" />
  -   </xsl:copy>
  -  </xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<!-- $Id$ 
  +
  + Description: Portal User Management to HTML. This stylesheet is used
  +              if the user changes his own information.
  +
  +-->
  +
  +<xsl:stylesheet version="1.0" 
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +
  +<xsl:template match="configuration">
  +	<xsl:variable name="role" select="normalize-space(role)"/>
  +
  +<html>
  +<head>
  +    <title>Portal User Managemenet</title>
  +</head>
  +<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgColor="#ffffff">
  +<table border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%">
  +	<tr>
  +
  +<!-- menue -->
  +		<td height="100%" noWrap="" width="193" valign="top" bgcolor="#cccccc">
  +		<img height="2" src="sunspotdemoimg-space.gif" width="1"/>
  +			<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="100%">
  +				<tr>
  +					<td>
  +						<table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="2" width="100%">
  +							<tr>
  +								<td bgcolor="#46627A" width="1%">
  +									<img src="sunspotdemoimg-space.gif" width="20" height="40"/>
  +								</td>
  +								<td bgcolor="#cccccc">
  +									<br/>
  +									<font face="Arial, Helvetica, sans-serif" size="2">
  +										<b><a target="_top" href="sunspotdemo-portal">
  +											<blockquote>Your Portal</blockquote>
  +										</a></b>
  +									</font>
  +								</td>
  +							</tr>
  +						</table>
  +					</td>
  +				</tr>
  +			</table>
  +		</td>
  +<!-- /menue -->
  +		<td>
  +<!-- content -->
  +            		<table border="0" cellPadding="0" cellSpacing="2" height="100%" width="100%">
  +              			<tbody>
  +					<tr>
  +						<td><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +                  				<td valign="top"><img src="sunspotdemoimg-space.gif" height="10"/><br/>
  +                                                	<table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A">
  +								<tr>
  +									<td>
  +										<table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff">
  +											<tr>
  +												<td colspan="5"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  +											</tr>
  +											<xsl:variable name="user" select="normalize-space(user)"/>
  +											<xsl:variable name="linkurl"><xsl:value-of select="normalize-space(uri)"/><xsl:value-of select="urlrewrite"/></xsl:variable>
  +											<form method="post" action="{translate(normalize-space($linkurl), ' ', '')}">
  +												<input type="hidden" name="authstate" value="chguser"/>
  +					                            	        	<input type="hidden" name="authrole" value="{$role}"/>
  +												<input type="hidden" name="authuser" value="{normalize-space(user)}"/>
  +												<input type="hidden" name="autholdrole" value="{$role}"/>
  +												<input type="hidden" name="autholdpassword" value="{normalize-space(uservalues/data/password)}"/>
  +												<tr>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +													<td width="1%">
  +														<img src="sunspotdemoimg-kast_o.gif"/>
  +													</td>
  +													<td width="1%" colspan="2">
  +														<font face="Arial, Helvetica, sans-serif" size="2">
  +															<b>User Information</b>
  +														</font>
  +													</td>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +												</tr>
  +												<tr>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +														<img src="sunspotdemoimg-space.gif"/>
  +													</td>
  +													<td width="1%">
  +														<font face="Arial, Helvetica, sans-serif" size="2">
  +															Title:
  +														</font>
  +													</td>
  +													<td>
  +														<img src="sunspotdemoimg-space.gif" width="10"/>
  +														<select name="title">
  +															<option><xsl:if test="normalize-space(uservalues/data/title)='Mr.'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Mr.</option>
  +															<option><xsl:if test="normalize-space(uservalues/data/title)='Mrs.'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Mrs.</option>
  +														</select>
  +													</td>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +												</tr>
  +												<tr>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +														<img src="sunspotdemoimg-space.gif"/>
  +													</td>
  +													<td width="1%">
  +														<font face="Arial, Helvetica, sans-serif" size="2">
  +															Firstname:
  +														</font>
  +													</td>
  +													<td>
  +														<img src="sunspotdemoimg-space.gif" width="10"/>
  +														<input size="35" type="text" name="firstname" value="{normalize-space(uservalues/data/firstname)}"/>
  +													</td>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +												</tr>
  +												<tr>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +														<img src="sunspotdemoimg-space.gif"/>
  +													</td>
  +													<td width="1%">
  +														<font face="Arial, Helvetica, sans-serif" size="2">
  +															Lastname:
  +														</font>
  +													</td>
  +													<td>
  +														<img src="sunspotdemoimg-space.gif" width="10"/>
  +														<input size="35" type="text" name="lastname" value="{normalize-space(uservalues/data/lastname)}"/>
  +													</td>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +												</tr>
  +												<tr>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +														<img src="sunspotdemoimg-space.gif"/>
  +													</td>
  +													<td width="1%">
  +														<font face="Arial, Helvetica, sans-serif" size="2">
  +															Login:
  +														</font>
  +													</td>
  +													<td>
  +														<img src="sunspotdemoimg-space.gif" width="10"/>
  +														<font face="Arial, Helvetica, sans-serif" size="2">
  +															<xsl:value-of select="uservalues/data/ID"/>
  +															<input type="hidden" name="authid" value="{normalize-space(uservalues/data/ID)}"/>
  +														</font>
  +													</td>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +												</tr>
  +												<tr>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +													<td width="1%" background="sunspotdemoimg-line_bg.gif">
  +														<img src="sunspotdemoimg-space.gif"/>
  +													</td>
  +													<td width="1%">
  +														<font face="Arial, Helvetica, sans-serif" size="2">
  +															Password:
  +														</font>
  +													</td>
  +													<td>
  +														<img src="sunspotdemoimg-space.gif" width="10"/>
  +														<input size="35" type="password" name="password" value="{normalize-space(uservalues/data/password)}"/>
  +													</td>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +												</tr>
  +												<tr>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +													<td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
  +														<img src="sunspotdemoimg-line_end.gif"/>
  +													</td>
  +													<td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +												</tr>
  +												<tr>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +													<td width="1%">
  +														<img src="sunspotdemoimg-kast_url_u.gif"/>
  +													</td>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif" width="10"/></td>
  +													<td>
  +														<img src="sunspotdemoimg-space.gif" width="10"/>
  +														<input type="submit" name="Change" value="Change"/>
  +													</td>
  +													<td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
  +												</tr>
  +												</form>
  +												<tr>
  +													<td colspan="5"><img src="sunspotdemoimg-space.gif" height="10"/></td>
  +												</tr>
  +											</table>
  +										</td>
  +									</tr>
  +								</table>
  +								<img src="sunspotdemoimg-space.gif" height="20"/>
  +							</td>
  +                				</tr>
  +					</tbody>
  +				</table>
  +			</td>
  +<!-- /content -->
  +
  +		</tr>
  +	</table>
  +</body>
  +</html>
  +</xsl:template>
  +
  +  <!-- Copy all and apply templates -->
  +  <xsl:template match="@*|node()">
  +   <xsl:copy>
  +    <xsl:apply-templates select="@*|node()" />
  +   </xsl:copy>
  +  </xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +1 -0      cocoon-2.1/src/blocks/precept/samples/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/samples.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- samples.xml	11 Mar 2003 15:43:27 -0000	1.1
  +++ samples.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,4 +1,5 @@
   <?xml version="1.0" encoding="iso-8859-1"?>
  +
   <samples xmlns:xlink="http://www.w3.org/1999/xlink" name="precept block">
   
    <group name="Main examples page.">
  
  
  
  1.2       +3 -3      cocoon-2.1/src/blocks/precept/samples/example1/README
  
  Index: README
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/README,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- README	9 Mar 2003 00:05:45 -0000	1.1
  +++ README	6 May 2003 14:12:56 -0000	1.2
  @@ -1,3 +1,3 @@
  -This example always inserts the full instance into the SAX stream and uses
  -the different stylesheets to display only parts of it.
  -
  +This example always inserts the full instance into the SAX stream and uses
  +the different stylesheets to display only parts of it.
  +
  
  
  
  1.2       +9 -9      cocoon-2.1/src/blocks/precept/samples/example1/error.xml
  
  Index: error.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/error.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- error.xml	9 Mar 2003 00:05:45 -0000	1.1
  +++ error.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,9 +1,9 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<root xmlns:f="http://www.dff.st/dform"
  -      xmlns:r="http://www.dff.st/drender"
  -      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  -      >
  -
  -   Sorry, submit failed
  -   
  -</root>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +<root xmlns:f="http://www.dff.st/dform"
  +      xmlns:r="http://www.dff.st/drender"
  +      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  +      >
  +
  +   Sorry, submit failed
  +   
  +</root>
  
  
  
  1.2       +17 -18    cocoon-2.1/src/blocks/precept/samples/example1/error.xsl
  
  Index: error.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/error.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- error.xsl	9 Mar 2003 00:05:45 -0000	1.1
  +++ error.xsl	6 May 2003 14:12:56 -0000	1.2
  @@ -1,18 +1,17 @@
  -<?xml version="1.0"?>
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  -                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -
  -
  -   <xsl:template match="root">
  -     <html><body><xsl:apply-templates/></body></html>
  -   </xsl:template>
  -      
  -   <xsl:template match="/|*">
  -      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  -   </xsl:template>
  -
  -   <xsl:template match="text()">
  -      <xsl:value-of select="." />
  -   </xsl:template>
  -</xsl:stylesheet>
  -
  +<?xml version="1.0"?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  +                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +   <xsl:template match="root">
  +     <html><body><xsl:apply-templates/></body></html>
  +   </xsl:template>
  +      
  +   <xsl:template match="/|*">
  +      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  +   </xsl:template>
  +
  +   <xsl:template match="text()">
  +      <xsl:value-of select="." />
  +   </xsl:template>
  +</xsl:stylesheet>
  +
  
  
  
  1.2       +9 -9      cocoon-2.1/src/blocks/precept/samples/example1/thanks.xml
  
  Index: thanks.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/thanks.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- thanks.xml	9 Mar 2003 00:05:45 -0000	1.1
  +++ thanks.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,9 +1,9 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<root xmlns:f="http://www.dff.st/dform"
  -      xmlns:r="http://www.dff.st/drender"
  -      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  -      >
  -
  -   Successfully submitted your data!
  -   
  -</root>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +<root xmlns:f="http://www.dff.st/dform"
  +      xmlns:r="http://www.dff.st/drender"
  +      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  +      >
  +
  +   Successfully submitted your data!
  +   
  +</root>
  
  
  
  1.2       +17 -18    cocoon-2.1/src/blocks/precept/samples/example1/thanks.xsl
  
  Index: thanks.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/thanks.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- thanks.xsl	9 Mar 2003 00:05:45 -0000	1.1
  +++ thanks.xsl	6 May 2003 14:12:56 -0000	1.2
  @@ -1,18 +1,17 @@
  -<?xml version="1.0"?>
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  -                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -
  -
  -   <xsl:template match="root">
  -     <html><body><xsl:apply-templates/></body></html>
  -   </xsl:template>
  -      
  -   <xsl:template match="/|*">
  -      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  -   </xsl:template>
  -
  -   <xsl:template match="text()">
  -      <xsl:value-of select="." />
  -   </xsl:template>
  -</xsl:stylesheet>
  -
  +<?xml version="1.0"?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  +                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +   <xsl:template match="root">
  +     <html><body><xsl:apply-templates/></body></html>
  +   </xsl:template>
  +      
  +   <xsl:template match="/|*">
  +      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  +   </xsl:template>
  +
  +   <xsl:template match="text()">
  +      <xsl:value-of select="." />
  +   </xsl:template>
  +</xsl:stylesheet>
  +
  
  
  
  1.2       +33 -33    cocoon-2.1/src/blocks/precept/samples/example1/view1.xml
  
  Index: view1.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view1.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view1.xml	9 Mar 2003 00:05:45 -0000	1.1
  +++ view1.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,33 +1,33 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<root xmlns:f="http://www.dff.st/dform"
  -      xmlns:r="http://www.dff.st/drender"
  -      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  -      >
  -
  -   <i:insert-instance id="form-feedback"/>
  -   
  -   <!--
  -   <r:render>
  -      <f:label r:x="108" r:y="77" r:w="181" r:h="108">Name</f:label>
  -      <f:textbox ref="cocoon-user/name" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -      <f:textbox ref="cocoon-user/surname" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -      <f:textbox ref="cocoon-user/email" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -      <f:textbox ref="cocoon-user/age" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -      <f:textbox ref="cocoon-user/city" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -      <f:textbox ref="cocoon-user/zip" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -      <f:textbox ref="cocoon-user/number-of-projects" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -
  -      <f:selectOne ref="cocoon-user/position" preferred-presentation="combobox" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -
  -      <f:selectMany ref="cocoon-user/os" preferred-presentation="listbox" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -
  -      <f:selectBoolean ref="cocoon-user/like-it" preferred-presentation="checkbox" r:x="108" r:y="77" r:w="181" r:h="108"/>
  -
  -      <f:button method="next" r:x="108" r:y="77" r:w="181" r:h="108">
  -         <f:caption>Next Page</f:caption>
  -         <f:hint>Click here to get to next page</f:hint>
  -      </f:button>
  -
  -   </r:render>
  -   -->
  -</root>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<root xmlns:f="http://www.dff.st/dform"
  +      xmlns:r="http://www.dff.st/drender"
  +      xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +
  +   <i:insert-instance id="form-feedback"/>
  +   
  +   <!--
  +   <r:render>
  +      <f:label r:x="108" r:y="77" r:w="181" r:h="108">Name</f:label>
  +      <f:textbox ref="cocoon-user/name" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +      <f:textbox ref="cocoon-user/surname" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +      <f:textbox ref="cocoon-user/email" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +      <f:textbox ref="cocoon-user/age" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +      <f:textbox ref="cocoon-user/city" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +      <f:textbox ref="cocoon-user/zip" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +      <f:textbox ref="cocoon-user/number-of-projects" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +
  +      <f:selectOne ref="cocoon-user/position" preferred-presentation="combobox" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +
  +      <f:selectMany ref="cocoon-user/os" preferred-presentation="listbox" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +
  +      <f:selectBoolean ref="cocoon-user/like-it" preferred-presentation="checkbox" r:x="108" r:y="77" r:w="181" r:h="108"/>
  +
  +      <f:button method="next" r:x="108" r:y="77" r:w="181" r:h="108">
  +         <f:caption>Next Page</f:caption>
  +         <f:hint>Click here to get to next page</f:hint>
  +      </f:button>
  +
  +   </r:render>
  +   -->
  +</root>
  
  
  
  1.2       +42 -44    cocoon-2.1/src/blocks/precept/samples/example1/view1.xsl
  
  Index: view1.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view1.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view1.xsl	9 Mar 2003 00:05:45 -0000	1.1
  +++ view1.xsl	6 May 2003 14:12:56 -0000	1.2
  @@ -1,44 +1,42 @@
  -<?xml version="1.0"?>
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  -                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -
  -
  -   <xsl:template match="root">
  -     <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
  -   </xsl:template>
  -   
  -   <xsl:template match="cocoon-installation">
  -     <table border="1">
  -     <tr>
  -       <td>Firstname</td>
  -       <td><input type="textbox" name="cocoon-installation/user/firstname" value="{user/firstname/text()}"/></td>
  -       <td><xsl:apply-templates select="user/firstname/constraint"/></td>
  -     </tr>
  -     <tr>
  -       <td>Lastname</td>
  -       <td><input type="textbox" name="cocoon-installation/user/lastname" value="{user/lastname/text()}"/></td>
  -       <td><xsl:apply-templates select="user/lastname/constraint"/></td>
  -     </tr>
  -     <tr>
  -       <td>Email</td>
  -       <td><input type="textbox" name="cocoon-installation/user/email" value="{user/email/text()}"/></td>
  -       <td><xsl:apply-templates select="user/email/constraint"/></td>
  -     </tr>
  -     <tr>
  -       <td>Age</td>
  -       <td><input type="textbox" name="cocoon-installation/user/age" value="{user/age/text()}"/></td>
  -       <td><xsl:apply-templates select="user/age/constraint"/></td>
  -     </tr>
  -     </table>
  -     <input type="submit" name="cocoon-method-next2" value="Next Page"/>
  -   </xsl:template>
  -   
  -   <xsl:template match="/|*">
  -      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  -   </xsl:template>
  -
  -   <xsl:template match="text()">
  -      <xsl:value-of select="." />
  -   </xsl:template>
  -</xsl:stylesheet>
  -
  +<?xml version="1.0"?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  +                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +   <xsl:template match="root">
  +     <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
  +   </xsl:template>
  +   
  +   <xsl:template match="cocoon-installation">
  +     <table border="1">
  +     <tr>
  +       <td>Firstname</td>
  +       <td><input type="textbox" name="cocoon-installation/user/firstname" value="{user/firstname/text()}"/></td>
  +       <td><xsl:apply-templates select="user/firstname/constraint"/></td>
  +     </tr>
  +     <tr>
  +       <td>Lastname</td>
  +       <td><input type="textbox" name="cocoon-installation/user/lastname" value="{user/lastname/text()}"/></td>
  +       <td><xsl:apply-templates select="user/lastname/constraint"/></td>
  +     </tr>
  +     <tr>
  +       <td>Email</td>
  +       <td><input type="textbox" name="cocoon-installation/user/email" value="{user/email/text()}"/></td>
  +       <td><xsl:apply-templates select="user/email/constraint"/></td>
  +     </tr>
  +     <tr>
  +       <td>Age</td>
  +       <td><input type="textbox" name="cocoon-installation/user/age" value="{user/age/text()}"/></td>
  +       <td><xsl:apply-templates select="user/age/constraint"/></td>
  +     </tr>
  +     </table>
  +     <input type="submit" name="cocoon-method-next2" value="Next Page"/>
  +   </xsl:template>
  +   
  +   <xsl:template match="/|*">
  +      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  +   </xsl:template>
  +
  +   <xsl:template match="text()">
  +      <xsl:value-of select="." />
  +   </xsl:template>
  +</xsl:stylesheet>
  
  
  
  1.2       +9 -9      cocoon-2.1/src/blocks/precept/samples/example1/view2.xml
  
  Index: view2.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view2.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view2.xml	9 Mar 2003 00:05:46 -0000	1.1
  +++ view2.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,9 +1,9 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<root xmlns:f="http://www.dff.st/dform"
  -      xmlns:r="http://www.dff.st/drender"
  -      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  -      >
  -
  -   <i:insert-instance id="form-feedback"/>
  -   
  -</root>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<root xmlns:f="http://www.dff.st/dform"
  +      xmlns:r="http://www.dff.st/drender"
  +      xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +
  +   <i:insert-instance id="form-feedback"/>
  +   
  +</root>
  
  
  
  1.2       +41 -42    cocoon-2.1/src/blocks/precept/samples/example1/view2.xsl
  
  Index: view2.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view2.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view2.xsl	9 Mar 2003 00:05:46 -0000	1.1
  +++ view2.xsl	6 May 2003 14:12:56 -0000	1.2
  @@ -1,42 +1,41 @@
  -<?xml version="1.0"?>
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  -                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -
  -
  -   <xsl:template match="root">
  -     <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
  -   </xsl:template>
  -   
  -   <xsl:template match="cocoon-installation">
  -     <table border="1">
  -     <tr>
  -       <td>Installation number</td>
  -       <td><input type="textbox" name="cocoon-installation/number" value="{number/text()}"/></td>
  -     </tr>
  -     <tr>
  -       <td>Live URL</td>
  -       <td><input type="textbox" name="cocoon-installation/live-url" value="{live-url/text()}"/></td>
  -     </tr>
  -     <tr>
  -       <td>Publish this URL</td>
  -       <td><input type="checkbox" name="cocoon-installation/publish" value="true">
  -              <xsl:if test="publish/text() = 'true'">
  -                <xsl:attribute name="checked"/>
  -              </xsl:if>
  -           </input>
  -       </td>
  -     </tr>
  -     </table>
  -     <input type="submit" name="cocoon-method-prev1" value="Prev Page"/>
  -     <input type="submit" name="cocoon-method-next3" value="Next Page"/>
  -   </xsl:template>
  -   
  -   <xsl:template match="/|*">
  -      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  -   </xsl:template>
  -
  -   <xsl:template match="text()">
  -      <xsl:value-of select="." />
  -   </xsl:template>
  -</xsl:stylesheet>
  -
  +<?xml version="1.0"?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  +                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +   <xsl:template match="root">
  +     <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
  +   </xsl:template>
  +   
  +   <xsl:template match="cocoon-installation">
  +     <table border="1">
  +     <tr>
  +       <td>Installation number</td>
  +       <td><input type="textbox" name="cocoon-installation/number" value="{number/text()}"/></td>
  +     </tr>
  +     <tr>
  +       <td>Live URL</td>
  +       <td><input type="textbox" name="cocoon-installation/live-url" value="{live-url/text()}"/></td>
  +     </tr>
  +     <tr>
  +       <td>Publish this URL</td>
  +       <td><input type="checkbox" name="cocoon-installation/publish" value="true">
  +              <xsl:if test="publish/text() = 'true'">
  +                <xsl:attribute name="checked"/>
  +              </xsl:if>
  +           </input>
  +       </td>
  +     </tr>
  +     </table>
  +     <input type="submit" name="cocoon-method-prev1" value="Prev Page"/>
  +     <input type="submit" name="cocoon-method-next3" value="Next Page"/>
  +   </xsl:template>
  +   
  +   <xsl:template match="/|*">
  +      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  +   </xsl:template>
  +
  +   <xsl:template match="text()">
  +      <xsl:value-of select="." />
  +   </xsl:template>
  +</xsl:stylesheet>
  +
  
  
  
  1.2       +9 -9      cocoon-2.1/src/blocks/precept/samples/example1/view3.xml
  
  Index: view3.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view3.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view3.xml	9 Mar 2003 00:05:46 -0000	1.1
  +++ view3.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,9 +1,9 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<root xmlns:f="http://www.dff.st/dform"
  -      xmlns:r="http://www.dff.st/drender"
  -      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  -      >
  -
  -   <i:insert-instance id="form-feedback"/>
  -   
  -</root>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<root xmlns:f="http://www.dff.st/dform"
  +      xmlns:r="http://www.dff.st/drender"
  +      xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +
  +   <i:insert-instance id="form-feedback"/>
  +   
  +</root>
  
  
  
  1.2       +65 -66    cocoon-2.1/src/blocks/precept/samples/example1/view3.xsl
  
  Index: view3.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view3.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view3.xsl	9 Mar 2003 00:05:46 -0000	1.1
  +++ view3.xsl	6 May 2003 14:12:56 -0000	1.2
  @@ -1,66 +1,65 @@
  -<?xml version="1.0"?>
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  -                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -
  -
  -   <xsl:template match="root">
  -     <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
  -   </xsl:template>
  -   
  -   <xsl:template match="cocoon-installation">
  -     <table border="1">
  -     <tr>
  -       <td>os</td>
  -       <td>
  -          <select name="cocoon-installation/system/os"> 
  -            <option value="linux">
  -              <xsl:if test="system/os = 'linux'">
  -                <xsl:attribute name="selected"/>
  -              </xsl:if>
  -              Linux
  -            </option>
  -            <option value="w2k">
  -              <xsl:if test="system/os = 'w2k'">
  -                <xsl:attribute name="selected"/>
  -              </xsl:if>
  -              Windows 2k
  -            </option>
  -          </select>          
  -       </td>
  -       <td><xsl:apply-templates select="system/os/constraint"/></td>
  -     </tr>
  -     <tr>
  -       <td>processor</td>
  -       <td><input type="textbox" name="cocoon-installation/system/processor" value="{system/processor/text()}"/></td>
  -       <td><xsl:apply-templates select="system/processor/constraint"/></td>
  -     </tr>
  -     <tr>
  -       <td>ram</td>
  -       <td><input type="textbox" name="cocoon-installation/system/ram" value="{system/ram/text()}"/></td>
  -       <td><xsl:apply-templates select="system/ram/constraint"/></td>
  -     </tr>
  -     <tr>
  -       <td>servlet engine</td>
  -       <td><input type="textbox" name="cocoon-installation/system/servlet-engine" value="{system/servlet-engine/text()}"/></td>
  -       <td><xsl:apply-templates select="system/servlet-engine/constraint"/></td>
  -     </tr>
  -     <tr>
  -       <td>java version</td>
  -       <td><input type="textbox" name="cocoon-installation/system/java-version" value="{system/java-version/text()}"/></td>
  -       <td><xsl:apply-templates select="system/java-version/constraint"/></td>
  -     </tr>
  -
  -     </table>
  -     <input type="submit" name="cocoon-action-prev2" value="Prev Page"/>     
  -     <input type="submit" name="cocoon-action-next4" value="Next Page"/>     
  -   </xsl:template>
  -   
  -   <xsl:template match="/|*">
  -      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  -   </xsl:template>
  -
  -   <xsl:template match="text()">
  -      <xsl:value-of select="." />
  -   </xsl:template>
  -</xsl:stylesheet>
  -
  +<?xml version="1.0"?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  +                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +   <xsl:template match="root">
  +     <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
  +   </xsl:template>
  +   
  +   <xsl:template match="cocoon-installation">
  +     <table border="1">
  +     <tr>
  +       <td>os</td>
  +       <td>
  +          <select name="cocoon-installation/system/os"> 
  +            <option value="linux">
  +              <xsl:if test="system/os = 'linux'">
  +                <xsl:attribute name="selected"/>
  +              </xsl:if>
  +              Linux
  +            </option>
  +            <option value="w2k">
  +              <xsl:if test="system/os = 'w2k'">
  +                <xsl:attribute name="selected"/>
  +              </xsl:if>
  +              Windows 2k
  +            </option>
  +          </select>          
  +       </td>
  +       <td><xsl:apply-templates select="system/os/constraint"/></td>
  +     </tr>
  +     <tr>
  +       <td>processor</td>
  +       <td><input type="textbox" name="cocoon-installation/system/processor" value="{system/processor/text()}"/></td>
  +       <td><xsl:apply-templates select="system/processor/constraint"/></td>
  +     </tr>
  +     <tr>
  +       <td>ram</td>
  +       <td><input type="textbox" name="cocoon-installation/system/ram" value="{system/ram/text()}"/></td>
  +       <td><xsl:apply-templates select="system/ram/constraint"/></td>
  +     </tr>
  +     <tr>
  +       <td>servlet engine</td>
  +       <td><input type="textbox" name="cocoon-installation/system/servlet-engine" value="{system/servlet-engine/text()}"/></td>
  +       <td><xsl:apply-templates select="system/servlet-engine/constraint"/></td>
  +     </tr>
  +     <tr>
  +       <td>java version</td>
  +       <td><input type="textbox" name="cocoon-installation/system/java-version" value="{system/java-version/text()}"/></td>
  +       <td><xsl:apply-templates select="system/java-version/constraint"/></td>
  +     </tr>
  +
  +     </table>
  +     <input type="submit" name="cocoon-action-prev2" value="Prev Page"/>     
  +     <input type="submit" name="cocoon-action-next4" value="Next Page"/>     
  +   </xsl:template>
  +   
  +   <xsl:template match="/|*">
  +      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  +   </xsl:template>
  +
  +   <xsl:template match="text()">
  +      <xsl:value-of select="." />
  +   </xsl:template>
  +</xsl:stylesheet>
  +
  
  
  
  1.2       +9 -9      cocoon-2.1/src/blocks/precept/samples/example1/view4.xml
  
  Index: view4.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view4.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view4.xml	9 Mar 2003 00:05:46 -0000	1.1
  +++ view4.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,9 +1,9 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<root xmlns:f="http://www.dff.st/dform"
  -      xmlns:r="http://www.dff.st/drender"
  -      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  -      >
  -
  -   <i:insert-instance id="form-feedback"/>
  -   
  -</root>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<root xmlns:f="http://www.dff.st/dform"
  +      xmlns:r="http://www.dff.st/drender"
  +      xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +
  +   <i:insert-instance id="form-feedback"/>
  +   
  +</root>
  
  
  
  1.2       +77 -78    cocoon-2.1/src/blocks/precept/samples/example1/view4.xsl
  
  Index: view4.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view4.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view4.xsl	9 Mar 2003 00:05:46 -0000	1.1
  +++ view4.xsl	6 May 2003 14:12:56 -0000	1.2
  @@ -1,78 +1,77 @@
  -<?xml version="1.0"?>
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  -                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -
  -
  -   <xsl:template match="root">
  -     <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
  -   </xsl:template>
  -   
  -   <xsl:template match="cocoon-installation">
  -     <table border="1">
  -
  -     <tr>
  -       <td>Firstname</td>
  -       <td><xsl:value-of select="user/firstname/text()"/></td>
  -     </tr>
  -     <tr>
  -       <td>Lastname</td>
  -       <td><xsl:value-of select="user/lastname/text()"/></td>
  -     </tr>
  -     <tr>
  -       <td>Email</td>
  -       <td><xsl:value-of select="user/email/text()"/></td>
  -     </tr>
  -     <tr>
  -       <td>Age</td>
  -       <td><xsl:value-of select="user/age/text()"/></td>
  -     </tr>
  -
  -     <tr>
  -       <td>Installation number</td>
  -       <td><xsl:value-of select="number/text()"/></td>
  -     </tr>
  -     <tr>
  -       <td>Live URL</td>
  -       <td><xsl:value-of select="live-url/text()"/></td>
  -     </tr>
  -     <tr>
  -       <td>Please publish it as cocoon live-site example</td>
  -       <td><xsl:value-of select="publish/text()"/></td>
  -     </tr>
  -
  -     <tr>
  -       <td>os</td>
  -       <td><xsl:value-of select="system/os/text()"/></td>
  -     </tr>
  -     <tr>
  -       <td>processor</td>
  -       <td><xsl:value-of select="system/processor/text()"/></td>
  -     </tr>
  -     <tr>
  -       <td>ram</td>
  -       <td><xsl:value-of select="system/ram/text()"/></td>
  -     </tr>
  -     <tr>
  -       <td>servlet engine</td>
  -       <td><xsl:value-of select="system/servlet-engine/text()"/></td>
  -     </tr>
  -     <tr>
  -       <td>java version</td>
  -       <td><xsl:value-of select="system/java-version/text()"/></td>
  -     </tr>
  -
  -
  -     </table>
  -     <input type="submit" name="cocoon-action-prev3" value="Prev Page"/>     
  -     <input type="submit" name="cocoon-action-submit" value="Submit"/>     
  -   </xsl:template>
  -   
  -   <xsl:template match="/|*">
  -      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  -   </xsl:template>
  -
  -   <xsl:template match="text()">
  -      <xsl:value-of select="." />
  -   </xsl:template>
  -</xsl:stylesheet>
  -
  +<?xml version="1.0"?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  +                              xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +   <xsl:template match="root">
  +     <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
  +   </xsl:template>
  +   
  +   <xsl:template match="cocoon-installation">
  +     <table border="1">
  +
  +     <tr>
  +       <td>Firstname</td>
  +       <td><xsl:value-of select="user/firstname/text()"/></td>
  +     </tr>
  +     <tr>
  +       <td>Lastname</td>
  +       <td><xsl:value-of select="user/lastname/text()"/></td>
  +     </tr>
  +     <tr>
  +       <td>Email</td>
  +       <td><xsl:value-of select="user/email/text()"/></td>
  +     </tr>
  +     <tr>
  +       <td>Age</td>
  +       <td><xsl:value-of select="user/age/text()"/></td>
  +     </tr>
  +
  +     <tr>
  +       <td>Installation number</td>
  +       <td><xsl:value-of select="number/text()"/></td>
  +     </tr>
  +     <tr>
  +       <td>Live URL</td>
  +       <td><xsl:value-of select="live-url/text()"/></td>
  +     </tr>
  +     <tr>
  +       <td>Please publish it as cocoon live-site example</td>
  +       <td><xsl:value-of select="publish/text()"/></td>
  +     </tr>
  +
  +     <tr>
  +       <td>os</td>
  +       <td><xsl:value-of select="system/os/text()"/></td>
  +     </tr>
  +     <tr>
  +       <td>processor</td>
  +       <td><xsl:value-of select="system/processor/text()"/></td>
  +     </tr>
  +     <tr>
  +       <td>ram</td>
  +       <td><xsl:value-of select="system/ram/text()"/></td>
  +     </tr>
  +     <tr>
  +       <td>servlet engine</td>
  +       <td><xsl:value-of select="system/servlet-engine/text()"/></td>
  +     </tr>
  +     <tr>
  +       <td>java version</td>
  +       <td><xsl:value-of select="system/java-version/text()"/></td>
  +     </tr>
  +
  +
  +     </table>
  +     <input type="submit" name="cocoon-action-prev3" value="Prev Page"/>     
  +     <input type="submit" name="cocoon-action-submit" value="Submit"/>     
  +   </xsl:template>
  +   
  +   <xsl:template match="/|*">
  +      <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
  +   </xsl:template>
  +
  +   <xsl:template match="text()">
  +      <xsl:value-of select="." />
  +   </xsl:template>
  +</xsl:stylesheet>
  +
  
  
  
  1.2       +9 -9      cocoon-2.1/src/blocks/precept/samples/example2/error.xml
  
  Index: error.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/error.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- error.xml	9 Mar 2003 00:05:47 -0000	1.1
  +++ error.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,9 +1,9 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<root xmlns:f="http://www.dff.st/dform"
  -      xmlns:r="http://www.dff.st/drender"
  -      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  -      >
  -
  -   Sorry, submit failed
  -   
  -</root>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<root xmlns:f="http://www.dff.st/dform"
  +      xmlns:r="http://www.dff.st/drender"
  +      xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +
  +   Sorry, submit failed
  +   
  +</root>
  
  
  
  1.2       +73 -72    cocoon-2.1/src/blocks/precept/samples/example2/i2html.xsl
  
  Index: i2html.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/i2html.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- i2html.xsl	9 Mar 2003 00:05:47 -0000	1.1
  +++ i2html.xsl	6 May 2003 14:12:56 -0000	1.2
  @@ -1,72 +1,73 @@
  -<?xml version="1.0" encoding="iso-8859-1" ?>
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -   <xsl:template match="/">
  -      <html>
  -         <body>
  -         <form method="POST">
  -            <xsl:apply-templates />
  -         </form>
  -         </body>
  -      </html>
  -   </xsl:template>
  -
  -   <xsl:template match="rows">
  -       <table border="1">
  -           <xsl:apply-templates/>
  -       </table>
  -   </xsl:template>
  -
  -   <xsl:template match="row">
  -       <tr><td><xsl:apply-templates select="label"/></td><td><xsl:apply-templates select="i:*"/></td></tr>
  -   </xsl:template>
  -
  -   <xsl:template match="i:output">
  -      [<xsl:value-of select="i:value/text()"/>]
  -   </xsl:template>
  -
  -   <xsl:template match="i:textbox">
  -      <input name="{@ref}" type="textbox" value="{i:value/text()}" />
  -   </xsl:template>
  -
  -   <xsl:template match="i:password">
  -      <input name="{@ref}" type="password" value="{i:value/text()}" />
  -   </xsl:template>
  -
  -   <xsl:template match="i:selectBoolean">
  -      <input name="{@ref}" type="checkbox" value="true">
  -        <xsl:if test="i:value/text() = 'true'">
  -          <xsl:attribute name="checked"/>
  -        </xsl:if>
  -      </input>
  -   </xsl:template>
  -
  -   <xsl:template match="i:selectOne">
  -     <select name="{@ref}">
  -       <xsl:variable name="selected" select="i:value/text()"/>
  -       <xsl:for-each select="constraint[@type = 'choice']/choice">
  -         <option value="{@value}">
  -           <xsl:if test="$selected = @value">
  -             <xsl:attribute name="selected"/>
  -           </xsl:if>
  -           <xsl:value-of select="."/>
  -         </option>
  -       </xsl:for-each>
  -     </select>
  -   </xsl:template>
  -
  -   <xsl:template match="i:selectMany">
  -   </xsl:template>
  -
  -   <xsl:template match="i:button">
  -      <input name="cocoon-method-{@method}" type="submit" value="{i:caption/text()}" />
  -   </xsl:template>
  -
  -   <xsl:template match="*">
  -      <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
  -   </xsl:template>
  -
  -   <xsl:template match="text()">
  -      <xsl:value-of select="." />
  -   </xsl:template>
  -</xsl:stylesheet>
  -
  +<?xml version="1.0" encoding="iso-8859-1" ?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +   <xsl:template match="/">
  +      <html>
  +         <body>
  +         <form method="POST">
  +            <xsl:apply-templates />
  +         </form>
  +         </body>
  +      </html>
  +   </xsl:template>
  +
  +   <xsl:template match="rows">
  +       <table border="1">
  +           <xsl:apply-templates/>
  +       </table>
  +   </xsl:template>
  +
  +   <xsl:template match="row">
  +       <tr><td><xsl:apply-templates select="label"/></td><td><xsl:apply-templates select="i:*"/></td></tr>
  +   </xsl:template>
  +
  +   <xsl:template match="i:output">
  +      [<xsl:value-of select="i:value/text()"/>]
  +   </xsl:template>
  +
  +   <xsl:template match="i:textbox">
  +      <input name="{@ref}" type="textbox" value="{i:value/text()}" />
  +   </xsl:template>
  +
  +   <xsl:template match="i:password">
  +      <input name="{@ref}" type="password" value="{i:value/text()}" />
  +   </xsl:template>
  +
  +   <xsl:template match="i:selectBoolean">
  +      <input name="{@ref}" type="checkbox" value="true">
  +        <xsl:if test="i:value/text() = 'true'">
  +          <xsl:attribute name="checked"/>
  +        </xsl:if>
  +      </input>
  +   </xsl:template>
  +
  +   <xsl:template match="i:selectOne">
  +     <select name="{@ref}">
  +       <xsl:variable name="selected" select="i:value/text()"/>
  +       <xsl:for-each select="constraint[@type = 'choice']/choice">
  +         <option value="{@value}">
  +           <xsl:if test="$selected = @value">
  +             <xsl:attribute name="selected"/>
  +           </xsl:if>
  +           <xsl:value-of select="."/>
  +         </option>
  +       </xsl:for-each>
  +     </select>
  +   </xsl:template>
  +
  +   <xsl:template match="i:selectMany">
  +   </xsl:template>
  +
  +   <xsl:template match="i:button">
  +      <input name="cocoon-method-{@method}" type="submit" value="{i:caption/text()}" />
  +   </xsl:template>
  +
  +   <xsl:template match="*">
  +      <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
  +   </xsl:template>
  +
  +   <xsl:template match="text()">
  +      <xsl:value-of select="." />
  +   </xsl:template>
  +</xsl:stylesheet>
  +
  
  
  
  1.2       +9 -9      cocoon-2.1/src/blocks/precept/samples/example2/thanks.xml
  
  Index: thanks.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/thanks.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- thanks.xml	9 Mar 2003 00:05:47 -0000	1.1
  +++ thanks.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,9 +1,9 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<root xmlns:f="http://www.dff.st/dform"
  -      xmlns:r="http://www.dff.st/drender"
  -      xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
  -      >
  -
  -   Successfully submitted your data!
  -   
  -</root>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<root xmlns:f="http://www.dff.st/dform"
  +      xmlns:r="http://www.dff.st/drender"
  +      xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +
  +   Successfully submitted your data!
  +   
  +</root>
  
  
  
  1.2       +21 -20    cocoon-2.1/src/blocks/precept/samples/example2/view1.xml
  
  Index: view1.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/view1.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view1.xml	9 Mar 2003 00:05:47 -0000	1.1
  +++ view1.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,20 +1,21 @@
  -<?xml version="1.0" ?>
  -<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -  <errors>
  -    <i:insert-violations/>
  -  </errors>
  -
  -  <rows>
  -    <i:instance id="form-feedback">
  -      <row><label>Firstname</label><i:textbox ref="cocoon-installation/user/firstname"/></row>
  -      <row><label>Lastname</label><i:textbox ref="cocoon-installation/user/lastname"/></row>
  -      <row><label>Email</label><i:textbox ref="cocoon-installation/user/email"/></row>
  -    </i:instance>
  -
  -    <row><label>Age</label><i:textbox ref="cocoon-installation/user/age" instance="form-feedback"/></row>
  -  </rows>
  -
  -  <i:button method="next2">
  -    <i:caption>Next</i:caption>
  -  </i:button>
  -</root>
  +<?xml version="1.0" ?>
  +
  +<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +  <errors>
  +    <i:insert-violations/>
  +  </errors>
  +
  +  <rows>
  +    <i:instance id="form-feedback">
  +      <row><label>Firstname</label><i:textbox ref="cocoon-installation/user/firstname"/></row>
  +      <row><label>Lastname</label><i:textbox ref="cocoon-installation/user/lastname"/></row>
  +      <row><label>Email</label><i:textbox ref="cocoon-installation/user/email"/></row>
  +    </i:instance>
  +
  +    <row><label>Age</label><i:textbox ref="cocoon-installation/user/age" instance="form-feedback"/></row>
  +  </rows>
  +
  +  <i:button method="next2">
  +    <i:caption>Next</i:caption>
  +  </i:button>
  +</root>
  
  
  
  1.2       +23 -22    cocoon-2.1/src/blocks/precept/samples/example2/view2.xml
  
  Index: view2.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/view2.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view2.xml	9 Mar 2003 00:05:47 -0000	1.1
  +++ view2.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,22 +1,23 @@
  -<?xml version="1.0" ?>
  -<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -  <errors>
  -    <i:insert-violations/>
  -  </errors>
  -
  -  <rows>
  -    <i:instance id="form-feedback">
  -      <row><label>Number of installations</label><i:textbox ref="cocoon-installation/number"/></row>
  -      <row><label>Live URL</label><i:textbox ref="cocoon-installation/live-url"/></row>
  -      <row><label>Publish</label><i:selectBoolean ref="cocoon-installation/publish"/></row>
  -    </i:instance>
  -  </rows>
  -
  -  <i:button method="prev1">
  -    <i:caption>Prev</i:caption>
  -  </i:button>
  -
  -  <i:button method="next3">
  -    <i:caption>Next</i:caption>
  -  </i:button>
  -</root>
  +<?xml version="1.0" ?>
  +
  +<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +  <errors>
  +    <i:insert-violations/>
  +  </errors>
  +
  +  <rows>
  +    <i:instance id="form-feedback">
  +      <row><label>Number of installations</label><i:textbox ref="cocoon-installation/number"/></row>
  +      <row><label>Live URL</label><i:textbox ref="cocoon-installation/live-url"/></row>
  +      <row><label>Publish</label><i:selectBoolean ref="cocoon-installation/publish"/></row>
  +    </i:instance>
  +  </rows>
  +
  +  <i:button method="prev1">
  +    <i:caption>Prev</i:caption>
  +  </i:button>
  +
  +  <i:button method="next3">
  +    <i:caption>Next</i:caption>
  +  </i:button>
  +</root>
  
  
  
  1.2       +25 -24    cocoon-2.1/src/blocks/precept/samples/example2/view3.xml
  
  Index: view3.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/view3.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view3.xml	9 Mar 2003 00:05:48 -0000	1.1
  +++ view3.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,24 +1,25 @@
  -<?xml version="1.0" ?>
  -<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -  <errors>
  -    <i:insert-violations/>
  -  </errors>
  -
  -  <rows>
  -    <i:instance id="form-feedback">
  -      <row><label>OS</label><i:selectOne ref="cocoon-installation/system/os"/></row>
  -      <row><label>Processor</label><i:selectOne ref="cocoon-installation/system/processor"/></row>
  -      <row><label>RAM</label><i:textbox ref="cocoon-installation/system/ram"/></row>
  -      <row><label>Servlet Engine</label><i:selectOne ref="cocoon-installation/system/servlet-engine"/></row>
  -      <row><label>Java Version</label><i:selectOne ref="cocoon-installation/system/java-version"/></row>
  -    </i:instance>
  -  </rows>
  -
  -  <i:button method="prev2">
  -    <i:caption>Prev</i:caption>
  -  </i:button>
  -
  -  <i:button method="next4">
  -    <i:caption>Next</i:caption>
  -  </i:button>
  -</root>
  +<?xml version="1.0" ?>
  +
  +<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +  <errors>
  +    <i:insert-violations/>
  +  </errors>
  +
  +  <rows>
  +    <i:instance id="form-feedback">
  +      <row><label>OS</label><i:selectOne ref="cocoon-installation/system/os"/></row>
  +      <row><label>Processor</label><i:selectOne ref="cocoon-installation/system/processor"/></row>
  +      <row><label>RAM</label><i:textbox ref="cocoon-installation/system/ram"/></row>
  +      <row><label>Servlet Engine</label><i:selectOne ref="cocoon-installation/system/servlet-engine"/></row>
  +      <row><label>Java Version</label><i:selectOne ref="cocoon-installation/system/java-version"/></row>
  +    </i:instance>
  +  </rows>
  +
  +  <i:button method="prev2">
  +    <i:caption>Prev</i:caption>
  +  </i:button>
  +
  +  <i:button method="next4">
  +    <i:caption>Next</i:caption>
  +  </i:button>
  +</root>
  
  
  
  1.2       +32 -31    cocoon-2.1/src/blocks/precept/samples/example2/view4.xml
  
  Index: view4.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/view4.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- view4.xml	9 Mar 2003 00:05:48 -0000	1.1
  +++ view4.xml	6 May 2003 14:12:56 -0000	1.2
  @@ -1,31 +1,32 @@
  -<?xml version="1.0" ?>
  -<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  -  <errors>
  -    <i:insert-violations/>
  -  </errors>
  -
  -  <rows>
  -    <i:instance id="form-feedback">
  -      <row><label>Firstname</label><i:output ref="cocoon-installation/user/firstname"/></row>
  -      <row><label>Lastname</label><i:output ref="cocoon-installation/user/lastname"/></row>
  -      <row><label>Email</label><i:output ref="cocoon-installation/user/email"/></row>
  -
  -      <row><label>Number of installations</label><i:output ref="cocoon-installation/number"/></row>
  -      <row><label>Live URL</label><i:output ref="cocoon-installation/live-url"/></row>
  -      <row><label>Publish</label><i:output ref="cocoon-installation/publish"/></row>
  -
  -      <row><label>OS</label><i:output ref="cocoon-installation/system/os"/></row>
  -      <row><label>Processor</label><i:output ref="cocoon-installation/system/processor"/></row>
  -      <row><label>RAM</label><i:output ref="cocoon-installation/system/ram"/></row>
  -      <row><label>Servlet Engine</label><i:output ref="cocoon-installation/system/servlet-engine"/></row>
  -      <row><label>Java Version</label><i:output ref="cocoon-installation/system/java-version"/></row>
  -    </i:instance>
  -  </rows>
  -  <i:button method="prev3">
  -    <i:caption>Prev</i:caption>
  -  </i:button>
  -
  -  <i:button method="submit">
  -    <i:caption>Submit</i:caption>
  -  </i:button>
  -</root>
  +<?xml version="1.0" ?>
  +
  +<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
  +  <errors>
  +    <i:insert-violations/>
  +  </errors>
  +
  +  <rows>
  +    <i:instance id="form-feedback">
  +      <row><label>Firstname</label><i:output ref="cocoon-installation/user/firstname"/></row>
  +      <row><label>Lastname</label><i:output ref="cocoon-installation/user/lastname"/></row>
  +      <row><label>Email</label><i:output ref="cocoon-installation/user/email"/></row>
  +
  +      <row><label>Number of installations</label><i:output ref="cocoon-installation/number"/></row>
  +      <row><label>Live URL</label><i:output ref="cocoon-installation/live-url"/></row>
  +      <row><label>Publish</label><i:output ref="cocoon-installation/publish"/></row>
  +
  +      <row><label>OS</label><i:output ref="cocoon-installation/system/os"/></row>
  +      <row><label>Processor</label><i:output ref="cocoon-installation/system/processor"/></row>
  +      <row><label>RAM</label><i:output ref="cocoon-installation/system/ram"/></row>
  +      <row><label>Servlet Engine</label><i:output ref="cocoon-installation/system/servlet-engine"/></row>
  +      <row><label>Java Version</label><i:output ref="cocoon-installation/system/java-version"/></row>
  +    </i:instance>
  +  </rows>
  +  <i:button method="prev3">
  +    <i:caption>Prev</i:caption>
  +  </i:button>
  +
  +  <i:button method="submit">
  +    <i:caption>Submit</i:caption>
  +  </i:button>
  +</root>
  
  
  
  1.2       +61 -60    cocoon-2.1/src/blocks/precept/samples/model/easyrelax.xml
  
  Index: easyrelax.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/model/easyrelax.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- easyrelax.xml	9 Mar 2003 00:05:48 -0000	1.1
  +++ easyrelax.xml	6 May 2003 14:12:57 -0000	1.2
  @@ -1,60 +1,61 @@
  -<?xml version="1.0"?>
  -<grammar xmlns="http://www.dff.st/ns/desire/easyrelax/grammar/1.0">
  -  <start>
  -    <element name="cocoon-installation">
  -
  -      <!-- the user who installed cocoon -->
  -      <element name="user">
  -        <element name="firstname"/>
  -        <element name="lastname"/>
  -        <element name="email">
  -          <constraint type="regexpr" name="E_EMAIL">^[a-zA-Z0-9]+[a-zA-Z0-9-_.]*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$</constraint>
  -        </element>
  -        <optional>
  -          <element name="age"/>
  -          <element name="gender"/>
  -        </optional>
  -      </element>
  -
  -      <!-- serial number of cocoon installation -->
  -      <element name="number"/>
  -
  -      <!-- an optional live url -->
  -      <optional>
  -        <element name="live-url"/>
  -        <element name="publish"/>
  -      </optional>
  -
  -      <!-- the system cocoon is running on -->
  -      <element name="system">
  -        <element name="os">
  -          <constraint type="choice" name="E_OS">
  -            <choice value="linux">Linux</choice>
  -            <choice value="w2k">Windows 2000</choice>
  -          </constraint>
  -        </element>
  -        <element name="processor">
  -          <constraint type="choice" name="E_PROCESSOR">
  -            <choice value="intel">Intel</choice>
  -            <choice value="powerpc">PowerPC</choice>
  -          </constraint>
  -        </element>
  -        <element name="ram"/>
  -        <element name="servlet-engine">
  -          <constraint type="choice" name="E_ENGINE">
  -            <choice value="tc4">Tomcat 4</choice>
  -            <choice value="tc3">Tomcat 3</choice>
  -            <choice value="resin">Resin</choice>
  -          </constraint>
  -        </element>
  -        <element name="java-version">
  -          <constraint type="choice" name="E_JAVA">
  -            <choice value="1.2">JDK 1.2.x</choice>
  -            <choice value="1.3">JDK 1.3.x</choice>
  -            <choice value="1.4">JDK 1.4.x</choice>
  -          </constraint>
  -        </element>        
  -      </element>
  -    </element>
  -  </start>
  -</grammar>
  +<?xml version="1.0"?>
  +
  +<grammar xmlns="http://www.dff.st/ns/desire/easyrelax/grammar/1.0">
  +  <start>
  +    <element name="cocoon-installation">
  +
  +      <!-- the user who installed cocoon -->
  +      <element name="user">
  +        <element name="firstname"/>
  +        <element name="lastname"/>
  +        <element name="email">
  +          <constraint type="regexpr" name="E_EMAIL">^[a-zA-Z0-9]+[a-zA-Z0-9-_.]*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$</constraint>
  +        </element>
  +        <optional>
  +          <element name="age"/>
  +          <element name="gender"/>
  +        </optional>
  +      </element>
  +
  +      <!-- serial number of cocoon installation -->
  +      <element name="number"/>
  +
  +      <!-- an optional live url -->
  +      <optional>
  +        <element name="live-url"/>
  +        <element name="publish"/>
  +      </optional>
  +
  +      <!-- the system cocoon is running on -->
  +      <element name="system">
  +        <element name="os">
  +          <constraint type="choice" name="E_OS">
  +            <choice value="linux">Linux</choice>
  +            <choice value="w2k">Windows 2000</choice>
  +          </constraint>
  +        </element>
  +        <element name="processor">
  +          <constraint type="choice" name="E_PROCESSOR">
  +            <choice value="intel">Intel</choice>
  +            <choice value="powerpc">PowerPC</choice>
  +          </constraint>
  +        </element>
  +        <element name="ram"/>
  +        <element name="servlet-engine">
  +          <constraint type="choice" name="E_ENGINE">
  +            <choice value="tc4">Tomcat 4</choice>
  +            <choice value="tc3">Tomcat 3</choice>
  +            <choice value="resin">Resin</choice>
  +          </constraint>
  +        </element>
  +        <element name="java-version">
  +          <constraint type="choice" name="E_JAVA">
  +            <choice value="1.2">JDK 1.2.x</choice>
  +            <choice value="1.3">JDK 1.3.x</choice>
  +            <choice value="1.4">JDK 1.4.x</choice>
  +          </constraint>
  +        </element>        
  +      </element>
  +    </element>
  +  </start>
  +</grammar>
  
  
  
  1.2       +11 -11    cocoon-2.1/src/blocks/session-fw/conf/session-act.xmap
  
  Index: session-act.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/session-fw/conf/session-act.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- session-act.xmap	9 Mar 2003 00:06:06 -0000	1.1
  +++ session-act.xmap	6 May 2003 14:12:57 -0000	1.2
  @@ -1,11 +1,11 @@
  -<?xml version="1.0"?>
  -
  -<xmap xpath="/sitemap/components/actions"
  -      unless="action[@name='session']">
  -
  -    <map:action name="session"
  -                src="org.apache.cocoon.webapps.session.acting.SessionAction"/>
  -
  -    <map:action name="session-form"
  -                src="org.apache.cocoon.webapps.session.acting.SessionFormAction"/>
  -</xmap>
  +<?xml version="1.0"?>
  +
  +<xmap xpath="/sitemap/components/actions"
  +      unless="action[@name='session']">
  +
  +    <map:action name="session"
  +                src="org.apache.cocoon.webapps.session.acting.SessionAction"/>
  +
  +    <map:action name="session-form"
  +                src="org.apache.cocoon.webapps.session.acting.SessionFormAction"/>
  +</xmap>
  
  
  
  1.3       +8 -7      cocoon-2.1/src/blocks/session-fw/conf/session-sel.xmap
  
  Index: session-sel.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/session-fw/conf/session-sel.xmap,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- session-sel.xmap	6 May 2003 13:43:55 -0000	1.2
  +++ session-sel.xmap	6 May 2003 14:12:57 -0000	1.3
  @@ -1,7 +1,8 @@
  -<?xml version="1.0"?>
  -<xmap xpath="/sitemap/components/selectors"
  -      unless="selector[@name='session-media']">
  -
  -    <map:selector name="session-media"
  -                  src="org.apache.cocoon.webapps.session.selection.MediaSelector"/>
  -</xmap>
  +<?xml version="1.0"?>
  +
  +<xmap xpath="/sitemap/components/selectors"
  +      unless="selector[@name='session-media']">
  +
  +    <map:selector name="session-media"
  +                  src="org.apache.cocoon.webapps.session.selection.MediaSelector"/>
  +</xmap>
  
  
  
  1.2       +14 -14    cocoon-2.1/src/blocks/session-fw/conf/session-tran.xmap
  
  Index: session-tran.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/session-fw/conf/session-tran.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- session-tran.xmap	9 Mar 2003 00:06:06 -0000	1.1
  +++ session-tran.xmap	6 May 2003 14:12:57 -0000	1.2
  @@ -1,15 +1,15 @@
  -<?xml version="1.0"?>
  -
  -<xmap xpath="/sitemap/components/transformers"
  -      unless="transformer[@name='session']">
  -
  -    <map:transformer name="session"
  -                     src="org.apache.cocoon.webapps.session.transformation.SessionTransformer"
  -                     pool-max="32" pool-min="8" pool-grow="4"/>
  -    <map:transformer name="session-pre"
  -                     src="org.apache.cocoon.webapps.session.transformation.SessionPreTransformer"
  -                     pool-max="32" pool-min="8" pool-grow="4"/>
  -    <map:transformer name="session-post"
  -                     src="org.apache.cocoon.webapps.session.transformation.SessionPostTransformer"
  -                     pool-max="32" pool-min="8" pool-grow="4"/>
  +<?xml version="1.0"?>
  +
  +<xmap xpath="/sitemap/components/transformers"
  +      unless="transformer[@name='session']">
  +
  +    <map:transformer name="session"
  +                     src="org.apache.cocoon.webapps.session.transformation.SessionTransformer"
  +                     pool-max="32" pool-min="8" pool-grow="4"/>
  +    <map:transformer name="session-pre"
  +                     src="org.apache.cocoon.webapps.session.transformation.SessionPreTransformer"
  +                     pool-max="32" pool-min="8" pool-grow="4"/>
  +    <map:transformer name="session-post"
  +                     src="org.apache.cocoon.webapps.session.transformation.SessionPostTransformer"
  +                     pool-max="32" pool-min="8" pool-grow="4"/>
   </xmap>
  
  
  
  1.3       +476 -476  cocoon-2.1/src/blocks/slide/java/org/apache/cocoon/components/repository/impl/SlideConfigurationAdapter.java
  
  Index: SlideConfigurationAdapter.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/slide/java/org/apache/cocoon/components/repository/impl/SlideConfigurationAdapter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SlideConfigurationAdapter.java	16 Mar 2003 17:49:06 -0000	1.2
  +++ SlideConfigurationAdapter.java	6 May 2003 14:12:58 -0000	1.3
  @@ -1,476 +1,476 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:   "This product includes software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -
  -package org.apache.cocoon.components.repository.impl;
  -
  -import org.apache.slide.util.conf.Configuration;
  -import org.apache.slide.util.conf.ConfigurationException;
  -
  -import java.util.*;
  -
  -/**
  - * The class represent an adapter for the configuration class from jakarta slide
  - *
  - * @author <a href="mailto:stephan@vern.chem.tu-berlin.de">Stephan Michels</a>
  - * @version CVS $Id$
  - */
  -public class SlideConfigurationAdapter implements Configuration {
  -
  -    private org.apache.avalon.framework.configuration.Configuration configuration;
  -
  -    /**
  -     * Create a new adapter to map a Avalon configuration 
  -     * to a Slide configuration 
  -     *
  -     * @param configuration Avalon configuration
  -     */
  -    public SlideConfigurationAdapter(org.apache.avalon.framework.configuration.Configuration configuration) {
  -        this.configuration = configuration;
  -    }
  -
  -    /**
  -     * Return the name of the node.
  -     *
  -     * @return name of the <code>Configuration</code> node.
  -     */
  -    public String getName() {
  -        return this.configuration.getName();
  -    }
  -
  -    /**
  -     * Return a new <code>Configuration</code> instance encapsulating the
  -     * specified child node.
  -     *
  -     * @param child The name of the child node.
  -     *
  -     * @return Configuration
  -     *
  -     * @throws ConfigurationException If no child with that name exists.
  -     */
  -    public Configuration getConfiguration(String child)
  -      throws ConfigurationException {
  -        return new SlideConfigurationAdapter(this.configuration.getChild(child));
  -    }
  -
  -    /**
  -     * Return an <code>Enumeration</code> of <code>Configuration<code>
  -     * elements containing all node children with the specified name.
  -     *
  -     * @param name The name of the children to get.
  -     *
  -     * @return Enumeration.  The <code>Enumeration</code> will be
  -     *         empty if there are no nodes by the specified name.
  -     */
  -    public Enumeration getConfigurations(String name) {
  -
  -        Vector configurations = new Vector();
  -        org.apache.avalon.framework.configuration.Configuration[] childs = this.configuration.getChildren(name);
  -
  -        for (int i = 0; i<childs.length; i++) {
  -            configurations.addElement(new SlideConfigurationAdapter(childs[i]));
  -        }
  -        return configurations.elements();
  -    }
  -
  -    /**
  -     * Return the value of specified attribute.
  -     *
  -     * @param paramName The name of the parameter you ask the value of.
  -     *
  -     * @return String value of attribute.
  -     *
  -     * @throws ConfigurationException If no attribute with that name exists.
  -     */
  -    public String getAttribute(String paramName)
  -      throws ConfigurationException {
  -
  -        try {
  -            return this.configuration.getAttribute(paramName);
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            throw new ConfigurationException(ce.getMessage(), this);
  -        }
  -    }
  -
  -    /**
  -     * Return the <code>int</code> value of the specified attribute contained
  -     * in this node.
  -     *
  -     * @param paramName The name of the parameter you ask the value of.
  -     *
  -     * @return int value of attribute
  -     *
  -     * @throws ConfigurationException If no parameter with that name exists.
  -     *                                or if conversion to <code>int</code> fails.
  -     */
  -    public int getAttributeAsInt(String paramName)
  -      throws ConfigurationException {
  -
  -        try {
  -            return this.configuration.getAttributeAsInteger(paramName);
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            throw new ConfigurationException(ce.getMessage(), this);
  -        }
  -    }
  -
  -    /**
  -     * Returns the value of the attribute specified by its name as a
  -     * <code>long</code>.
  -     *
  -     *
  -     * @param name       
  -     *
  -     * @return long value of attribute
  -     *
  -     * @throws ConfigurationException If no parameter with that name exists.
  -     *                                or if conversion to <code>long</code> fails.
  -     */
  -    public long getAttributeAsLong(String name)
  -      throws ConfigurationException {
  -
  -        try {
  -            return this.configuration.getAttributeAsLong(name);
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            throw new ConfigurationException(ce.getMessage(), this);
  -        }
  -    }
  -
  -    /**
  -     * Return the <code>float</code> value of the specified parameter contained
  -     * in this node.
  -     *
  -     * @param paramName The name of the parameter you ask the value of.
  -     *
  -     * @return float value of attribute
  -     *
  -     * @throws ConfigurationException If no parameter with that name exists.
  -     *                                or if conversion to <code>float</code> fails.
  -     */
  -    public float getAttributeAsFloat(String paramName)
  -      throws ConfigurationException {
  -
  -        try {
  -            return this.configuration.getAttributeAsFloat(paramName);
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            throw new ConfigurationException(ce.getMessage(), this);
  -        }
  -    }
  -
  -    /**
  -     * Return the <code>boolean</code> value of the specified parameter contained
  -     * in this node.<br>
  -     *
  -     * @param paramName The name of the parameter you ask the value of.
  -     *
  -     * @return boolean value of attribute
  -     *
  -     * @throws ConfigurationException If no parameter with that name exists.
  -     *                                   or if conversion to <code>boolean</code> fails.
  -     */
  -    public boolean getAttributeAsBoolean(String paramName)
  -      throws ConfigurationException {
  -
  -        try {
  -            return this.configuration.getAttributeAsBoolean(paramName);
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            throw new ConfigurationException(ce.getMessage(), this);
  -        }
  -    }
  -
  -    /**
  -     * Return the <code>String</code> value of the node.
  -     *
  -     * @return the value of the node.
  -     */
  -    public String getValue() {
  -
  -        try {
  -            return this.configuration.getValue();
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            return "";
  -        }
  -    }
  -
  -    /**
  -     * Return the <code>int</code> value of the node.
  -     *
  -     * @return the value of the node.
  -     *
  -     * @throws ConfigurationException If conversion to <code>int</code> fails.
  -     */
  -    public int getValueAsInt() throws ConfigurationException {
  -
  -        try {
  -            return this.configuration.getValueAsInteger();
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            throw new ConfigurationException(ce.getMessage(), this);
  -        }
  -    }
  -
  -    /**
  -     * Return the <code>float</code> value of the node.
  -     *
  -     * @return the value of the node.
  -     *
  -     * @throws ConfigurationException If conversion to <code>float</code> fails.
  -     */
  -    public float getValueAsFloat() throws ConfigurationException {
  -
  -        try {
  -            return this.configuration.getValueAsFloat();
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            throw new ConfigurationException(ce.getMessage(), this);
  -        }
  -    }
  -
  -    /**
  -     * Return the <code>boolean</code> value of the node.
  -     *
  -     * @return the value of the node.
  -     *
  -     * @throws ConfigurationException If conversion to <code>boolean</code> fails.
  -     */
  -    public boolean getValueAsBoolean() throws ConfigurationException {
  -
  -        try {
  -            return this.configuration.getValueAsBoolean();
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            throw new ConfigurationException(ce.getMessage(), this);
  -        }
  -    }
  -
  -    /**
  -     * Return the <code>long</code> value of the node.<br>
  -     *
  -     * @return the value of the node.
  -     *
  -     * @throws ConfigurationException If conversion to <code>long</code> fails.
  -     */
  -    public long getValueAsLong() throws ConfigurationException {
  -
  -        try {
  -            return this.configuration.getValueAsLong();
  -        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  -            throw new ConfigurationException(ce.getMessage(), this);
  -        }
  -    }
  -
  -    /**
  -     * Returns the value of the configuration element as a <code>String</code>.
  -     * If the configuration value is not set, the default value will be
  -     * used.
  -     *
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return String value of the <code>Configuration</code>, or default
  -     *         if none specified.
  -     */
  -    public String getValue(String defaultValue) {
  -
  -        return this.configuration.getValue(defaultValue);
  -    }
  -
  -    /**
  -     * Returns the value of the configuration element as an <code>int</code>.
  -     * If the configuration value is not set, the default value will be
  -     * used.
  -     *
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return int value of the <code>Configuration</code>, or default
  -     *         if none specified.
  -     */
  -    public int getValueAsInt(int defaultValue) {
  -
  -        return this.configuration.getValueAsInteger(defaultValue);
  -    }
  -
  -    /**
  -     * Returns the value of the configuration element as a <code>long</code>.
  -     * If the configuration value is not set, the default value will be
  -     * used.
  -     *
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return long value of the <code>Configuration</code>, or default
  -     *         if none specified.
  -     */
  -    public long getValueAsLong(long defaultValue) {
  -
  -        return this.configuration.getValueAsLong(defaultValue);
  -    }
  -
  -    /**
  -     * Returns the value of the configuration element as a <code>float</code>.
  -     * If the configuration value is not set, the default value will be
  -     * used.
  -     *
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return float value of the <code>Configuration</code>, or default
  -     *         if none specified.
  -     */
  -    public float getValueAsFloat(float defaultValue) {
  -
  -        return this.configuration.getValueAsFloat(defaultValue);
  -    }
  -
  -    /**
  -     * Returns the value of the configuration element as a <code>boolean</code>.
  -     * If the configuration value is not set, the default value will be
  -     * used.
  -     *
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return boolean value of the <code>Configuration</code>, or default
  -     *         if none specified.
  -     */
  -    public boolean getValueAsBoolean(boolean defaultValue) {
  -
  -        return this.configuration.getValueAsBoolean(defaultValue);
  -    }
  -
  -    /**
  -     * Returns the value of the attribute specified by its name as a
  -     * <code>String</code>, or the default value if no attribute by
  -     * that name exists or is empty.
  -     *
  -     * @param name The name of the attribute you ask the value of.
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return String value of attribute. It will return the default
  -     *         value if the named attribute does not exist, or if
  -     *         the value is not set.
  -     */
  -    public String getAttribute(String name, String defaultValue) {
  -
  -        return this.configuration.getAttribute(name, defaultValue);
  -    }
  -
  -    /**
  -     * Returns the value of the attribute specified by its name as a
  -     * <code>int</code>, or the default value if no attribute by
  -     * that name exists or is empty.
  -     *
  -     * @param name The name of the attribute you ask the value of.
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return int value of attribute. It will return the default
  -     *         value if the named attribute does not exist, or if
  -     *         the value is not set.
  -     */
  -    public int getAttributeAsInt(String name, int defaultValue) {
  -
  -        return this.configuration.getAttributeAsInteger(name, defaultValue);
  -    }
  -
  -    /**
  -     * Returns the value of the attribute specified by its name as a
  -     * <code>long</code>, or the default value if no attribute by
  -     * that name exists or is empty.
  -     *
  -     * @param name The name of the attribute you ask the value of.
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return long value of attribute. It will return the default
  -     *         value if the named attribute does not exist, or if
  -     *         the value is not set.
  -     */
  -    public long getAttributeAsLong(String name, long defaultValue) {
  -
  -        return this.configuration.getAttributeAsLong(name, defaultValue);
  -    }
  -
  -    /**
  -     * Returns the value of the attribute specified by its name as a
  -     * <code>float</code>, or the default value if no attribute by
  -     * that name exists or is empty.
  -     *
  -     * @param name The name of the attribute you ask the value of.
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return float value of attribute. It will return the default
  -     *         value if the named attribute does not exist, or if
  -     *         the value is not set.
  -     */
  -    public float getAttributeAsFloat(String name, float defaultValue) {
  -
  -        return this.configuration.getAttributeAsFloat(name, defaultValue);
  -    }
  -
  -    /**
  -     * Returns the value of the attribute specified by its name as a
  -     * <code>boolean</code>, or the default value if no attribute by
  -     * that name exists or is empty.
  -     *
  -     * @param name The name of the attribute you ask the value of.
  -     * @param defaultValue The default value desired.
  -     *
  -     * @return boolean value of attribute. It will return the default
  -     *         value if the named attribute does not exist, or if
  -     *         the value is not set.
  -     */
  -    public boolean getAttributeAsBoolean(String name, boolean defaultValue) {
  -
  -        return this.configuration.getAttributeAsBoolean(name, defaultValue);
  -    }
  -
  -    /**
  -     * Return a <code>String</code> indicating the position of this
  -     * configuration element in a source file or URI.
  -     *
  -     * @return String if a source file or URI is specified.  Otherwise
  -     *         it returns <code>null</code>
  -     */
  -    public String getLocation() {
  -
  -        return this.configuration.getLocation();
  -    }
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:   "This product includes software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +
  +package org.apache.cocoon.components.repository.impl;
  +
  +import org.apache.slide.util.conf.Configuration;
  +import org.apache.slide.util.conf.ConfigurationException;
  +
  +import java.util.*;
  +
  +/**
  + * The class represent an adapter for the configuration class from jakarta slide
  + *
  + * @author <a href="mailto:stephan@vern.chem.tu-berlin.de">Stephan Michels</a>
  + * @version CVS $Id$
  + */
  +public class SlideConfigurationAdapter implements Configuration {
  +
  +    private org.apache.avalon.framework.configuration.Configuration configuration;
  +
  +    /**
  +     * Create a new adapter to map a Avalon configuration 
  +     * to a Slide configuration 
  +     *
  +     * @param configuration Avalon configuration
  +     */
  +    public SlideConfigurationAdapter(org.apache.avalon.framework.configuration.Configuration configuration) {
  +        this.configuration = configuration;
  +    }
  +
  +    /**
  +     * Return the name of the node.
  +     *
  +     * @return name of the <code>Configuration</code> node.
  +     */
  +    public String getName() {
  +        return this.configuration.getName();
  +    }
  +
  +    /**
  +     * Return a new <code>Configuration</code> instance encapsulating the
  +     * specified child node.
  +     *
  +     * @param child The name of the child node.
  +     *
  +     * @return Configuration
  +     *
  +     * @throws ConfigurationException If no child with that name exists.
  +     */
  +    public Configuration getConfiguration(String child)
  +      throws ConfigurationException {
  +        return new SlideConfigurationAdapter(this.configuration.getChild(child));
  +    }
  +
  +    /**
  +     * Return an <code>Enumeration</code> of <code>Configuration<code>
  +     * elements containing all node children with the specified name.
  +     *
  +     * @param name The name of the children to get.
  +     *
  +     * @return Enumeration.  The <code>Enumeration</code> will be
  +     *         empty if there are no nodes by the specified name.
  +     */
  +    public Enumeration getConfigurations(String name) {
  +
  +        Vector configurations = new Vector();
  +        org.apache.avalon.framework.configuration.Configuration[] childs = this.configuration.getChildren(name);
  +
  +        for (int i = 0; i<childs.length; i++) {
  +            configurations.addElement(new SlideConfigurationAdapter(childs[i]));
  +        }
  +        return configurations.elements();
  +    }
  +
  +    /**
  +     * Return the value of specified attribute.
  +     *
  +     * @param paramName The name of the parameter you ask the value of.
  +     *
  +     * @return String value of attribute.
  +     *
  +     * @throws ConfigurationException If no attribute with that name exists.
  +     */
  +    public String getAttribute(String paramName)
  +      throws ConfigurationException {
  +
  +        try {
  +            return this.configuration.getAttribute(paramName);
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            throw new ConfigurationException(ce.getMessage(), this);
  +        }
  +    }
  +
  +    /**
  +     * Return the <code>int</code> value of the specified attribute contained
  +     * in this node.
  +     *
  +     * @param paramName The name of the parameter you ask the value of.
  +     *
  +     * @return int value of attribute
  +     *
  +     * @throws ConfigurationException If no parameter with that name exists.
  +     *                                or if conversion to <code>int</code> fails.
  +     */
  +    public int getAttributeAsInt(String paramName)
  +      throws ConfigurationException {
  +
  +        try {
  +            return this.configuration.getAttributeAsInteger(paramName);
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            throw new ConfigurationException(ce.getMessage(), this);
  +        }
  +    }
  +
  +    /**
  +     * Returns the value of the attribute specified by its name as a
  +     * <code>long</code>.
  +     *
  +     *
  +     * @param name       
  +     *
  +     * @return long value of attribute
  +     *
  +     * @throws ConfigurationException If no parameter with that name exists.
  +     *                                or if conversion to <code>long</code> fails.
  +     */
  +    public long getAttributeAsLong(String name)
  +      throws ConfigurationException {
  +
  +        try {
  +            return this.configuration.getAttributeAsLong(name);
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            throw new ConfigurationException(ce.getMessage(), this);
  +        }
  +    }
  +
  +    /**
  +     * Return the <code>float</code> value of the specified parameter contained
  +     * in this node.
  +     *
  +     * @param paramName The name of the parameter you ask the value of.
  +     *
  +     * @return float value of attribute
  +     *
  +     * @throws ConfigurationException If no parameter with that name exists.
  +     *                                or if conversion to <code>float</code> fails.
  +     */
  +    public float getAttributeAsFloat(String paramName)
  +      throws ConfigurationException {
  +
  +        try {
  +            return this.configuration.getAttributeAsFloat(paramName);
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            throw new ConfigurationException(ce.getMessage(), this);
  +        }
  +    }
  +
  +    /**
  +     * Return the <code>boolean</code> value of the specified parameter contained
  +     * in this node.<br>
  +     *
  +     * @param paramName The name of the parameter you ask the value of.
  +     *
  +     * @return boolean value of attribute
  +     *
  +     * @throws ConfigurationException If no parameter with that name exists.
  +     *                                   or if conversion to <code>boolean</code> fails.
  +     */
  +    public boolean getAttributeAsBoolean(String paramName)
  +      throws ConfigurationException {
  +
  +        try {
  +            return this.configuration.getAttributeAsBoolean(paramName);
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            throw new ConfigurationException(ce.getMessage(), this);
  +        }
  +    }
  +
  +    /**
  +     * Return the <code>String</code> value of the node.
  +     *
  +     * @return the value of the node.
  +     */
  +    public String getValue() {
  +
  +        try {
  +            return this.configuration.getValue();
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            return "";
  +        }
  +    }
  +
  +    /**
  +     * Return the <code>int</code> value of the node.
  +     *
  +     * @return the value of the node.
  +     *
  +     * @throws ConfigurationException If conversion to <code>int</code> fails.
  +     */
  +    public int getValueAsInt() throws ConfigurationException {
  +
  +        try {
  +            return this.configuration.getValueAsInteger();
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            throw new ConfigurationException(ce.getMessage(), this);
  +        }
  +    }
  +
  +    /**
  +     * Return the <code>float</code> value of the node.
  +     *
  +     * @return the value of the node.
  +     *
  +     * @throws ConfigurationException If conversion to <code>float</code> fails.
  +     */
  +    public float getValueAsFloat() throws ConfigurationException {
  +
  +        try {
  +            return this.configuration.getValueAsFloat();
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            throw new ConfigurationException(ce.getMessage(), this);
  +        }
  +    }
  +
  +    /**
  +     * Return the <code>boolean</code> value of the node.
  +     *
  +     * @return the value of the node.
  +     *
  +     * @throws ConfigurationException If conversion to <code>boolean</code> fails.
  +     */
  +    public boolean getValueAsBoolean() throws ConfigurationException {
  +
  +        try {
  +            return this.configuration.getValueAsBoolean();
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            throw new ConfigurationException(ce.getMessage(), this);
  +        }
  +    }
  +
  +    /**
  +     * Return the <code>long</code> value of the node.<br>
  +     *
  +     * @return the value of the node.
  +     *
  +     * @throws ConfigurationException If conversion to <code>long</code> fails.
  +     */
  +    public long getValueAsLong() throws ConfigurationException {
  +
  +        try {
  +            return this.configuration.getValueAsLong();
  +        } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
  +            throw new ConfigurationException(ce.getMessage(), this);
  +        }
  +    }
  +
  +    /**
  +     * Returns the value of the configuration element as a <code>String</code>.
  +     * If the configuration value is not set, the default value will be
  +     * used.
  +     *
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return String value of the <code>Configuration</code>, or default
  +     *         if none specified.
  +     */
  +    public String getValue(String defaultValue) {
  +
  +        return this.configuration.getValue(defaultValue);
  +    }
  +
  +    /**
  +     * Returns the value of the configuration element as an <code>int</code>.
  +     * If the configuration value is not set, the default value will be
  +     * used.
  +     *
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return int value of the <code>Configuration</code>, or default
  +     *         if none specified.
  +     */
  +    public int getValueAsInt(int defaultValue) {
  +
  +        return this.configuration.getValueAsInteger(defaultValue);
  +    }
  +
  +    /**
  +     * Returns the value of the configuration element as a <code>long</code>.
  +     * If the configuration value is not set, the default value will be
  +     * used.
  +     *
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return long value of the <code>Configuration</code>, or default
  +     *         if none specified.
  +     */
  +    public long getValueAsLong(long defaultValue) {
  +
  +        return this.configuration.getValueAsLong(defaultValue);
  +    }
  +
  +    /**
  +     * Returns the value of the configuration element as a <code>float</code>.
  +     * If the configuration value is not set, the default value will be
  +     * used.
  +     *
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return float value of the <code>Configuration</code>, or default
  +     *         if none specified.
  +     */
  +    public float getValueAsFloat(float defaultValue) {
  +
  +        return this.configuration.getValueAsFloat(defaultValue);
  +    }
  +
  +    /**
  +     * Returns the value of the configuration element as a <code>boolean</code>.
  +     * If the configuration value is not set, the default value will be
  +     * used.
  +     *
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return boolean value of the <code>Configuration</code>, or default
  +     *         if none specified.
  +     */
  +    public boolean getValueAsBoolean(boolean defaultValue) {
  +
  +        return this.configuration.getValueAsBoolean(defaultValue);
  +    }
  +
  +    /**
  +     * Returns the value of the attribute specified by its name as a
  +     * <code>String</code>, or the default value if no attribute by
  +     * that name exists or is empty.
  +     *
  +     * @param name The name of the attribute you ask the value of.
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return String value of attribute. It will return the default
  +     *         value if the named attribute does not exist, or if
  +     *         the value is not set.
  +     */
  +    public String getAttribute(String name, String defaultValue) {
  +
  +        return this.configuration.getAttribute(name, defaultValue);
  +    }
  +
  +    /**
  +     * Returns the value of the attribute specified by its name as a
  +     * <code>int</code>, or the default value if no attribute by
  +     * that name exists or is empty.
  +     *
  +     * @param name The name of the attribute you ask the value of.
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return int value of attribute. It will return the default
  +     *         value if the named attribute does not exist, or if
  +     *         the value is not set.
  +     */
  +    public int getAttributeAsInt(String name, int defaultValue) {
  +
  +        return this.configuration.getAttributeAsInteger(name, defaultValue);
  +    }
  +
  +    /**
  +     * Returns the value of the attribute specified by its name as a
  +     * <code>long</code>, or the default value if no attribute by
  +     * that name exists or is empty.
  +     *
  +     * @param name The name of the attribute you ask the value of.
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return long value of attribute. It will return the default
  +     *         value if the named attribute does not exist, or if
  +     *         the value is not set.
  +     */
  +    public long getAttributeAsLong(String name, long defaultValue) {
  +
  +        return this.configuration.getAttributeAsLong(name, defaultValue);
  +    }
  +
  +    /**
  +     * Returns the value of the attribute specified by its name as a
  +     * <code>float</code>, or the default value if no attribute by
  +     * that name exists or is empty.
  +     *
  +     * @param name The name of the attribute you ask the value of.
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return float value of attribute. It will return the default
  +     *         value if the named attribute does not exist, or if
  +     *         the value is not set.
  +     */
  +    public float getAttributeAsFloat(String name, float defaultValue) {
  +
  +        return this.configuration.getAttributeAsFloat(name, defaultValue);
  +    }
  +
  +    /**
  +     * Returns the value of the attribute specified by its name as a
  +     * <code>boolean</code>, or the default value if no attribute by
  +     * that name exists or is empty.
  +     *
  +     * @param name The name of the attribute you ask the value of.
  +     * @param defaultValue The default value desired.
  +     *
  +     * @return boolean value of attribute. It will return the default
  +     *         value if the named attribute does not exist, or if
  +     *         the value is not set.
  +     */
  +    public boolean getAttributeAsBoolean(String name, boolean defaultValue) {
  +
  +        return this.configuration.getAttributeAsBoolean(name, defaultValue);
  +    }
  +
  +    /**
  +     * Return a <code>String</code> indicating the position of this
  +     * configuration element in a source file or URI.
  +     *
  +     * @return String if a source file or URI is specified.  Otherwise
  +     *         it returns <code>null</code>
  +     */
  +    public String getLocation() {
  +
  +        return this.configuration.getLocation();
  +    }
  +}
  
  
  
  1.4       +6 -9      cocoon-2.1/src/blocks/slide/samples/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/slide/samples/sitemap.xmap,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- sitemap.xmap	6 May 2003 11:38:10 -0000	1.3
  +++ sitemap.xmap	6 May 2003 14:12:58 -0000	1.4
  @@ -1,4 +1,5 @@
   <?xml version="1.0"?>
  +
   <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
   
   <!-- =========================== Components =================================== -->
  @@ -43,7 +44,6 @@
   <!-- =========================== Views =================================== -->
   
    <map:views>
  - 
     <map:view name="content" from-label="content">
      <map:serialize type="xml"/>
     </map:view>
  @@ -56,7 +56,6 @@
     <map:view name="xml" from-label="content">
      <map:serialize type="xml"/>
     </map:view>
  -     
    </map:views>
   
   <!-- =========================== Resources =================================== -->
  @@ -88,8 +87,8 @@
      </authentication-manager>
     </map:component-configurations>
   
  -  <map:pipeline internal-only="true">
   
  +  <map:pipeline internal-only="true">
      <map:match pattern="principallist">
       <map:generate type="principallist">
        <map:parameter name="principalprovider" value="slide"/>
  @@ -121,14 +120,13 @@
   
       <map:serialize type="xml"/>
      </map:match>
  -
     </map:pipeline>
   
  -  <map:pipeline>
   
  +  <map:pipeline>
      <map:match pattern="">
  -	  <map:redirect-to uri="content/"/>
  -	 </map:match>
  +    <map:redirect-to uri="content/"/>
  +   </map:match>
    
      <map:match pattern="login.html">
       <map:generate src="login.xhtml"/>
  @@ -241,7 +239,6 @@
       </map:act>
      </map:match>
   			
  -	</map:pipeline>
  -
  +  </map:pipeline>
    </map:pipelines>
   </map:sitemap>
  
  
  
  1.2       +8 -8      cocoon-2.1/src/blocks/taglib/conf/jxpath.xconf
  
  Index: jxpath.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/taglib/conf/jxpath.xconf,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jxpath.xconf	10 Mar 2003 18:13:42 -0000	1.1
  +++ jxpath.xconf	6 May 2003 14:12:59 -0000	1.2
  @@ -1,8 +1,8 @@
  -<?xml version="1.0"?>
  -
  -<xconf xpath="/cocoon" unless="component[@role='org.apache.cocoon.jxpath.JXPathCocoonContexts']">
  -
  -  <component role="org.apache.cocoon.jxpath.JXPathCocoonContexts" 
  -    class="org.apache.cocoon.jxpath.JXPathCocoonContexts" 
  -    logger="core.jxpath"/>	
  -</xconf>
  +<?xml version="1.0"?>
  +
  +<xconf xpath="/cocoon" unless="component[@role='org.apache.cocoon.jxpath.JXPathCocoonContexts']">
  +
  +  <component role="org.apache.cocoon.jxpath.JXPathCocoonContexts" 
  +    class="org.apache.cocoon.jxpath.JXPathCocoonContexts" 
  +    logger="core.jxpath"/>	
  +</xconf>
  
  
  
  1.2       +31 -31    cocoon-2.1/src/blocks/taglib/conf/tag.xconf
  
  Index: tag.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/taglib/conf/tag.xconf,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- tag.xconf	10 Mar 2003 18:13:42 -0000	1.1
  +++ tag.xconf	6 May 2003 14:12:59 -0000	1.2
  @@ -1,31 +1,31 @@
  -<?xml version="1.0"?>
  -
  -<xconf xpath="/cocoon" unless="component[@role='org.apache.cocoon.taglib.TagSelector']">
  -	
  -  <component role="org.apache.cocoon.taglib.TagSelector" class="org.apache.cocoon.components.ExtendedComponentSelector">
  -    <taglib name="urn:apache:taglib:core" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.core">
  -      <tag name="source" class="org.apache.cocoon.taglib.core.SourceTag" logger="sitemap.taglib.core.source" />
  -    </taglib>
  -    <taglib name="urn:apache:taglib:datetime" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.datetime">
  -      <tag name="months" class="org.apache.cocoon.taglib.datetime.MonthsTag" logger="sitemap.taglib.datetime.months" />
  -    </taglib>
  -    <taglib name="urn:apache:taglib:i18n" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.i18n">
  -      <tag name="locale" class="org.apache.cocoon.taglib.i18n.LocaleTag" logger="sitemap.taglib.i18n.Locale" />
  -	</taglib>
  -	<taglib name="urn:apache:taglib:jxpath:core" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.jxpath">
  -      <tag name="out" class="org.apache.cocoon.taglib.jxpath.core.OutTag" logger="sitemap.taglib.jxpath.core.out" />
  -      <tag name="forEach" class="org.apache.cocoon.taglib.jxpath.core.ForEachTag" logger="sitemap.taglib.jxpath.core.forEach" />
  -    </taglib>
  -    <taglib name="urn:apache:taglib:string" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.string">
  -      <tag name="lower" class="org.apache.cocoon.taglib.string.LowerCaseTag" logger="sitemap.taglib.string.lower" />
  -      <tag name="textRecording" class="org.apache.cocoon.taglib.string.TextRecordingTag" logger="sitemap.taglib.string.textRecording" />
  -      <tag name="trim" class="org.apache.cocoon.taglib.string.TrimTag" logger="sitemap.taglib.string.trim" />
  -      <tag name="upper" class="org.apache.cocoon.taglib.string.UpperCaseTag" logger="sitemap.taglib.string.upper" />
  -    </taglib>
  -    <taglib name="urn:apache:taglib:test" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.test">
  -      <tag name="hello" class="org.apache.cocoon.taglib.test.HelloWorldTag" logger="sitemap.taglib.test.hello" />
  -      <tag name="iteration" class="org.apache.cocoon.taglib.test.IterationTestTag" logger="sitemap.taglib.test.iteration" />
  -    </taglib>
  -  </component>
  -	
  -</xconf>
  +<?xml version="1.0"?>
  +
  +<xconf xpath="/cocoon" unless="component[@role='org.apache.cocoon.taglib.TagSelector']">
  +	
  +  <component role="org.apache.cocoon.taglib.TagSelector" class="org.apache.cocoon.components.ExtendedComponentSelector">
  +    <taglib name="urn:apache:taglib:core" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.core">
  +      <tag name="source" class="org.apache.cocoon.taglib.core.SourceTag" logger="sitemap.taglib.core.source" />
  +    </taglib>
  +    <taglib name="urn:apache:taglib:datetime" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.datetime">
  +      <tag name="months" class="org.apache.cocoon.taglib.datetime.MonthsTag" logger="sitemap.taglib.datetime.months" />
  +    </taglib>
  +    <taglib name="urn:apache:taglib:i18n" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.i18n">
  +      <tag name="locale" class="org.apache.cocoon.taglib.i18n.LocaleTag" logger="sitemap.taglib.i18n.Locale" />
  +	</taglib>
  +	<taglib name="urn:apache:taglib:jxpath:core" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.jxpath">
  +      <tag name="out" class="org.apache.cocoon.taglib.jxpath.core.OutTag" logger="sitemap.taglib.jxpath.core.out" />
  +      <tag name="forEach" class="org.apache.cocoon.taglib.jxpath.core.ForEachTag" logger="sitemap.taglib.jxpath.core.forEach" />
  +    </taglib>
  +    <taglib name="urn:apache:taglib:string" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.string">
  +      <tag name="lower" class="org.apache.cocoon.taglib.string.LowerCaseTag" logger="sitemap.taglib.string.lower" />
  +      <tag name="textRecording" class="org.apache.cocoon.taglib.string.TextRecordingTag" logger="sitemap.taglib.string.textRecording" />
  +      <tag name="trim" class="org.apache.cocoon.taglib.string.TrimTag" logger="sitemap.taglib.string.trim" />
  +      <tag name="upper" class="org.apache.cocoon.taglib.string.UpperCaseTag" logger="sitemap.taglib.string.upper" />
  +    </taglib>
  +    <taglib name="urn:apache:taglib:test" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.test">
  +      <tag name="hello" class="org.apache.cocoon.taglib.test.HelloWorldTag" logger="sitemap.taglib.test.hello" />
  +      <tag name="iteration" class="org.apache.cocoon.taglib.test.IterationTestTag" logger="sitemap.taglib.test.iteration" />
  +    </taglib>
  +  </component>
  +	
  +</xconf>
  
  
  
  1.2       +29 -29    cocoon-2.1/src/blocks/web3/conf/web3.xconf
  
  Index: web3.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/conf/web3.xconf,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- web3.xconf	9 Mar 2003 00:06:34 -0000	1.1
  +++ web3.xconf	6 May 2003 14:12:59 -0000	1.2
  @@ -1,29 +1,29 @@
  -<?xml version="1.0"?>
  -
  -<xconf xpath="/cocoon" unless="web3">
  -
  -  <web3 logger="core.web3">
  -    <!-- optional 
  -    <class>put your DSImpl here</class>
  -    -->
  -    <backend name="indy">
  -      <pool size="10" trace="false" level="0">
  -        <client>100</client>
  -        <user>user</user>
  -        <password>secret</password>
  -        <language>DE</language>
  -        <route>indy</route>
  -        <system>00</system>
  -        <gateway>sapgw00</gateway>
  -        <program-id>USR-GR02</program-id>
  -      </pool>
  -    </backend>
  -  </web3>
  -
  -  <web3-streamer logger="core.web3">
  -    <default name="default" logger="core.web3.default-streamer"/>
  -  </web3-streamer>
  -
  -  <web-client logger="core.web3-client"/>
  -
  -</xconf>
  +<?xml version="1.0"?>
  +
  +<xconf xpath="/cocoon" unless="web3">
  +
  +  <web3 logger="core.web3">
  +    <!-- optional 
  +    <class>put your DSImpl here</class>
  +    -->
  +    <backend name="indy">
  +      <pool size="10" trace="false" level="0">
  +        <client>100</client>
  +        <user>user</user>
  +        <password>secret</password>
  +        <language>DE</language>
  +        <route>indy</route>
  +        <system>00</system>
  +        <gateway>sapgw00</gateway>
  +        <program-id>USR-GR02</program-id>
  +      </pool>
  +    </backend>
  +  </web3>
  +
  +  <web3-streamer logger="core.web3">
  +    <default name="default" logger="core.web3.default-streamer"/>
  +  </web3-streamer>
  +
  +  <web-client logger="core.web3-client"/>
  +
  +</xconf>
  
  
  
  1.2       +16 -16    cocoon-2.1/src/blocks/web3/conf/web3.xsamples
  
  Index: web3.xsamples
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/conf/web3.xsamples,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- web3.xsamples	9 Mar 2003 00:06:34 -0000	1.1
  +++ web3.xsamples	6 May 2003 14:12:59 -0000	1.2
  @@ -1,16 +1,16 @@
  -<?xml version="1.0"?>
  -
  -<xsamples xpath="/samples" unless="group[@name='web3']">
  -
  -  <group name="web3">
  -    <note> 
  -      For the examples of this block to work, an SAP R/3 system and some
  -      SAP java classes need to be available and configured according to the docs that 
  -      can be found in the developer section of the Apache Cocoon documentation.
  -    </note>
  -     <sample name="Samples" href="web3/samples">
  -       Continue to web3 block samples.
  -     </sample>
  -  </group>
  -  
  -</xsamples>
  +<?xml version="1.0"?>
  +
  +<xsamples xpath="/samples" unless="group[@name='web3']">
  +
  +  <group name="web3">
  +    <note> 
  +      For the examples of this block to work, an SAP R/3 system and some
  +      SAP java classes need to be available and configured according to the docs that 
  +      can be found in the developer section of the Apache Cocoon documentation.
  +    </note>
  +     <sample name="Samples" href="web3/samples">
  +       Continue to web3 block samples.
  +     </sample>
  +  </group>
  +  
  +</xsamples>
  
  
  
  1.3       +85 -85    cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3.java
  
  Index: Web3.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Web3.java	16 Mar 2003 17:49:09 -0000	1.2
  +++ Web3.java	6 May 2003 14:12:59 -0000	1.3
  @@ -1,85 +1,85 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package org.apache.cocoon.components.web3;
  -
  -/**
  - * Constants in Web3.
  - *
  - * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  - * @version CVS $Id$
  - */
  -public interface Web3 {
  -    
  -    String URI                 = "http://efp.cc/Web3-Rfc/2.0";
  -
  -    String INCLUDE_ELEM        = "include";
  -    String INCLUDE_NAME_ATTR   = "name";
  -    String INCLUDE_CLASS_ATTR  = "streamer";
  -    
  -    String IMPORT_ELEM         = "import";
  -    String EXPORT_ELEM         = "export";
  -    String TABLES_ELEM         = "tables";
  -    
  -    String FIELD_ELEM          = "field";
  -    String FIELD_NAME_ATTR     = "name";
  -    
  -    String ROW_ELEM            = "row";
  -    String ROW_ID_ATTR         = "id";
  -    
  -    String STRUCTURE_ELEM      = "structure";
  -    String STRUCTURE_NAME_ATTR = "name";
  -    
  -    String TABLE_ELEM          = "table";
  -    String TABLE_NAME_ATTR     = "name";
  -
  -    String ABAP_EXCEPTION_ELEM = "abap-exception";
  -    String PROCESSING_X_ELEM   = "processing-exception";
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package org.apache.cocoon.components.web3;
  +
  +/**
  + * Constants in Web3.
  + *
  + * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  + * @version CVS $Id$
  + */
  +public interface Web3 {
  +    
  +    String URI                 = "http://efp.cc/Web3-Rfc/2.0";
  +
  +    String INCLUDE_ELEM        = "include";
  +    String INCLUDE_NAME_ATTR   = "name";
  +    String INCLUDE_CLASS_ATTR  = "streamer";
  +    
  +    String IMPORT_ELEM         = "import";
  +    String EXPORT_ELEM         = "export";
  +    String TABLES_ELEM         = "tables";
  +    
  +    String FIELD_ELEM          = "field";
  +    String FIELD_NAME_ATTR     = "name";
  +    
  +    String ROW_ELEM            = "row";
  +    String ROW_ID_ATTR         = "id";
  +    
  +    String STRUCTURE_ELEM      = "structure";
  +    String STRUCTURE_NAME_ATTR = "name";
  +    
  +    String TABLE_ELEM          = "table";
  +    String TABLE_NAME_ATTR     = "name";
  +
  +    String ABAP_EXCEPTION_ELEM = "abap-exception";
  +    String PROCESSING_X_ELEM   = "processing-exception";
  +}
  
  
  
  1.3       +88 -88    cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3Client.java
  
  Index: Web3Client.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3Client.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Web3Client.java	16 Mar 2003 17:49:09 -0000	1.2
  +++ Web3Client.java	6 May 2003 14:12:59 -0000	1.3
  @@ -1,88 +1,88 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package org.apache.cocoon.components.web3;
  -
  -import org.apache.avalon.framework.component.Component;
  -
  -import com.sap.mw.jco.IRepository;
  -import com.sap.mw.jco.JCO.Client;
  -import com.sap.mw.jco.JCO.Function;
  -
  -/**
  - * The standard interface for R3Clients in Web3.
  - *
  - * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  - * @version CVS $Id$
  - */
  -public interface Web3Client extends Component {
  -    
  -    String ROLE = "org.apache.cocoon.components.web3.Web3Client";
  -    
  -    /**
  -     * Releases the Connection to the backend
  -     */
  -    void releaseClient ();
  -    
  -    /**
  -     * Initialize the client
  -     */
  -    void initClient (Client client);
  -    
  -    /**
  -     * Get a Client Repository
  -     */
  -    IRepository getRepository ();
  -    
  -    /**
  -     * Execute an Abab function
  -     */
  -    void execute(Function function);   
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package org.apache.cocoon.components.web3;
  +
  +import org.apache.avalon.framework.component.Component;
  +
  +import com.sap.mw.jco.IRepository;
  +import com.sap.mw.jco.JCO.Client;
  +import com.sap.mw.jco.JCO.Function;
  +
  +/**
  + * The standard interface for R3Clients in Web3.
  + *
  + * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  + * @version CVS $Id$
  + */
  +public interface Web3Client extends Component {
  +    
  +    String ROLE = "org.apache.cocoon.components.web3.Web3Client";
  +    
  +    /**
  +     * Releases the Connection to the backend
  +     */
  +    void releaseClient ();
  +    
  +    /**
  +     * Initialize the client
  +     */
  +    void initClient (Client client);
  +    
  +    /**
  +     * Get a Client Repository
  +     */
  +    IRepository getRepository ();
  +    
  +    /**
  +     * Execute an Abab function
  +     */
  +    void execute(Function function);   
  +}
  
  
  
  1.3       +78 -78    cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3DataSource.java
  
  Index: Web3DataSource.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3DataSource.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Web3DataSource.java	16 Mar 2003 17:49:09 -0000	1.2
  +++ Web3DataSource.java	6 May 2003 14:12:59 -0000	1.3
  @@ -1,78 +1,78 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package org.apache.cocoon.components.web3;
  -
  -import org.apache.avalon.framework.component.Component;
  -import org.apache.avalon.framework.activity.Disposable;
  -import org.apache.avalon.framework.activity.Initializable;
  -import org.apache.avalon.framework.configuration.Configurable;
  -import org.apache.avalon.framework.component.Composable;
  -
  -import java.lang.Exception;
  -
  -/**
  - * The standard interface for R3DataSources in Web3.
  - *
  - * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  - * @version CVS $Id$
  - */
  -public interface Web3DataSource extends Component, Configurable, 
  -    Initializable, Disposable, Composable {
  -        
  -    String ROLE = "org.apache.cocoon.components.web3.Web3DataSource";
  -    
  -    /**
  -     * Gets the Connection to the backend
  -     */
  -    Web3Client getWeb3Client() throws Exception;
  -    
  -    void releaseWeb3Client( Web3Client client );
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package org.apache.cocoon.components.web3;
  +
  +import org.apache.avalon.framework.component.Component;
  +import org.apache.avalon.framework.activity.Disposable;
  +import org.apache.avalon.framework.activity.Initializable;
  +import org.apache.avalon.framework.configuration.Configurable;
  +import org.apache.avalon.framework.component.Composable;
  +
  +import java.lang.Exception;
  +
  +/**
  + * The standard interface for R3DataSources in Web3.
  + *
  + * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  + * @version CVS $Id$
  + */
  +public interface Web3DataSource extends Component, Configurable, 
  +    Initializable, Disposable, Composable {
  +        
  +    String ROLE = "org.apache.cocoon.components.web3.Web3DataSource";
  +    
  +    /**
  +     * Gets the Connection to the backend
  +     */
  +    Web3Client getWeb3Client() throws Exception;
  +    
  +    void releaseWeb3Client( Web3Client client );
  +}
  
  
  
  1.3       +72 -72    cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3Streamer.java
  
  Index: Web3Streamer.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3Streamer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Web3Streamer.java	16 Mar 2003 17:49:09 -0000	1.2
  +++ Web3Streamer.java	6 May 2003 14:12:59 -0000	1.3
  @@ -1,72 +1,72 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package org.apache.cocoon.components.web3;
  -
  -import com.sap.mw.jco.JCO;
  -
  -import org.xml.sax.SAXException;
  -import org.xml.sax.ContentHandler;
  -
  -import org.apache.avalon.framework.component.Component;
  -
  -/**
  - * The standard interface for Web3Producer.
  - *
  - * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  - * @version CVS $Id$
  - */
  -public interface Web3Streamer extends Component {
  -
  -    String ROLE = "org.apache.cocoon.components.web3.Web3Streamer";
  -    
  -    void stream(JCO.Function function, 
  -        ContentHandler contentHandler) throws SAXException;
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package org.apache.cocoon.components.web3;
  +
  +import com.sap.mw.jco.JCO;
  +
  +import org.xml.sax.SAXException;
  +import org.xml.sax.ContentHandler;
  +
  +import org.apache.avalon.framework.component.Component;
  +
  +/**
  + * The standard interface for Web3Producer.
  + *
  + * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  + * @version CVS $Id$
  + */
  +public interface Web3Streamer extends Component {
  +
  +    String ROLE = "org.apache.cocoon.components.web3.Web3Streamer";
  +    
  +    void stream(JCO.Function function, 
  +        ContentHandler contentHandler) throws SAXException;
  +}
  
  
  
  1.5       +196 -196  cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/DefaultWeb3StreamerImpl.java
  
  Index: DefaultWeb3StreamerImpl.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/DefaultWeb3StreamerImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultWeb3StreamerImpl.java	31 Mar 2003 11:14:11 -0000	1.4
  +++ DefaultWeb3StreamerImpl.java	6 May 2003 14:13:00 -0000	1.5
  @@ -1,196 +1,196 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -
  -package org.apache.cocoon.components.web3.impl;
  -
  -import com.sap.mw.jco.JCO;
  -
  -import org.apache.cocoon.components.web3.Web3Streamer;
  -import org.apache.cocoon.components.web3.Web3;
  -
  -import org.apache.avalon.excalibur.pool.Poolable;
  -
  -import org.xml.sax.SAXException;
  -import org.xml.sax.helpers.AttributesImpl;
  -import org.xml.sax.ContentHandler;
  -
  -/**
  - * TBD
  - *
  - * @author  <a href="mailto:mge@efp.co.at">Michael Gerzabek</a>
  - * @since 21. Oct. 2002
  - * @version CVS $Id$
  - */
  -public class DefaultWeb3StreamerImpl implements Web3Streamer, Poolable {
  -
  -    public void stream(JCO.Function function, 
  -        ContentHandler contentHandler) throws SAXException {
  -
  -        AttributesImpl    attributes = new AttributesImpl();
  -        attributes.clear();
  -        attributes.addAttribute( Web3.URI, Web3.INCLUDE_NAME_ATTR,  
  -            Web3.INCLUDE_NAME_ATTR, "CDATA", function.getName().toUpperCase() );
  -        contentHandler.startElement( Web3.URI, Web3.INCLUDE_ELEM, 
  -            Web3.INCLUDE_ELEM, attributes );
  -        attributes.clear();
  -        contentHandler.startElement( Web3.URI, Web3.IMPORT_ELEM, 
  -            Web3.IMPORT_ELEM, attributes );
  -        streamParameterList( function.getImportParameterList(), contentHandler );
  -        contentHandler.endElement( Web3.URI, Web3.IMPORT_ELEM, Web3.IMPORT_ELEM );
  -
  -        attributes.clear();
  -        contentHandler.startElement( Web3.URI, Web3.EXPORT_ELEM, 
  -            Web3.EXPORT_ELEM, attributes );
  -        streamParameterList( function.getExportParameterList(), contentHandler );
  -        contentHandler.endElement( Web3.URI, Web3.EXPORT_ELEM, Web3.EXPORT_ELEM );
  -        
  -        JCO.ParameterList tablesParameterList = function.getTableParameterList();
  -        attributes.clear();
  -        contentHandler.startElement( Web3.URI, Web3.TABLES_ELEM, 
  -            Web3.TABLES_ELEM, attributes );
  -        if (null != tablesParameterList) {
  -            for (int i = 0; i < tablesParameterList.getFieldCount(); i++) {
  -                attributes.clear();
  -                attributes.addAttribute( Web3.URI, Web3.TABLE_NAME_ATTR, 
  -                    Web3.TABLE_NAME_ATTR, "CDATA", 
  -                    tablesParameterList.getName(i).toUpperCase() );
  -                contentHandler.startElement( Web3.URI, Web3.TABLE_ELEM,
  -                    Web3.TABLE_ELEM, attributes );
  -                JCO.Table sapTable = tablesParameterList.getTable(i);
  -                if (null != sapTable) {
  -                    for (int j = 0; j < sapTable.getNumRows(); j++) {
  -                        sapTable.setRow(j);
  -                        attributes.clear();
  -                        attributes.addAttribute(Web3.URI, Web3.ROW_ID_ATTR, 
  -                            Web3.ROW_ID_ATTR, "CDATA", "" + (j + 1));
  -                        contentHandler.startElement(Web3.URI, Web3.ROW_ELEM, 
  -                            Web3.ROW_ELEM, attributes);
  -                        for (int k = 0; k < sapTable.getFieldCount(); k++) {
  -                            attributes.clear();
  -                            attributes.addAttribute(Web3.URI, 
  -                                Web3.FIELD_NAME_ATTR, Web3.FIELD_NAME_ATTR, 
  -                                "CDATA", sapTable.getName(k).toUpperCase());
  -                            contentHandler.startElement(Web3.URI, 
  -                                Web3.FIELD_ELEM, Web3.FIELD_ELEM, attributes);
  -                            String theValue = ( sapTable.getString(k) == null) 
  -                                ? "" : sapTable.getString(k).trim();
  -                            contentHandler.characters(theValue.toCharArray(), 0, 
  -                                theValue.length());
  -                            contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM, 
  -                                Web3.FIELD_ELEM);
  -                        }
  -                        contentHandler.endElement(Web3.URI, Web3.ROW_ELEM, 
  -                            Web3.ROW_ELEM);
  -                    }
  -                    contentHandler.endElement(Web3.URI, Web3.TABLE_ELEM, 
  -                        Web3.TABLE_ELEM);
  -                }
  -            }           
  -        }
  -        contentHandler.endElement(Web3.URI, Web3.TABLES_ELEM, Web3.TABLES_ELEM);
  -        contentHandler.endElement( Web3.URI, Web3.INCLUDE_ELEM, 
  -            Web3.INCLUDE_ELEM );
  -    }
  -    
  -    protected void streamParameterList(JCO.ParameterList pList,
  -        ContentHandler contentHandler) throws SAXException {
  -        
  -        AttributesImpl attributes = new AttributesImpl();
  -        attributes.clear();
  -        if (pList != null) {
  -            for (int i = 0; i < pList.getFieldCount(); i++) {
  -                JCO.Field theField = pList.getField(i);
  -                if (theField.isStructure()) {
  -                    JCO.Structure sapStructure = 
  -                        pList.getStructure(pList.getName(i));
  -                    attributes.clear();
  -                    attributes.addAttribute(Web3.URI, Web3.STRUCTURE_NAME_ATTR, 
  -                        Web3.STRUCTURE_NAME_ATTR, "CDATA", 
  -                        pList.getName(i).toUpperCase());
  -                    contentHandler.startElement(Web3.URI, Web3.STRUCTURE_ELEM, 
  -                        Web3.STRUCTURE_ELEM, attributes);                
  -                    for (int j = 0; j < sapStructure.getFieldCount(); j++) {
  -                        attributes.clear();
  -                        attributes.addAttribute(Web3.URI, Web3.FIELD_NAME_ATTR, 
  -                            Web3.FIELD_NAME_ATTR, "CDATA", 
  -                            sapStructure.getName(j).toUpperCase());
  -                        contentHandler.startElement(Web3.URI, Web3.FIELD_ELEM, 
  -                            Web3.FIELD_ELEM, attributes);
  -                        String theValue = (sapStructure.getString(j) == null) 
  -                            ? "" : sapStructure.getString(j).trim();
  -                        contentHandler.characters(theValue.toCharArray(), 0, 
  -                            theValue.length());
  -                        contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM, 
  -                            Web3.FIELD_ELEM);
  -                    }
  -                    contentHandler.endElement(Web3.URI, Web3.STRUCTURE_ELEM, 
  -                        Web3.STRUCTURE_ELEM);
  -                } 
  -                else {
  -                    attributes.clear();
  -                    attributes.addAttribute(Web3.URI, Web3.FIELD_NAME_ATTR, 
  -                        Web3.FIELD_NAME_ATTR, "CDATA", 
  -                        pList.getName(i).toUpperCase());
  -                    contentHandler.startElement(Web3.URI, Web3.FIELD_ELEM, 
  -                        Web3.FIELD_ELEM, attributes);
  -                    String theValue = (pList.getString(i) == null)
  -                        ? "" : pList.getString(i).trim();
  -                    contentHandler.characters(theValue.toCharArray(), 0, 
  -                        theValue.length());
  -                    contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM, 
  -                        Web3.FIELD_ELEM);
  -                }
  -            }
  -        }        
  -    }
  -
  -}
  -
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +
  +package org.apache.cocoon.components.web3.impl;
  +
  +import com.sap.mw.jco.JCO;
  +
  +import org.apache.cocoon.components.web3.Web3Streamer;
  +import org.apache.cocoon.components.web3.Web3;
  +
  +import org.apache.avalon.excalibur.pool.Poolable;
  +
  +import org.xml.sax.SAXException;
  +import org.xml.sax.helpers.AttributesImpl;
  +import org.xml.sax.ContentHandler;
  +
  +/**
  + * TBD
  + *
  + * @author  <a href="mailto:mge@efp.co.at">Michael Gerzabek</a>
  + * @since 21. Oct. 2002
  + * @version CVS $Id$
  + */
  +public class DefaultWeb3StreamerImpl implements Web3Streamer, Poolable {
  +
  +    public void stream(JCO.Function function, 
  +        ContentHandler contentHandler) throws SAXException {
  +
  +        AttributesImpl    attributes = new AttributesImpl();
  +        attributes.clear();
  +        attributes.addAttribute( Web3.URI, Web3.INCLUDE_NAME_ATTR,  
  +            Web3.INCLUDE_NAME_ATTR, "CDATA", function.getName().toUpperCase() );
  +        contentHandler.startElement( Web3.URI, Web3.INCLUDE_ELEM, 
  +            Web3.INCLUDE_ELEM, attributes );
  +        attributes.clear();
  +        contentHandler.startElement( Web3.URI, Web3.IMPORT_ELEM, 
  +            Web3.IMPORT_ELEM, attributes );
  +        streamParameterList( function.getImportParameterList(), contentHandler );
  +        contentHandler.endElement( Web3.URI, Web3.IMPORT_ELEM, Web3.IMPORT_ELEM );
  +
  +        attributes.clear();
  +        contentHandler.startElement( Web3.URI, Web3.EXPORT_ELEM, 
  +            Web3.EXPORT_ELEM, attributes );
  +        streamParameterList( function.getExportParameterList(), contentHandler );
  +        contentHandler.endElement( Web3.URI, Web3.EXPORT_ELEM, Web3.EXPORT_ELEM );
  +        
  +        JCO.ParameterList tablesParameterList = function.getTableParameterList();
  +        attributes.clear();
  +        contentHandler.startElement( Web3.URI, Web3.TABLES_ELEM, 
  +            Web3.TABLES_ELEM, attributes );
  +        if (null != tablesParameterList) {
  +            for (int i = 0; i < tablesParameterList.getFieldCount(); i++) {
  +                attributes.clear();
  +                attributes.addAttribute( Web3.URI, Web3.TABLE_NAME_ATTR, 
  +                    Web3.TABLE_NAME_ATTR, "CDATA", 
  +                    tablesParameterList.getName(i).toUpperCase() );
  +                contentHandler.startElement( Web3.URI, Web3.TABLE_ELEM,
  +                    Web3.TABLE_ELEM, attributes );
  +                JCO.Table sapTable = tablesParameterList.getTable(i);
  +                if (null != sapTable) {
  +                    for (int j = 0; j < sapTable.getNumRows(); j++) {
  +                        sapTable.setRow(j);
  +                        attributes.clear();
  +                        attributes.addAttribute(Web3.URI, Web3.ROW_ID_ATTR, 
  +                            Web3.ROW_ID_ATTR, "CDATA", "" + (j + 1));
  +                        contentHandler.startElement(Web3.URI, Web3.ROW_ELEM, 
  +                            Web3.ROW_ELEM, attributes);
  +                        for (int k = 0; k < sapTable.getFieldCount(); k++) {
  +                            attributes.clear();
  +                            attributes.addAttribute(Web3.URI, 
  +                                Web3.FIELD_NAME_ATTR, Web3.FIELD_NAME_ATTR, 
  +                                "CDATA", sapTable.getName(k).toUpperCase());
  +                            contentHandler.startElement(Web3.URI, 
  +                                Web3.FIELD_ELEM, Web3.FIELD_ELEM, attributes);
  +                            String theValue = ( sapTable.getString(k) == null) 
  +                                ? "" : sapTable.getString(k).trim();
  +                            contentHandler.characters(theValue.toCharArray(), 0, 
  +                                theValue.length());
  +                            contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM, 
  +                                Web3.FIELD_ELEM);
  +                        }
  +                        contentHandler.endElement(Web3.URI, Web3.ROW_ELEM, 
  +                            Web3.ROW_ELEM);
  +                    }
  +                    contentHandler.endElement(Web3.URI, Web3.TABLE_ELEM, 
  +                        Web3.TABLE_ELEM);
  +                }
  +            }           
  +        }
  +        contentHandler.endElement(Web3.URI, Web3.TABLES_ELEM, Web3.TABLES_ELEM);
  +        contentHandler.endElement( Web3.URI, Web3.INCLUDE_ELEM, 
  +            Web3.INCLUDE_ELEM );
  +    }
  +    
  +    protected void streamParameterList(JCO.ParameterList pList,
  +        ContentHandler contentHandler) throws SAXException {
  +        
  +        AttributesImpl attributes = new AttributesImpl();
  +        attributes.clear();
  +        if (pList != null) {
  +            for (int i = 0; i < pList.getFieldCount(); i++) {
  +                JCO.Field theField = pList.getField(i);
  +                if (theField.isStructure()) {
  +                    JCO.Structure sapStructure = 
  +                        pList.getStructure(pList.getName(i));
  +                    attributes.clear();
  +                    attributes.addAttribute(Web3.URI, Web3.STRUCTURE_NAME_ATTR, 
  +                        Web3.STRUCTURE_NAME_ATTR, "CDATA", 
  +                        pList.getName(i).toUpperCase());
  +                    contentHandler.startElement(Web3.URI, Web3.STRUCTURE_ELEM, 
  +                        Web3.STRUCTURE_ELEM, attributes);                
  +                    for (int j = 0; j < sapStructure.getFieldCount(); j++) {
  +                        attributes.clear();
  +                        attributes.addAttribute(Web3.URI, Web3.FIELD_NAME_ATTR, 
  +                            Web3.FIELD_NAME_ATTR, "CDATA", 
  +                            sapStructure.getName(j).toUpperCase());
  +                        contentHandler.startElement(Web3.URI, Web3.FIELD_ELEM, 
  +                            Web3.FIELD_ELEM, attributes);
  +                        String theValue = (sapStructure.getString(j) == null) 
  +                            ? "" : sapStructure.getString(j).trim();
  +                        contentHandler.characters(theValue.toCharArray(), 0, 
  +                            theValue.length());
  +                        contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM, 
  +                            Web3.FIELD_ELEM);
  +                    }
  +                    contentHandler.endElement(Web3.URI, Web3.STRUCTURE_ELEM, 
  +                        Web3.STRUCTURE_ELEM);
  +                } 
  +                else {
  +                    attributes.clear();
  +                    attributes.addAttribute(Web3.URI, Web3.FIELD_NAME_ATTR, 
  +                        Web3.FIELD_NAME_ATTR, "CDATA", 
  +                        pList.getName(i).toUpperCase());
  +                    contentHandler.startElement(Web3.URI, Web3.FIELD_ELEM, 
  +                        Web3.FIELD_ELEM, attributes);
  +                    String theValue = (pList.getString(i) == null)
  +                        ? "" : pList.getString(i).trim();
  +                    contentHandler.characters(theValue.toCharArray(), 0, 
  +                        theValue.length());
  +                    contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM, 
  +                        Web3.FIELD_ELEM);
  +                }
  +            }
  +        }        
  +    }
  +
  +}
  +
  
  
  
  1.3       +286 -286  cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3ClientImpl.java
  
  Index: Web3ClientImpl.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3ClientImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Web3ClientImpl.java	16 Mar 2003 17:49:10 -0000	1.2
  +++ Web3ClientImpl.java	6 May 2003 14:13:00 -0000	1.3
  @@ -1,286 +1,286 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package org.apache.cocoon.components.web3.impl;
  -
  -import org.apache.cocoon.components.web3.Web3Client;
  -
  -import org.apache.avalon.framework.logger.AbstractLogEnabled;
  -import org.apache.avalon.framework.activity.Disposable;
  -import org.apache.avalon.excalibur.pool.Recyclable;
  -import org.apache.avalon.excalibur.pool.Poolable;
  -
  -import com.sap.mw.jco.JCO;
  -import com.sap.mw.jco.IRepository;
  -
  -import java.net.URL;
  -import java.util.Properties;
  -import java.util.Date;
  -
  -/**
  - * The standard interface for R3Clients in Web3.
  - *
  - * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  - * @version CVS $Id$
  - */
  -public class Web3ClientImpl extends AbstractLogEnabled 
  -implements Web3Client, Disposable, Recyclable, Poolable {
  -
  -    protected JCO.Client client = null;
  -    protected String repository = null;
  -        
  -    public void initClient(JCO.Client client) {
  -        this.client = client;
  -        this.repository = "" + (new Date ()).getTime();
  -    }
  -    
  -    public void releaseClient() {
  -        JCO.releaseClient(this.client);
  -        this.client = null;
  -    }
  -    
  -    public void dispose() {
  -        this.client = null;
  -        this.repository = null;
  -    }
  -    
  -    public IRepository getRepository() {
  -        if (null != this.repository) {
  -            return new JCO.Repository (this.repository, this.client);
  -        }
  -        return null;
  -    }
  -    
  -    public void abort(String message) {
  -        this.client.abort (message);
  -    }
  -    
  -    public Object clone() {
  -        return null;
  -    }
  -    
  -    public void confirmTID(String tid) {
  -        this.client.confirmTID (tid);
  -    }
  -    
  -    public void connect() {
  -        this.client.connect ();
  -    }
  -    
  -    public String createTID() {
  -        return this.client.createTID ();
  -    }
  -    
  -    public void disconnect() {
  -        this.client.disconnect ();
  -    }
  -    
  -    public void execute(JCO.Function function) {
  -        this.client.execute (function);
  -    }
  -    
  -    public void execute(JCO.Function function, String tid) {
  -        this.client.execute (function, tid);
  -    }
  -    
  -    public void execute(JCO.Function function, String tid, String queue_name) { 
  -        this.client.execute (function, tid, queue_name);
  -    }
  -    
  -    public void execute(JCO.Function function, String tid, 
  -                        String queue_name, int queue_pos) {
  -        this.client.execute (function, tid, queue_name, queue_pos);
  -    }
  -    
  -    public void execute(String name, JCO.ParameterList input, 
  -                        JCO.ParameterList output) {
  -        this.client.execute (name, input, output);
  -    }
  -    
  -    public void execute(String name, JCO.ParameterList input, 
  -                        JCO.ParameterList output, JCO.ParameterList tables) {
  -        this.client.execute (name, input, output, tables);
  -    }
  -    
  -    public void execute(String name, JCO.ParameterList input, 
  -                        JCO.ParameterList tables, String tid) {
  -        this.client.execute (name, input, tables, tid);
  -    }
  -    
  -    public void execute(java.lang.String name, JCO.ParameterList input, 
  -                        JCO.ParameterList tables, String tid, 
  -                        String queue_name) {
  -        this.client.execute (name, input, tables, tid, queue_name);
  -    }
  -    
  -    public void execute(java.lang.String name, JCO.ParameterList input, 
  -                        JCO.ParameterList tables, String tid, 
  -                        String queue_name, int queue_pos) {
  -        this.client.execute (name, input, tables, tid, queue_name, queue_pos);
  -    }
  -    
  -    public boolean getAbapDebug() {
  -        return this.client.getAbapDebug ();
  -    }
  -    
  -    public String getASHost() {
  -        return this.client.getASHost ();
  -    }
  -
  -    public JCO.Attributes getAttributes() {
  -        return this.client.getAttributes ();
  -    }
  -    
  -    public String getClient() {
  -        return this.client.getClient ();
  -    }
  -    
  -    public String getGroup() {
  -        return this.client.getGroup ();
  -    }
  -    
  -    public String getGWHost() {
  -        return this.client.getGWHost ();
  -    }
  -
  -    public String getGWServ() {
  -        return this.client.getGWServ ();
  -    }
  -    
  -    public String getLanguage() {
  -        return this.client.getLanguage ();
  -    }
  -    
  -    public String getMSHost() {
  -        return this.client.getMSHost ();
  -    }
  -    
  -    public String[][] getPropertyInfo() {
  -        return this.client.getPropertyInfo ();
  -    }
  -    
  -    public int getSapGui() {
  -        return this.client.getSapGui ();
  -    }
  -    
  -    public byte getState() {
  -        return this.client.getState ();
  -    }
  -    
  -    public String getSystemID() {
  -        return this.client.getSystemID ();
  -    }
  -    
  -    public String getSystemNumber() {
  -        return this.client.getSystemNumber ();
  -    }
  -    
  -    public String getTPName() {
  -        return this.client.getTPName ();
  -    }
  -    
  -    public boolean getTrace() { 
  -        return this.client.getTrace ();
  -    }
  -    
  -    public URL getURL() {
  -        return this.client.getURL ();
  -    }
  -    
  -    public String getUser() {
  -        return this.client.getUser ();
  -    }
  -    
  -    public boolean isAlive() {
  -        return this.client.isAlive ();
  -    }
  -    
  -    public void ping() {
  -        this.client.ping ();
  -    }
  -    
  -    public void setAbapDebug(boolean debug) {
  -        this.client.setAbapDebug (debug);
  -    }
  -    
  -    public void setProperty(String key, String value) {
  -        this.client.setProperty (key, value);
  -    }
  -    
  -    public void setSapGui(int use_sapgui) {
  -        this.client.setSapGui (use_sapgui);
  -    }
  -    
  -    public void setTrace(boolean trace) {
  -        this.client.setTrace (trace);
  -    }
  -    
  -    public final Properties getProperties() {
  -        return this.client.getProperties ();
  -    }
  -    
  -    public final String getProperty(String key) {
  -        return this.client.getProperty (key);
  -    }
  -    
  -    public boolean isValid() {
  -        return this.client.isValid ();
  -    }
  -    
  -    public void setThroughput(JCO.Throughput throughput) {
  -        this.client.setThroughput (throughput);
  -    }   
  -    
  -    public void recycle() {
  -        this.client = null;
  -        this.repository = null;
  -    }
  -    
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package org.apache.cocoon.components.web3.impl;
  +
  +import org.apache.cocoon.components.web3.Web3Client;
  +
  +import org.apache.avalon.framework.logger.AbstractLogEnabled;
  +import org.apache.avalon.framework.activity.Disposable;
  +import org.apache.avalon.excalibur.pool.Recyclable;
  +import org.apache.avalon.excalibur.pool.Poolable;
  +
  +import com.sap.mw.jco.JCO;
  +import com.sap.mw.jco.IRepository;
  +
  +import java.net.URL;
  +import java.util.Properties;
  +import java.util.Date;
  +
  +/**
  + * The standard interface for R3Clients in Web3.
  + *
  + * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  + * @version CVS $Id$
  + */
  +public class Web3ClientImpl extends AbstractLogEnabled 
  +implements Web3Client, Disposable, Recyclable, Poolable {
  +
  +    protected JCO.Client client = null;
  +    protected String repository = null;
  +        
  +    public void initClient(JCO.Client client) {
  +        this.client = client;
  +        this.repository = "" + (new Date ()).getTime();
  +    }
  +    
  +    public void releaseClient() {
  +        JCO.releaseClient(this.client);
  +        this.client = null;
  +    }
  +    
  +    public void dispose() {
  +        this.client = null;
  +        this.repository = null;
  +    }
  +    
  +    public IRepository getRepository() {
  +        if (null != this.repository) {
  +            return new JCO.Repository (this.repository, this.client);
  +        }
  +        return null;
  +    }
  +    
  +    public void abort(String message) {
  +        this.client.abort (message);
  +    }
  +    
  +    public Object clone() {
  +        return null;
  +    }
  +    
  +    public void confirmTID(String tid) {
  +        this.client.confirmTID (tid);
  +    }
  +    
  +    public void connect() {
  +        this.client.connect ();
  +    }
  +    
  +    public String createTID() {
  +        return this.client.createTID ();
  +    }
  +    
  +    public void disconnect() {
  +        this.client.disconnect ();
  +    }
  +    
  +    public void execute(JCO.Function function) {
  +        this.client.execute (function);
  +    }
  +    
  +    public void execute(JCO.Function function, String tid) {
  +        this.client.execute (function, tid);
  +    }
  +    
  +    public void execute(JCO.Function function, String tid, String queue_name) { 
  +        this.client.execute (function, tid, queue_name);
  +    }
  +    
  +    public void execute(JCO.Function function, String tid, 
  +                        String queue_name, int queue_pos) {
  +        this.client.execute (function, tid, queue_name, queue_pos);
  +    }
  +    
  +    public void execute(String name, JCO.ParameterList input, 
  +                        JCO.ParameterList output) {
  +        this.client.execute (name, input, output);
  +    }
  +    
  +    public void execute(String name, JCO.ParameterList input, 
  +                        JCO.ParameterList output, JCO.ParameterList tables) {
  +        this.client.execute (name, input, output, tables);
  +    }
  +    
  +    public void execute(String name, JCO.ParameterList input, 
  +                        JCO.ParameterList tables, String tid) {
  +        this.client.execute (name, input, tables, tid);
  +    }
  +    
  +    public void execute(java.lang.String name, JCO.ParameterList input, 
  +                        JCO.ParameterList tables, String tid, 
  +                        String queue_name) {
  +        this.client.execute (name, input, tables, tid, queue_name);
  +    }
  +    
  +    public void execute(java.lang.String name, JCO.ParameterList input, 
  +                        JCO.ParameterList tables, String tid, 
  +                        String queue_name, int queue_pos) {
  +        this.client.execute (name, input, tables, tid, queue_name, queue_pos);
  +    }
  +    
  +    public boolean getAbapDebug() {
  +        return this.client.getAbapDebug ();
  +    }
  +    
  +    public String getASHost() {
  +        return this.client.getASHost ();
  +    }
  +
  +    public JCO.Attributes getAttributes() {
  +        return this.client.getAttributes ();
  +    }
  +    
  +    public String getClient() {
  +        return this.client.getClient ();
  +    }
  +    
  +    public String getGroup() {
  +        return this.client.getGroup ();
  +    }
  +    
  +    public String getGWHost() {
  +        return this.client.getGWHost ();
  +    }
  +
  +    public String getGWServ() {
  +        return this.client.getGWServ ();
  +    }
  +    
  +    public String getLanguage() {
  +        return this.client.getLanguage ();
  +    }
  +    
  +    public String getMSHost() {
  +        return this.client.getMSHost ();
  +    }
  +    
  +    public String[][] getPropertyInfo() {
  +        return this.client.getPropertyInfo ();
  +    }
  +    
  +    public int getSapGui() {
  +        return this.client.getSapGui ();
  +    }
  +    
  +    public byte getState() {
  +        return this.client.getState ();
  +    }
  +    
  +    public String getSystemID() {
  +        return this.client.getSystemID ();
  +    }
  +    
  +    public String getSystemNumber() {
  +        return this.client.getSystemNumber ();
  +    }
  +    
  +    public String getTPName() {
  +        return this.client.getTPName ();
  +    }
  +    
  +    public boolean getTrace() { 
  +        return this.client.getTrace ();
  +    }
  +    
  +    public URL getURL() {
  +        return this.client.getURL ();
  +    }
  +    
  +    public String getUser() {
  +        return this.client.getUser ();
  +    }
  +    
  +    public boolean isAlive() {
  +        return this.client.isAlive ();
  +    }
  +    
  +    public void ping() {
  +        this.client.ping ();
  +    }
  +    
  +    public void setAbapDebug(boolean debug) {
  +        this.client.setAbapDebug (debug);
  +    }
  +    
  +    public void setProperty(String key, String value) {
  +        this.client.setProperty (key, value);
  +    }
  +    
  +    public void setSapGui(int use_sapgui) {
  +        this.client.setSapGui (use_sapgui);
  +    }
  +    
  +    public void setTrace(boolean trace) {
  +        this.client.setTrace (trace);
  +    }
  +    
  +    public final Properties getProperties() {
  +        return this.client.getProperties ();
  +    }
  +    
  +    public final String getProperty(String key) {
  +        return this.client.getProperty (key);
  +    }
  +    
  +    public boolean isValid() {
  +        return this.client.isValid ();
  +    }
  +    
  +    public void setThroughput(JCO.Throughput throughput) {
  +        this.client.setThroughput (throughput);
  +    }   
  +    
  +    public void recycle() {
  +        this.client = null;
  +        this.repository = null;
  +    }
  +    
  +}
  
  
  
  1.3       +197 -197  cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3DataSourceImpl.java
  
  Index: Web3DataSourceImpl.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3DataSourceImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Web3DataSourceImpl.java	16 Mar 2003 17:49:10 -0000	1.2
  +++ Web3DataSourceImpl.java	6 May 2003 14:13:00 -0000	1.3
  @@ -1,197 +1,197 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package org.apache.cocoon.components.web3.impl;
  -
  -import org.apache.avalon.framework.logger.AbstractLogEnabled;
  -import org.apache.avalon.framework.configuration.Configuration;
  -import org.apache.avalon.framework.configuration.ConfigurationException;
  -import org.apache.avalon.framework.thread.ThreadSafe;
  -import org.apache.avalon.framework.component.ComponentManager;
  -import org.apache.avalon.framework.component.ComponentException;
  -
  -import EDU.oswego.cs.dl.util.concurrent.Mutex;
  -
  -import com.sap.mw.jco.JCO;
  -
  -import org.apache.cocoon.components.web3.Web3Client;
  -import org.apache.cocoon.components.web3.Web3DataSource;
  -
  -/**
  - * The Default implementation for R3DataSources in Web3.  This uses the
  - * normal <code>com.sap.mw.jco.JCO</code> classes.
  - *
  - * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  - * @version CVS $Id$
  - */
  -public class Web3DataSourceImpl extends AbstractLogEnabled
  -implements Web3DataSource, ThreadSafe {
  -
  -    protected Web3Properties properties = null;
  -    protected int            poolsize = 0;
  -    protected int            current_clients = 0;
  -    protected String         mySID = null;
  -
  -    protected boolean        trace = false;
  -    protected int            level = 0;
  -
  -    private static Mutex     lock = new Mutex();
  -    protected ComponentManager manager;
  -
  -    public void compose(ComponentManager componentManager) throws ComponentException {
  -        this.manager = componentManager;
  -    }
  -
  -    /** Configure backend component */
  -    public void configure(final Configuration configuration)
  -        throws ConfigurationException {
  -        if (null != configuration) {
  -            this.properties     = new Web3Properties ();
  -            Configuration child = configuration.getChild("pool");
  -            this.trace          = child.getAttributeAsBoolean("trace", false);
  -            this.level          = child.getAttributeAsInteger("level", 0);
  -            this.mySID          = configuration.getAttribute("name");
  -            this.poolsize       = child.getAttributeAsInteger("size");
  -
  -            this.properties.put("jco.client.client",
  -                child.getChild("client").getValue());
  -            this.properties.put("jco.client.user",
  -                child.getChild("user").getValue());
  -            this.properties.put("jco.client.passwd",
  -                child.getChild("password").getValue());
  -            this.properties.put("jco.client.ashost",
  -                child.getChild("route").getValue());
  -            this.properties.put("jco.client.sysnr",
  -                child.getChild("system").getValue());
  -            this.properties.put("sap.gateway",
  -                child.getChild("gateway").getValue(""));
  -            this.properties.put("sap.programid",
  -                child.getChild("program-id").getValue(""));
  -
  -            if ( getLogger().isDebugEnabled() ) {
  -                getLogger ().debug ("Configure R3DataSource [mySID="
  -                    + this.mySID );
  -            }
  -        } else {
  -            getLogger ().error ("Couldn't configure Web3DataSource." +
  -                " No configuration provided!");
  -        }
  -    }
  -
  -    /** initialize the component */
  -    public void initialize() throws Exception {
  -        try {
  -            Web3DataSourceImpl.lock.acquire();
  -            JCO.addClientPool( this.mySID, this.poolsize, this.properties );
  -            JCO.getClientPoolManager().getPool( this.mySID ).setTrace( this.trace );
  -            JCO.setTraceLevel( this.level );
  -        } catch (Exception ex) {
  -            getLogger ().error ("Couldn't initialize Web3DataSource "
  -                + this.mySID, ex);
  -            throw new Exception ( ex.getMessage() + this.mySID );
  -        }
  -        finally {
  -            Web3DataSourceImpl.lock.release();
  -        }
  -    }
  -
  -    /** Get the backend client, returns <code>null</code> if there is no more
  -        client in the pool. */
  -    public Web3Client getWeb3Client() throws Exception {
  -        Web3Client theClient = null;
  -        if ( this.current_clients + 1 < this.poolsize ) {
  -            this.current_clients++;
  -            try {
  -                Web3DataSourceImpl.lock.acquire();
  -                theClient = (Web3Client) this.manager.lookup( Web3Client.ROLE );
  -                theClient.initClient (JCO.getClient(this.mySID));
  -
  -                if ( getLogger().isDebugEnabled() ) {
  -                    getLogger ().debug ("returning client " + theClient);
  -                }
  -            } catch (Exception ex){
  -                getLogger ().error ( this.mySID, ex);
  -                throw new Exception ( ex.getMessage() );
  -            } finally {
  -                Web3DataSourceImpl.lock.release();
  -            }
  -        }
  -        return theClient;
  -    }
  -
  -    public void releaseWeb3Client(Web3Client client) {
  -        try {
  -            Web3DataSourceImpl.lock.acquire();
  -            client.releaseClient();
  -            this.current_clients--;
  -            manager.release( client );
  -        }
  -        catch (Exception x) {
  -            getLogger().error( x.getMessage(), x);
  -        }
  -        finally {
  -            Web3DataSourceImpl.lock.release();
  -        }
  -    }
  -
  -    /** Dispose properly of the pool */
  -    public void dispose() {
  -        try {
  -            JCO.removeClientPool(this.mySID);
  -        } catch (Exception ex) {
  -            getLogger ().error ("Web3DataSource: couldn't" +
  -                " return Web3DataSource", ex);
  -        }
  -        this.properties = null;
  -        this.mySID = null;
  -        getLogger ().debug ("Web3DataSource disposed.");
  -    }
  -
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package org.apache.cocoon.components.web3.impl;
  +
  +import org.apache.avalon.framework.logger.AbstractLogEnabled;
  +import org.apache.avalon.framework.configuration.Configuration;
  +import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.thread.ThreadSafe;
  +import org.apache.avalon.framework.component.ComponentManager;
  +import org.apache.avalon.framework.component.ComponentException;
  +
  +import EDU.oswego.cs.dl.util.concurrent.Mutex;
  +
  +import com.sap.mw.jco.JCO;
  +
  +import org.apache.cocoon.components.web3.Web3Client;
  +import org.apache.cocoon.components.web3.Web3DataSource;
  +
  +/**
  + * The Default implementation for R3DataSources in Web3.  This uses the
  + * normal <code>com.sap.mw.jco.JCO</code> classes.
  + *
  + * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  + * @version CVS $Id$
  + */
  +public class Web3DataSourceImpl extends AbstractLogEnabled
  +implements Web3DataSource, ThreadSafe {
  +
  +    protected Web3Properties properties = null;
  +    protected int            poolsize = 0;
  +    protected int            current_clients = 0;
  +    protected String         mySID = null;
  +
  +    protected boolean        trace = false;
  +    protected int            level = 0;
  +
  +    private static Mutex     lock = new Mutex();
  +    protected ComponentManager manager;
  +
  +    public void compose(ComponentManager componentManager) throws ComponentException {
  +        this.manager = componentManager;
  +    }
  +
  +    /** Configure backend component */
  +    public void configure(final Configuration configuration)
  +        throws ConfigurationException {
  +        if (null != configuration) {
  +            this.properties     = new Web3Properties ();
  +            Configuration child = configuration.getChild("pool");
  +            this.trace          = child.getAttributeAsBoolean("trace", false);
  +            this.level          = child.getAttributeAsInteger("level", 0);
  +            this.mySID          = configuration.getAttribute("name");
  +            this.poolsize       = child.getAttributeAsInteger("size");
  +
  +            this.properties.put("jco.client.client",
  +                child.getChild("client").getValue());
  +            this.properties.put("jco.client.user",
  +                child.getChild("user").getValue());
  +            this.properties.put("jco.client.passwd",
  +                child.getChild("password").getValue());
  +            this.properties.put("jco.client.ashost",
  +                child.getChild("route").getValue());
  +            this.properties.put("jco.client.sysnr",
  +                child.getChild("system").getValue());
  +            this.properties.put("sap.gateway",
  +                child.getChild("gateway").getValue(""));
  +            this.properties.put("sap.programid",
  +                child.getChild("program-id").getValue(""));
  +
  +            if ( getLogger().isDebugEnabled() ) {
  +                getLogger ().debug ("Configure R3DataSource [mySID="
  +                    + this.mySID );
  +            }
  +        } else {
  +            getLogger ().error ("Couldn't configure Web3DataSource." +
  +                " No configuration provided!");
  +        }
  +    }
  +
  +    /** initialize the component */
  +    public void initialize() throws Exception {
  +        try {
  +            Web3DataSourceImpl.lock.acquire();
  +            JCO.addClientPool( this.mySID, this.poolsize, this.properties );
  +            JCO.getClientPoolManager().getPool( this.mySID ).setTrace( this.trace );
  +            JCO.setTraceLevel( this.level );
  +        } catch (Exception ex) {
  +            getLogger ().error ("Couldn't initialize Web3DataSource "
  +                + this.mySID, ex);
  +            throw new Exception ( ex.getMessage() + this.mySID );
  +        }
  +        finally {
  +            Web3DataSourceImpl.lock.release();
  +        }
  +    }
  +
  +    /** Get the backend client, returns <code>null</code> if there is no more
  +        client in the pool. */
  +    public Web3Client getWeb3Client() throws Exception {
  +        Web3Client theClient = null;
  +        if ( this.current_clients + 1 < this.poolsize ) {
  +            this.current_clients++;
  +            try {
  +                Web3DataSourceImpl.lock.acquire();
  +                theClient = (Web3Client) this.manager.lookup( Web3Client.ROLE );
  +                theClient.initClient (JCO.getClient(this.mySID));
  +
  +                if ( getLogger().isDebugEnabled() ) {
  +                    getLogger ().debug ("returning client " + theClient);
  +                }
  +            } catch (Exception ex){
  +                getLogger ().error ( this.mySID, ex);
  +                throw new Exception ( ex.getMessage() );
  +            } finally {
  +                Web3DataSourceImpl.lock.release();
  +            }
  +        }
  +        return theClient;
  +    }
  +
  +    public void releaseWeb3Client(Web3Client client) {
  +        try {
  +            Web3DataSourceImpl.lock.acquire();
  +            client.releaseClient();
  +            this.current_clients--;
  +            manager.release( client );
  +        }
  +        catch (Exception x) {
  +            getLogger().error( x.getMessage(), x);
  +        }
  +        finally {
  +            Web3DataSourceImpl.lock.release();
  +        }
  +    }
  +
  +    /** Dispose properly of the pool */
  +    public void dispose() {
  +        try {
  +            JCO.removeClientPool(this.mySID);
  +        } catch (Exception ex) {
  +            getLogger ().error ("Web3DataSource: couldn't" +
  +                " return Web3DataSource", ex);
  +        }
  +        this.properties = null;
  +        this.mySID = null;
  +        getLogger ().debug ("Web3DataSource disposed.");
  +    }
  +
  +}
  
  
  
  1.3       +198 -198  cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3DataSourceSelectorImpl.java
  
  Index: Web3DataSourceSelectorImpl.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3DataSourceSelectorImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Web3DataSourceSelectorImpl.java	16 Mar 2003 17:49:10 -0000	1.2
  +++ Web3DataSourceSelectorImpl.java	6 May 2003 14:13:00 -0000	1.3
  @@ -1,198 +1,198 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package org.apache.cocoon.components.web3.impl;
  -
  -import org.apache.cocoon.components.web3.Web3DataSource;
  -
  -import org.apache.avalon.framework.activity.Disposable;
  -import org.apache.avalon.framework.thread.ThreadSafe;
  -import org.apache.avalon.framework.component.Composable;
  -import org.apache.avalon.framework.component.ComponentManager;
  -import org.apache.avalon.framework.component.ComponentSelector;
  -import org.apache.avalon.framework.component.ComponentException;
  -import org.apache.avalon.framework.component.Component;
  -import org.apache.avalon.framework.configuration.Configuration;
  -import org.apache.avalon.framework.configuration.Configurable;
  -import org.apache.avalon.framework.configuration.ConfigurationException;
  -import org.apache.avalon.framework.logger.AbstractLogEnabled;
  -import org.apache.avalon.framework.logger.LogEnabled;
  -import org.apache.cocoon.util.ClassUtils;
  -
  -import java.util.Enumeration;
  -import java.util.Hashtable;
  -
  -import EDU.oswego.cs.dl.util.concurrent.Mutex;
  -
  -/**
  - * The Default implementation for R3DataSources in Web3.  This uses the
  - * normal <code>com.sap.mw.jco.JCO</code> classes.
  - *
  - * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  - * @since 21. Oct. 2002
  - * @version CVS $Id$
  - */
  -public class Web3DataSourceSelectorImpl
  -    extends AbstractLogEnabled
  -    implements ComponentSelector, Disposable, Composable, Configurable, ThreadSafe {
  -
  -    /** The component manager instance */
  -    protected ComponentManager manager = null;
  -    protected Configuration configuration = null;
  -    private static Hashtable pools = new Hashtable();
  -    private static Mutex lock = new Mutex();
  -
  -    /**
  -     * Set the current <code>ComponentManager</code> instance used by this
  -     * <code>Composable</code>.
  -     */
  -    public void compose(ComponentManager manager) throws ComponentException {
  -        this.manager = manager;
  -    }
  -
  -    public void configure(Configuration configuration)
  -        throws ConfigurationException {
  -        if (null != configuration) {
  -            this.configuration = configuration;
  -        } else {
  -            getLogger().error(
  -                "Couldn't configure Web3DataSourceSelector."
  -                    + " No configuration provided!");
  -        }
  -    }
  -
  -    public boolean hasComponent(Object obj) {
  -        return Web3DataSourceSelectorImpl.pools.containsKey(obj);
  -    }
  -
  -    public Component select(Object obj) throws ComponentException {
  -        Web3DataSource pool = null;
  -        try {
  -            Web3DataSourceSelectorImpl.lock.acquire();
  -            if (null != obj) {
  -                if (Web3DataSourceSelectorImpl.pools.containsKey(obj)) {
  -                    pool =
  -                        (Web3DataSource) Web3DataSourceSelectorImpl.pools.get(
  -                            obj);
  -                } else {
  -                    Configuration a[] =
  -                        this.configuration.getChildren("backend"),
  -                        c = null;
  -
  -                    if (null != a)
  -                        for (int i = 0; i < a.length; i++) {
  -                            try {
  -                                String s = a[i].getAttribute("name");
  -                                if (null != s && s.equals(obj.toString())) {
  -                                    // a backend with a name can be defined only once
  -                                    c = a[i];
  -                                    break;
  -                                }
  -                            } catch (ConfigurationException x) {
  -                                // this configuration element has no mandatory
  -                                //attribute name
  -                            }
  -                        }
  -                    // No configuration for this backend-id found!
  -                    if (null == c) {
  -                        return null;
  -                    }
  -                    Class theClass =
  -                        Class.forName(
  -                            c.getChild("class").getValue(
  -                                "org.apache.cocoon.components.web3.impl.Web3DataSourceImpl"),
  -                            true,
  -                            ClassUtils.getClassLoader());
  -                    pool = (Web3DataSource) theClass.newInstance();
  -                    if (pool instanceof LogEnabled) {
  -                        ((LogEnabled) pool).enableLogging(getLogger());
  -                    }
  -                    pool.compose(this.manager);
  -                    pool.configure(c);
  -                    pool.initialize();
  -                    Web3DataSourceSelectorImpl.pools.put(obj, pool);
  -                }
  -            }
  -        } catch (Exception ex) {
  -            getLogger().error(ex.getMessage(), ex);
  -            throw new ComponentException(ex.getMessage());
  -        } finally {
  -            Web3DataSourceSelectorImpl.lock.release();
  -        }
  -        getLogger().debug("Returning Web3DataSource[" + pool + "]");
  -        return pool;
  -    }
  -
  -    public void release(Component component) {
  -    }
  -
  -    /** Dispose properly of the pool */
  -    public void dispose() {
  -        this.manager = null;
  -        try {
  -            Web3DataSourceSelectorImpl.lock.acquire();
  -            String sid = null;
  -            Web3DataSource pool;
  -            for (Enumeration enum = Web3DataSourceSelectorImpl.pools.keys();
  -                enum.hasMoreElements();
  -                ) {
  -                sid = (String) enum.nextElement();
  -                pool =
  -                    (Web3DataSource) Web3DataSourceSelectorImpl.pools.get(sid);
  -                pool.dispose();
  -            }
  -            Web3DataSourceSelectorImpl.pools.clear();
  -        } catch (Exception ex) {
  -        } finally {
  -            Web3DataSourceSelectorImpl.lock.release();
  -        }
  -        Web3DataSourceSelectorImpl.lock = null;
  -    }
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package org.apache.cocoon.components.web3.impl;
  +
  +import org.apache.cocoon.components.web3.Web3DataSource;
  +
  +import org.apache.avalon.framework.activity.Disposable;
  +import org.apache.avalon.framework.thread.ThreadSafe;
  +import org.apache.avalon.framework.component.Composable;
  +import org.apache.avalon.framework.component.ComponentManager;
  +import org.apache.avalon.framework.component.ComponentSelector;
  +import org.apache.avalon.framework.component.ComponentException;
  +import org.apache.avalon.framework.component.Component;
  +import org.apache.avalon.framework.configuration.Configuration;
  +import org.apache.avalon.framework.configuration.Configurable;
  +import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.logger.AbstractLogEnabled;
  +import org.apache.avalon.framework.logger.LogEnabled;
  +import org.apache.cocoon.util.ClassUtils;
  +
  +import java.util.Enumeration;
  +import java.util.Hashtable;
  +
  +import EDU.oswego.cs.dl.util.concurrent.Mutex;
  +
  +/**
  + * The Default implementation for R3DataSources in Web3.  This uses the
  + * normal <code>com.sap.mw.jco.JCO</code> classes.
  + *
  + * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  + * @since 21. Oct. 2002
  + * @version CVS $Id$
  + */
  +public class Web3DataSourceSelectorImpl
  +    extends AbstractLogEnabled
  +    implements ComponentSelector, Disposable, Composable, Configurable, ThreadSafe {
  +
  +    /** The component manager instance */
  +    protected ComponentManager manager = null;
  +    protected Configuration configuration = null;
  +    private static Hashtable pools = new Hashtable();
  +    private static Mutex lock = new Mutex();
  +
  +    /**
  +     * Set the current <code>ComponentManager</code> instance used by this
  +     * <code>Composable</code>.
  +     */
  +    public void compose(ComponentManager manager) throws ComponentException {
  +        this.manager = manager;
  +    }
  +
  +    public void configure(Configuration configuration)
  +        throws ConfigurationException {
  +        if (null != configuration) {
  +            this.configuration = configuration;
  +        } else {
  +            getLogger().error(
  +                "Couldn't configure Web3DataSourceSelector."
  +                    + " No configuration provided!");
  +        }
  +    }
  +
  +    public boolean hasComponent(Object obj) {
  +        return Web3DataSourceSelectorImpl.pools.containsKey(obj);
  +    }
  +
  +    public Component select(Object obj) throws ComponentException {
  +        Web3DataSource pool = null;
  +        try {
  +            Web3DataSourceSelectorImpl.lock.acquire();
  +            if (null != obj) {
  +                if (Web3DataSourceSelectorImpl.pools.containsKey(obj)) {
  +                    pool =
  +                        (Web3DataSource) Web3DataSourceSelectorImpl.pools.get(
  +                            obj);
  +                } else {
  +                    Configuration a[] =
  +                        this.configuration.getChildren("backend"),
  +                        c = null;
  +
  +                    if (null != a)
  +                        for (int i = 0; i < a.length; i++) {
  +                            try {
  +                                String s = a[i].getAttribute("name");
  +                                if (null != s && s.equals(obj.toString())) {
  +                                    // a backend with a name can be defined only once
  +                                    c = a[i];
  +                                    break;
  +                                }
  +                            } catch (ConfigurationException x) {
  +                                // this configuration element has no mandatory
  +                                //attribute name
  +                            }
  +                        }
  +                    // No configuration for this backend-id found!
  +                    if (null == c) {
  +                        return null;
  +                    }
  +                    Class theClass =
  +                        Class.forName(
  +                            c.getChild("class").getValue(
  +                                "org.apache.cocoon.components.web3.impl.Web3DataSourceImpl"),
  +                            true,
  +                            ClassUtils.getClassLoader());
  +                    pool = (Web3DataSource) theClass.newInstance();
  +                    if (pool instanceof LogEnabled) {
  +                        ((LogEnabled) pool).enableLogging(getLogger());
  +                    }
  +                    pool.compose(this.manager);
  +                    pool.configure(c);
  +                    pool.initialize();
  +                    Web3DataSourceSelectorImpl.pools.put(obj, pool);
  +                }
  +            }
  +        } catch (Exception ex) {
  +            getLogger().error(ex.getMessage(), ex);
  +            throw new ComponentException(ex.getMessage());
  +        } finally {
  +            Web3DataSourceSelectorImpl.lock.release();
  +        }
  +        getLogger().debug("Returning Web3DataSource[" + pool + "]");
  +        return pool;
  +    }
  +
  +    public void release(Component component) {
  +    }
  +
  +    /** Dispose properly of the pool */
  +    public void dispose() {
  +        this.manager = null;
  +        try {
  +            Web3DataSourceSelectorImpl.lock.acquire();
  +            String sid = null;
  +            Web3DataSource pool;
  +            for (Enumeration enum = Web3DataSourceSelectorImpl.pools.keys();
  +                enum.hasMoreElements();
  +                ) {
  +                sid = (String) enum.nextElement();
  +                pool =
  +                    (Web3DataSource) Web3DataSourceSelectorImpl.pools.get(sid);
  +                pool.dispose();
  +            }
  +            Web3DataSourceSelectorImpl.pools.clear();
  +        } catch (Exception ex) {
  +        } finally {
  +            Web3DataSourceSelectorImpl.lock.release();
  +        }
  +        Web3DataSourceSelectorImpl.lock = null;
  +    }
  +}
  
  
  
  1.3       +106 -106  cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3Properties.java
  
  Index: Web3Properties.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3Properties.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Web3Properties.java	16 Mar 2003 17:49:10 -0000	1.2
  +++ Web3Properties.java	6 May 2003 14:13:00 -0000	1.3
  @@ -1,106 +1,106 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -
  -package org.apache.cocoon.components.web3.impl;
  -
  -import java.util.Properties;
  -import java.util.ArrayList;
  -import java.util.Iterator;
  -import java.io.InputStream;
  -import java.io.IOException;
  -
  -/**
  - * Properties helper class.
  - * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  - * @version CVS $Id$
  - */
  -public class Web3Properties extends Properties {
  -
  -    ArrayList orderedKeys = new ArrayList();
  -    
  -    /** Creates new Properties */
  -    public Web3Properties() {
  -        super();
  -    }
  -
  -    public Web3Properties(Properties defaults) {
  -	super(defaults);
  -    }
  -
  -    public synchronized Iterator getKeysIterator() {
  -        return orderedKeys.iterator();
  -    }
  -
  -    public static Web3Properties load(String name) throws Exception {
  -	Web3Properties props = null;
  -	InputStream is = Web3Properties.class.getResourceAsStream(name);
  -	props = new Web3Properties();
  -	if (null != is) {
  -	  props.load(is);
  -	  return props;
  -	} 
  -        else {
  -          throw new IOException("Properties could not be loaded."); 
  -        }
  -    }
  -
  -    public synchronized Object put(Object key, Object value) {
  -	Object obj = super.put(key, value);
  -	orderedKeys.add(key);
  -	return obj;
  -    }
  -
  -    public synchronized Object remove(Object key) {
  -	Object obj = super.remove(key);
  -	orderedKeys.remove(key);
  -	return obj;
  -    }
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +
  +package org.apache.cocoon.components.web3.impl;
  +
  +import java.util.Properties;
  +import java.util.ArrayList;
  +import java.util.Iterator;
  +import java.io.InputStream;
  +import java.io.IOException;
  +
  +/**
  + * Properties helper class.
  + * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
  + * @version CVS $Id$
  + */
  +public class Web3Properties extends Properties {
  +
  +    ArrayList orderedKeys = new ArrayList();
  +    
  +    /** Creates new Properties */
  +    public Web3Properties() {
  +        super();
  +    }
  +
  +    public Web3Properties(Properties defaults) {
  +	super(defaults);
  +    }
  +
  +    public synchronized Iterator getKeysIterator() {
  +        return orderedKeys.iterator();
  +    }
  +
  +    public static Web3Properties load(String name) throws Exception {
  +	Web3Properties props = null;
  +	InputStream is = Web3Properties.class.getResourceAsStream(name);
  +	props = new Web3Properties();
  +	if (null != is) {
  +	  props.load(is);
  +	  return props;
  +	} 
  +        else {
  +          throw new IOException("Properties could not be loaded."); 
  +        }
  +    }
  +
  +    public synchronized Object put(Object key, Object value) {
  +	Object obj = super.put(key, value);
  +	orderedKeys.add(key);
  +	return obj;
  +    }
  +
  +    public synchronized Object remove(Object key) {
  +	Object obj = super.remove(key);
  +	orderedKeys.remove(key);
  +	return obj;
  +    }
  +}
  
  
  
  1.4       +365 -365  cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/transformation/Web3RfcTransformer.java
  
  Index: Web3RfcTransformer.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/transformation/Web3RfcTransformer.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Web3RfcTransformer.java	31 Mar 2003 11:14:11 -0000	1.3
  +++ Web3RfcTransformer.java	6 May 2003 14:13:01 -0000	1.4
  @@ -1,365 +1,365 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -
  -package org.apache.cocoon.transformation;
  -
  -import com.sap.mw.jco.IFunctionTemplate;
  -import com.sap.mw.jco.JCO;
  -
  -import org.apache.cocoon.components.web3.Web3Client;
  -import org.apache.cocoon.components.web3.Web3DataSource;
  -import org.apache.cocoon.components.web3.Web3Streamer;
  -import org.apache.cocoon.components.web3.Web3;
  -
  -import java.util.Map;
  -import java.util.HashMap;
  -
  -import org.apache.cocoon.environment.SourceResolver;
  -
  -import org.apache.avalon.framework.component.Composable;
  -import org.apache.avalon.framework.activity.Disposable;
  -import org.apache.avalon.framework.configuration.Configurable;
  -import org.apache.avalon.framework.configuration.Configuration;
  -import org.apache.avalon.framework.configuration.ConfigurationException;
  -import org.apache.avalon.framework.component.ComponentManager;
  -import org.apache.avalon.framework.component.ComponentSelector;
  -import org.apache.avalon.framework.parameters.Parameters;
  -import org.apache.avalon.excalibur.pool.Poolable;
  -import org.apache.avalon.excalibur.pool.Recyclable;
  -
  -import org.xml.sax.Attributes;
  -import org.xml.sax.SAXException;
  -import org.xml.sax.helpers.AttributesImpl;
  -
  -/**
  - * TBD
  - *
  - * @author  <a href="mailto:mge@efp.co.at">Michael Gerzabek</a>
  - * @since 21. Oct. 2002
  - * @version CVS $Id$
  - */
  -public class Web3RfcTransformer extends AbstractTransformer 
  -implements Composable, Disposable, Configurable, Poolable, Recyclable {
  -    
  -    /** The component manager instance */
  -    protected ComponentManager  manager             = null;
  -    protected Web3DataSource    web3source          = null;
  -    
  -    protected Web3Client        connection          = null;
  -    protected JCO.Repository    repository          = null;
  -    protected IFunctionTemplate functionT           = null;
  -    protected JCO.Function      function            = null;
  -    protected JCO.ParameterList importParameterList = null;
  -    protected JCO.ParameterList tablesParameterList = null;
  -    protected JCO.Record        theRecord           = null;
  -    protected JCO.Field         fillMe              = null;
  -    
  -    protected AttributesImpl    attributes          = new AttributesImpl();
  -    protected int               startcount          = 0;
  -    protected boolean           error               = false;
  -    protected String            backend             = null;
  -    protected String            default_backend     = null;
  -    protected String            streamer            = null;
  -    protected HashMap           tags                = new HashMap();
  -    
  -    public void setup(SourceResolver resolver, Map objectModel,
  -                    String source, Parameters parameters) 
  -    throws SAXException {
  -        
  -        try {
  -            backend = parameters.getParameter("system");
  -        }
  -        catch (Exception x) {
  -            if ( null == backend ) {
  -                getLogger().warn("No backend configured! Try to use configuration");
  -                backend = default_backend;
  -            }
  -        }
  -    }
  -
  -    public void compose(ComponentManager manager) {
  -        
  -        this.manager = manager;
  -        initTags();
  -    }
  -    
  -    public void configure(final Configuration configuration)
  -        throws ConfigurationException {
  -            
  -        this.default_backend = configuration.getChild("system").getValue(null);
  -    }
  -     
  -    public void recycle() {
  -        this.connection            = null;
  -        this.repository            = null;
  -        this.functionT             = null;
  -        this.function              = null;
  -        this.importParameterList   = null;
  -        this.tablesParameterList   = null;
  -        this.theRecord             = null;
  -        this.backend               = null;
  -        this.streamer              = null;
  -        this.error                 = false;
  -        this.startcount            = 0;
  -    }
  -
  -    /** Free all ressources */
  -    public void dispose() {
  -        this.recycle();
  -        this.manager               = null;
  -        this.attributes            = null;
  -        this.web3source            = null;
  -        this.tags                  = null;
  -    }
  -    
  -    /**
  -    * Receive notification of the beginning of a document.
  -    */
  -    public void startDocument() 
  -    throws SAXException {
  -        
  -        if ( null != super.contentHandler ) {
  -            super.contentHandler.startDocument();
  -        }    
  -    }
  -
  -    /**
  -    * Receive notification of the end of a document.
  -    */
  -    public void endDocument() 
  -    throws SAXException {
  -
  -        if ( null != super.contentHandler) {
  -            super.contentHandler.endDocument();
  -        }  
  -    }
  -
  -    /**
  -    * Receive notification of the beginning of an element.
  -    */
  -    public void startElement(String uri, String loc, String raw, Attributes a)
  -        throws SAXException {    
  -            
  -        if ( Web3.URI.equals( uri ) && !this.error ) { 
  -            switch ( Integer.parseInt( (String) this.tags.get( loc ))) {
  -                case INCLUDE_ELEM: 
  -                    ComponentSelector r3sc = null;
  -                    try {
  -                        r3sc = (ComponentSelector) 
  -                            this.manager.lookup ( Web3DataSource.ROLE + "Selector");
  -                        this.web3source = (Web3DataSource) r3sc.select( this.backend );
  -                        this.connection = this.web3source.getWeb3Client();
  -                        this.repository = (JCO.Repository) this.connection.getRepository();
  -                        this.functionT = this.repository.getFunctionTemplate( 
  -                            a.getValue( Web3.INCLUDE_NAME_ATTR ) );
  -                        this.streamer  = (null == a.getValue( Web3.INCLUDE_CLASS_ATTR )) ? 
  -                            "default" : a.getValue( Web3.INCLUDE_CLASS_ATTR );
  -                        this.function  = this.functionT.getFunction();                    
  -                    } 
  -                    catch (Exception ex) {
  -                        String error = "Problems getting client for backend: '" 
  -                            + this.backend + "'";
  -                        getLogger().error (error, ex);                   
  -                        super.contentHandler.startElement(uri, Web3.PROCESSING_X_ELEM, 
  -                            Web3.PROCESSING_X_ELEM, a);
  -                        super.contentHandler.characters(error.toCharArray(), 0, 
  -                            error.length());
  -                        super.contentHandler.endElement(uri, Web3.PROCESSING_X_ELEM, 
  -                            Web3.PROCESSING_X_ELEM);
  -                        this.error = true;
  -                    } 
  -                    finally {
  -                        this.manager.release ( r3sc );
  -                    }
  -                break;
  -                case IMPORT_ELEM:
  -                    this.importParameterList = this.function.getImportParameterList();
  -                    this.theRecord = this.importParameterList;
  -                break;
  -                case FIELD_ELEM: 
  -                    this.fillMe = this.theRecord.getField( 
  -                        a.getValue( Web3.FIELD_NAME_ATTR ));
  -                break;
  -                case STRUCTURE_ELEM: 
  -                    this.theRecord = this.importParameterList.getStructure( 
  -                        a.getValue( Web3.STRUCTURE_NAME_ATTR ));
  -                break;
  -                case TABLES_ELEM:
  -                    this.tablesParameterList = this.function.getTableParameterList();
  -                break;
  -                case TABLE_ELEM:
  -                    this.theRecord = this.tablesParameterList.getTable( 
  -                        a.getValue( Web3.TABLE_NAME_ATTR ));
  -                break;
  -                case ROW_ELEM:
  -                    if (null != this.theRecord) {
  -                        try {
  -                            JCO.Table tmpTable = (JCO.Table) this.theRecord;
  -                            tmpTable.appendRow();
  -                        } 
  -                        catch (ClassCastException x) {
  -                            getLogger().error("Not a table! " + x.getMessage(), x);
  -                        }
  -                    }
  -                break;
  -                default:
  -                    getLogger().error("Invalid element " + loc);
  -            }
  -        } 
  -        else if (super.contentHandler != null) {
  -            super.contentHandler.startElement(uri, loc, raw, a);
  -        }
  -    }
  -
  -    /**
  -    * Receive notification of the end of an element.
  -    */
  -    public void characters(char c[], int start, int len)
  -    throws SAXException {
  -        String theValue = new String(c, start, len).trim();
  -        if ( null != this.fillMe ) {
  -            if ( "".equals( theValue )) {
  -                theValue = null;
  -            }
  -            try {
  -                this.fillMe.setValue( theValue );
  -                this.fillMe = null;
  -                if( getLogger().isDebugEnabled() ) {
  -                    getLogger().debug("set value = " + theValue);
  -                }
  -            } 
  -            catch (JCO.ConversionException x) {
  -                getLogger().error( x.getMessage(), x);
  -            }
  -        } 
  -        else {
  -            if (super.contentHandler != null) {
  -                super.contentHandler.characters(c, start, len);
  -            }
  -        }
  -    }
  -
  -    /**
  -    * Receive notification of the end of an element.
  -    */
  -    public void endElement(String uri, String loc, String raw)
  -        throws SAXException 
  -    {
  -        if ( Web3.URI.equals(uri) && !this.error ) {
  -            switch ( Integer.parseInt( (String) this.tags.get( loc ))) {
  -                case INCLUDE_ELEM: 
  -                    Web3Streamer w3s = null;
  -                    ComponentSelector streamerSelector = null;
  -                    try {
  -                        this.connection.execute( this.function );
  -                        streamerSelector = 
  -                            (ComponentSelector) 
  -                            this.manager.lookup( Web3Streamer.ROLE + "Selector" );
  -                        w3s = (Web3Streamer) streamerSelector.select( this.streamer );
  -                        w3s.stream( this.function,  super.contentHandler );
  -                    } 
  -                    catch (Exception x) {
  -                        this.attributes.clear();
  -                        super.contentHandler.startElement(uri, Web3.ABAP_EXCEPTION_ELEM, 
  -                            Web3.ABAP_EXCEPTION_ELEM, this.attributes);
  -                        super.contentHandler.characters(x.getMessage ().toCharArray(), 
  -                            0, x.getMessage ().length());
  -                        super.contentHandler.endElement(uri, Web3.ABAP_EXCEPTION_ELEM, 
  -                            Web3.ABAP_EXCEPTION_ELEM);                    
  -                        getLogger().error(x.getMessage(), x);
  -                    } 
  -                    finally {
  -                        this.web3source.releaseWeb3Client( this.connection );
  -                        if ( null != streamerSelector ) {
  -                            streamerSelector.release( w3s );
  -                        }
  -                        manager.release( streamerSelector );
  -                    }
  -                    this.connection = null;
  -                    this.repository = null;
  -                    this.functionT = null;
  -                    this.function = null;
  -                    this.importParameterList = null;
  -                    this.tablesParameterList = null;
  -                    this.theRecord = null;        
  -                break;
  -                case STRUCTURE_ELEM: 
  -                    this.theRecord = this.importParameterList;
  -                break;
  -            } 
  -        }
  -        else if (super.contentHandler != null) {
  -            super.contentHandler.endElement(uri,loc,raw);
  -        }
  -    }
  -
  -    protected final static int INCLUDE_ELEM     = 1;
  -    protected final static int IMPORT_ELEM      = 2;
  -    protected final static int EXPORT_ELEM      = 3;
  -    protected final static int TABLES_ELEM      = 4;
  -    protected final static int FIELD_ELEM       = 5;
  -    protected final static int ROW_ELEM         = 6;
  -    protected final static int STRUCTURE_ELEM   = 7;
  -    protected final static int TABLE_ELEM       = 8;
  -    
  -    protected void initTags() {
  -        
  -        this.tags.put( Web3.INCLUDE_ELEM,   "1" );
  -        this.tags.put( Web3.IMPORT_ELEM,    "2" );        
  -        this.tags.put( Web3.EXPORT_ELEM,    "3" );        
  -        this.tags.put( Web3.TABLES_ELEM,    "4" );        
  -        this.tags.put( Web3.FIELD_ELEM,     "5" );           
  -        this.tags.put( Web3.ROW_ELEM,       "6" );           
  -        this.tags.put( Web3.STRUCTURE_ELEM, "7" );     
  -        this.tags.put( Web3.TABLE_ELEM,     "8" );         
  -    }
  -}
  -
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +
  +package org.apache.cocoon.transformation;
  +
  +import com.sap.mw.jco.IFunctionTemplate;
  +import com.sap.mw.jco.JCO;
  +
  +import org.apache.cocoon.components.web3.Web3Client;
  +import org.apache.cocoon.components.web3.Web3DataSource;
  +import org.apache.cocoon.components.web3.Web3Streamer;
  +import org.apache.cocoon.components.web3.Web3;
  +
  +import java.util.Map;
  +import java.util.HashMap;
  +
  +import org.apache.cocoon.environment.SourceResolver;
  +
  +import org.apache.avalon.framework.component.Composable;
  +import org.apache.avalon.framework.activity.Disposable;
  +import org.apache.avalon.framework.configuration.Configurable;
  +import org.apache.avalon.framework.configuration.Configuration;
  +import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.component.ComponentManager;
  +import org.apache.avalon.framework.component.ComponentSelector;
  +import org.apache.avalon.framework.parameters.Parameters;
  +import org.apache.avalon.excalibur.pool.Poolable;
  +import org.apache.avalon.excalibur.pool.Recyclable;
  +
  +import org.xml.sax.Attributes;
  +import org.xml.sax.SAXException;
  +import org.xml.sax.helpers.AttributesImpl;
  +
  +/**
  + * TBD
  + *
  + * @author  <a href="mailto:mge@efp.co.at">Michael Gerzabek</a>
  + * @since 21. Oct. 2002
  + * @version CVS $Id$
  + */
  +public class Web3RfcTransformer extends AbstractTransformer 
  +implements Composable, Disposable, Configurable, Poolable, Recyclable {
  +    
  +    /** The component manager instance */
  +    protected ComponentManager  manager             = null;
  +    protected Web3DataSource    web3source          = null;
  +    
  +    protected Web3Client        connection          = null;
  +    protected JCO.Repository    repository          = null;
  +    protected IFunctionTemplate functionT           = null;
  +    protected JCO.Function      function            = null;
  +    protected JCO.ParameterList importParameterList = null;
  +    protected JCO.ParameterList tablesParameterList = null;
  +    protected JCO.Record        theRecord           = null;
  +    protected JCO.Field         fillMe              = null;
  +    
  +    protected AttributesImpl    attributes          = new AttributesImpl();
  +    protected int               startcount          = 0;
  +    protected boolean           error               = false;
  +    protected String            backend             = null;
  +    protected String            default_backend     = null;
  +    protected String            streamer            = null;
  +    protected HashMap           tags                = new HashMap();
  +    
  +    public void setup(SourceResolver resolver, Map objectModel,
  +                    String source, Parameters parameters) 
  +    throws SAXException {
  +        
  +        try {
  +            backend = parameters.getParameter("system");
  +        }
  +        catch (Exception x) {
  +            if ( null == backend ) {
  +                getLogger().warn("No backend configured! Try to use configuration");
  +                backend = default_backend;
  +            }
  +        }
  +    }
  +
  +    public void compose(ComponentManager manager) {
  +        
  +        this.manager = manager;
  +        initTags();
  +    }
  +    
  +    public void configure(final Configuration configuration)
  +        throws ConfigurationException {
  +            
  +        this.default_backend = configuration.getChild("system").getValue(null);
  +    }
  +     
  +    public void recycle() {
  +        this.connection            = null;
  +        this.repository            = null;
  +        this.functionT             = null;
  +        this.function              = null;
  +        this.importParameterList   = null;
  +        this.tablesParameterList   = null;
  +        this.theRecord             = null;
  +        this.backend               = null;
  +        this.streamer              = null;
  +        this.error                 = false;
  +        this.startcount            = 0;
  +    }
  +
  +    /** Free all ressources */
  +    public void dispose() {
  +        this.recycle();
  +        this.manager               = null;
  +        this.attributes            = null;
  +        this.web3source            = null;
  +        this.tags                  = null;
  +    }
  +    
  +    /**
  +    * Receive notification of the beginning of a document.
  +    */
  +    public void startDocument() 
  +    throws SAXException {
  +        
  +        if ( null != super.contentHandler ) {
  +            super.contentHandler.startDocument();
  +        }    
  +    }
  +
  +    /**
  +    * Receive notification of the end of a document.
  +    */
  +    public void endDocument() 
  +    throws SAXException {
  +
  +        if ( null != super.contentHandler) {
  +            super.contentHandler.endDocument();
  +        }  
  +    }
  +
  +    /**
  +    * Receive notification of the beginning of an element.
  +    */
  +    public void startElement(String uri, String loc, String raw, Attributes a)
  +        throws SAXException {    
  +            
  +        if ( Web3.URI.equals( uri ) && !this.error ) { 
  +            switch ( Integer.parseInt( (String) this.tags.get( loc ))) {
  +                case INCLUDE_ELEM: 
  +                    ComponentSelector r3sc = null;
  +                    try {
  +                        r3sc = (ComponentSelector) 
  +                            this.manager.lookup ( Web3DataSource.ROLE + "Selector");
  +                        this.web3source = (Web3DataSource) r3sc.select( this.backend );
  +                        this.connection = this.web3source.getWeb3Client();
  +                        this.repository = (JCO.Repository) this.connection.getRepository();
  +                        this.functionT = this.repository.getFunctionTemplate( 
  +                            a.getValue( Web3.INCLUDE_NAME_ATTR ) );
  +                        this.streamer  = (null == a.getValue( Web3.INCLUDE_CLASS_ATTR )) ? 
  +                            "default" : a.getValue( Web3.INCLUDE_CLASS_ATTR );
  +                        this.function  = this.functionT.getFunction();                    
  +                    } 
  +                    catch (Exception ex) {
  +                        String error = "Problems getting client for backend: '" 
  +                            + this.backend + "'";
  +                        getLogger().error (error, ex);                   
  +                        super.contentHandler.startElement(uri, Web3.PROCESSING_X_ELEM, 
  +                            Web3.PROCESSING_X_ELEM, a);
  +                        super.contentHandler.characters(error.toCharArray(), 0, 
  +                            error.length());
  +                        super.contentHandler.endElement(uri, Web3.PROCESSING_X_ELEM, 
  +                            Web3.PROCESSING_X_ELEM);
  +                        this.error = true;
  +                    } 
  +                    finally {
  +                        this.manager.release ( r3sc );
  +                    }
  +                break;
  +                case IMPORT_ELEM:
  +                    this.importParameterList = this.function.getImportParameterList();
  +                    this.theRecord = this.importParameterList;
  +                break;
  +                case FIELD_ELEM: 
  +                    this.fillMe = this.theRecord.getField( 
  +                        a.getValue( Web3.FIELD_NAME_ATTR ));
  +                break;
  +                case STRUCTURE_ELEM: 
  +                    this.theRecord = this.importParameterList.getStructure( 
  +                        a.getValue( Web3.STRUCTURE_NAME_ATTR ));
  +                break;
  +                case TABLES_ELEM:
  +                    this.tablesParameterList = this.function.getTableParameterList();
  +                break;
  +                case TABLE_ELEM:
  +                    this.theRecord = this.tablesParameterList.getTable( 
  +                        a.getValue( Web3.TABLE_NAME_ATTR ));
  +                break;
  +                case ROW_ELEM:
  +                    if (null != this.theRecord) {
  +                        try {
  +                            JCO.Table tmpTable = (JCO.Table) this.theRecord;
  +                            tmpTable.appendRow();
  +                        } 
  +                        catch (ClassCastException x) {
  +                            getLogger().error("Not a table! " + x.getMessage(), x);
  +                        }
  +                    }
  +                break;
  +                default:
  +                    getLogger().error("Invalid element " + loc);
  +            }
  +        } 
  +        else if (super.contentHandler != null) {
  +            super.contentHandler.startElement(uri, loc, raw, a);
  +        }
  +    }
  +
  +    /**
  +    * Receive notification of the end of an element.
  +    */
  +    public void characters(char c[], int start, int len)
  +    throws SAXException {
  +        String theValue = new String(c, start, len).trim();
  +        if ( null != this.fillMe ) {
  +            if ( "".equals( theValue )) {
  +                theValue = null;
  +            }
  +            try {
  +                this.fillMe.setValue( theValue );
  +                this.fillMe = null;
  +                if( getLogger().isDebugEnabled() ) {
  +                    getLogger().debug("set value = " + theValue);
  +                }
  +            } 
  +            catch (JCO.ConversionException x) {
  +                getLogger().error( x.getMessage(), x);
  +            }
  +        } 
  +        else {
  +            if (super.contentHandler != null) {
  +                super.contentHandler.characters(c, start, len);
  +            }
  +        }
  +    }
  +
  +    /**
  +    * Receive notification of the end of an element.
  +    */
  +    public void endElement(String uri, String loc, String raw)
  +        throws SAXException 
  +    {
  +        if ( Web3.URI.equals(uri) && !this.error ) {
  +            switch ( Integer.parseInt( (String) this.tags.get( loc ))) {
  +                case INCLUDE_ELEM: 
  +                    Web3Streamer w3s = null;
  +                    ComponentSelector streamerSelector = null;
  +                    try {
  +                        this.connection.execute( this.function );
  +                        streamerSelector = 
  +                            (ComponentSelector) 
  +                            this.manager.lookup( Web3Streamer.ROLE + "Selector" );
  +                        w3s = (Web3Streamer) streamerSelector.select( this.streamer );
  +                        w3s.stream( this.function,  super.contentHandler );
  +                    } 
  +                    catch (Exception x) {
  +                        this.attributes.clear();
  +                        super.contentHandler.startElement(uri, Web3.ABAP_EXCEPTION_ELEM, 
  +                            Web3.ABAP_EXCEPTION_ELEM, this.attributes);
  +                        super.contentHandler.characters(x.getMessage ().toCharArray(), 
  +                            0, x.getMessage ().length());
  +                        super.contentHandler.endElement(uri, Web3.ABAP_EXCEPTION_ELEM, 
  +                            Web3.ABAP_EXCEPTION_ELEM);                    
  +                        getLogger().error(x.getMessage(), x);
  +                    } 
  +                    finally {
  +                        this.web3source.releaseWeb3Client( this.connection );
  +                        if ( null != streamerSelector ) {
  +                            streamerSelector.release( w3s );
  +                        }
  +                        manager.release( streamerSelector );
  +                    }
  +                    this.connection = null;
  +                    this.repository = null;
  +                    this.functionT = null;
  +                    this.function = null;
  +                    this.importParameterList = null;
  +                    this.tablesParameterList = null;
  +                    this.theRecord = null;        
  +                break;
  +                case STRUCTURE_ELEM: 
  +                    this.theRecord = this.importParameterList;
  +                break;
  +            } 
  +        }
  +        else if (super.contentHandler != null) {
  +            super.contentHandler.endElement(uri,loc,raw);
  +        }
  +    }
  +
  +    protected final static int INCLUDE_ELEM     = 1;
  +    protected final static int IMPORT_ELEM      = 2;
  +    protected final static int EXPORT_ELEM      = 3;
  +    protected final static int TABLES_ELEM      = 4;
  +    protected final static int FIELD_ELEM       = 5;
  +    protected final static int ROW_ELEM         = 6;
  +    protected final static int STRUCTURE_ELEM   = 7;
  +    protected final static int TABLE_ELEM       = 8;
  +    
  +    protected void initTags() {
  +        
  +        this.tags.put( Web3.INCLUDE_ELEM,   "1" );
  +        this.tags.put( Web3.IMPORT_ELEM,    "2" );        
  +        this.tags.put( Web3.EXPORT_ELEM,    "3" );        
  +        this.tags.put( Web3.TABLES_ELEM,    "4" );        
  +        this.tags.put( Web3.FIELD_ELEM,     "5" );           
  +        this.tags.put( Web3.ROW_ELEM,       "6" );           
  +        this.tags.put( Web3.STRUCTURE_ELEM, "7" );     
  +        this.tags.put( Web3.TABLE_ELEM,     "8" );         
  +    }
  +}
  +
  
  
  
  1.2       +72 -72    cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/IFunctionTemplate.java
  
  Index: IFunctionTemplate.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/IFunctionTemplate.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IFunctionTemplate.java	9 Mar 2003 00:06:40 -0000	1.1
  +++ IFunctionTemplate.java	6 May 2003 14:13:01 -0000	1.2
  @@ -1,72 +1,72 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package com.sap.mw.jco;
  -
  -/**
  - * **********************************************************************
  - * *                            W A R N I N G                           *
  - * **********************************************************************
  - *
  - *  This is a mock object of the class, not the actual class.
  - *  It's used to compile the code in absence of the actual class.
  - *
  - *  This clsss is created by hand, not automatically.
  - *
  - * **********************************************************************
  - * 
  - * @version CVS $Id$
  - */
  - 
  -public interface IFunctionTemplate {
  -
  -    public JCO.Function getFunction();
  -    
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package com.sap.mw.jco;
  +
  +/**
  + * **********************************************************************
  + * *                            W A R N I N G                           *
  + * **********************************************************************
  + *
  + *  This is a mock object of the class, not the actual class.
  + *  It's used to compile the code in absence of the actual class.
  + *
  + *  This clsss is created by hand, not automatically.
  + *
  + * **********************************************************************
  + * 
  + * @version CVS $Id$
  + */
  + 
  +public interface IFunctionTemplate {
  +
  +    public JCO.Function getFunction();
  +    
  +}
  
  
  
  1.2       +71 -71    cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/IRepository.java
  
  Index: IRepository.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/IRepository.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IRepository.java	9 Mar 2003 00:06:40 -0000	1.1
  +++ IRepository.java	6 May 2003 14:13:01 -0000	1.2
  @@ -1,71 +1,71 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package com.sap.mw.jco;
  -
  -/**
  - * **********************************************************************
  - * *                            W A R N I N G                           *
  - * **********************************************************************
  - *
  - *  This is a mock object of the class, not the actual class.
  - *  It's used to compile the code in absence of the actual class.
  - *
  - *  This clsss is created by hand, not automatically.
  - *
  - * **********************************************************************
  - * 
  - * @version CVS $Id$
  - */
  - 
  -public interface IRepository {
  -
  -    
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package com.sap.mw.jco;
  +
  +/**
  + * **********************************************************************
  + * *                            W A R N I N G                           *
  + * **********************************************************************
  + *
  + *  This is a mock object of the class, not the actual class.
  + *  It's used to compile the code in absence of the actual class.
  + *
  + *  This clsss is created by hand, not automatically.
  + *
  + * **********************************************************************
  + * 
  + * @version CVS $Id$
  + */
  + 
  +public interface IRepository {
  +
  +    
  +}
  
  
  
  1.2       +397 -397  cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/JCO.java
  
  Index: JCO.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/JCO.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JCO.java	9 Mar 2003 00:06:40 -0000	1.1
  +++ JCO.java	6 May 2003 14:13:01 -0000	1.2
  @@ -1,397 +1,397 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  -    used to  endorse or promote  products derived from  this software without
  -    prior written permission. For written permission, please contact
  -    apache@apache.org.
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  - Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -package com.sap.mw.jco;
  -
  -import java.util.Properties;
  -import java.net.URL;
  -
  -/**
  - * **********************************************************************
  - * *                            W A R N I N G                           *
  - * **********************************************************************
  - *
  - *  This is a mock object of the class, not the actual class.
  - *  It's used to compile the code in absence of the actual class.
  - *
  - *  This clsss is created by hand, not automatically.
  - *
  - * **********************************************************************
  - * 
  - * @version CVS $Id$
  - */
  - 
  -public class JCO {
  -
  -    public static void addClientPool(String SID, int poolsize, Properties properties) {
  -    }
  -    
  -    public static void setTraceLevel(int level) {
  -    }
  -    
  -    public static JCO.Client getClient(String key) {
  -        return null;
  -    }
  -    
  -    public static void releaseClient(JCO.Client client) {
  -    }
  -    
  -    public static void removeClientPool(String key) {
  -    }
  -    
  -    public static JCO.PoolManager getClientPoolManager() {
  -        return null;
  -    }
  -    
  -    public static class PoolManager {
  -        
  -        public JCO.Pool getPool(String name) {
  -            return null;
  -        }
  -    }
  -    
  -    public static class Pool {
  -     
  -        public final void setTrace(boolean trace) {
  -        }
  -    }
  -    
  -    public static class Function {
  -        
  -        public JCO.ParameterList getImportParameterList() {
  -            return null;
  -        }
  -        
  -        public JCO.ParameterList getExportParameterList() {
  -            return null;
  -        }
  -        
  -        public JCO.ParameterList getTableParameterList() {
  -            return null;
  -        }    
  -        
  -        public String getName() {
  -            return null;
  -        }
  -    }
  -    
  -    public static class ParameterList extends Record {
  -    }
  -    
  -    public static class Attributes {
  -    }
  -    
  -    public static class Throughput {
  -    }
  -    
  -    public static class Repository implements IRepository {
  -        public Repository (String s, JCO.Client client) {
  -        }
  -        
  -        public IFunctionTemplate getFunctionTemplate(String name) {
  -            return null;
  -        }
  -    }
  -    
  -    public static class Record {
  -        
  -        public String getName(int index) {
  -            return null;
  -        }
  -        
  -        public final JCO.Field getField(int index) {
  -            return null;
  -        }
  -        
  -        public final JCO.Field getField(String name) {
  -            return null;
  -        }
  -        
  -        public String getString(int index) {
  -            return null;
  -        }
  -        
  -        public JCO.Structure getStructure(int index) {
  -            return null;
  -        }
  -        
  -        public JCO.Structure getStructure(String name) {
  -            return null;
  -        }
  -        
  -        public JCO.Table getTable(int index) {
  -            return null;
  -        }
  -        
  -        public JCO.Table getTable(String name) {
  -            return null;
  -        }
  -        
  -        public int getFieldCount() {
  -            return -1;
  -        }
  -    }
  -    
  -    public static class Field {
  -        
  -        public boolean isStructure() {
  -            return false;
  -        }
  -        
  -        public void setValue(String value) throws JCO.ConversionException {
  -        }
  -    }
  -    
  -    public static class Table extends Record {
  -        
  -        public void appendRow() {
  -        }
  -        
  -        public final int getNumRows() {
  -            return -1;
  -        }
  -        
  -        public void setRow(int pos) {
  -        }
  -    }
  -    
  -    public static class Structure extends Record {
  -    }
  -    
  -    public static class AbapException extends Throwable {
  -        
  -        public final String getKey() {
  -            return null;
  -        }
  -    }
  -    
  -    public static class ConversionException extends Throwable {
  -    }
  -    
  -    public static class Client {
  -        
  -        public void abort(String message) {
  -        }
  -        
  -        public void connect() {
  -        }
  -        
  -        public Object clone() {
  -            return null;
  -        }
  -        
  -        public void disconnect() {
  -        }
  -        
  -        public void execute(JCO.Function function) {
  -        }
  -        
  -        public void execute(String name, 
  -                    JCO.ParameterList input,
  -                    JCO.ParameterList output) {
  -        }
  -        
  -        public void execute(String name,
  -                    JCO.ParameterList input,
  -                    JCO.ParameterList output,
  -                    JCO.ParameterList tables) {
  -        }
  -        
  -        public void execute(JCO.Function function,
  -                    java.lang.String tid) {
  -        }
  -        
  -        public void execute(JCO.Function function,
  -                    String tid,
  -                    String queue) {
  -        }
  -        
  -        public void execute(JCO.Function function,
  -                    String tid,
  -                    String queue,
  -                    int pos) {
  -        }
  -        
  -        public void execute(String name,
  -                    JCO.ParameterList input,
  -                    JCO.ParameterList tables,
  -                    String tid) {
  -        }
  -        
  -        public void execute(String name,
  -                    JCO.ParameterList input,
  -                    JCO.ParameterList tables,
  -                    String tid,
  -                    String queue) {
  -        }
  -        
  -        public void execute(String name,
  -                    JCO.ParameterList input,
  -                    JCO.ParameterList tables,
  -                    String tid,
  -                    String queue,
  -                    int pos) {
  -        }
  -        
  -        public String createTID() {
  -            return null;
  -        }
  -        
  -        public void confirmTID(String tid) {
  -        }
  -        
  -        public final void ping() {
  -        }
  -        
  -        public boolean getAbapDebug() {
  -            return false;
  -        }
  -
  -        public String getASHost() {
  -            return null;
  -        }
  -
  -        public JCO.Attributes getAttributes() {
  -            return null;
  -        }
  -
  -        public String getClient() {
  -            return null;
  -        }
  -
  -        public String getGroup() {
  -            return null;
  -        }
  -
  -        public String getGWHost() {
  -            return null;
  -        }
  -
  -        public String getGWServ() {
  -            return null;
  -        }
  -
  -        public String getLanguage() {
  -            return null;
  -        }
  -
  -        public String getMSHost() {
  -            return null;
  -        }
  -
  -        public String[][] getPropertyInfo() {
  -            return null;
  -        }
  -
  -        public int getSapGui() {
  -            return -1;
  -        }
  -
  -        public byte getState() {
  -            return 0;
  -        }
  -
  -        public String getSystemID() {
  -            return null;
  -        }
  -
  -        public String getSystemNumber() {
  -            return null;
  -        }
  -
  -        public String getTPName() {
  -            return null;
  -        }
  -
  -        public boolean getTrace() { 
  -            return false;
  -        }
  -
  -        public URL getURL() {
  -            return null;
  -        }
  -
  -        public String getUser() {
  -            return null;
  -        }
  -
  -        public boolean isAlive() {
  -            return false;
  -        }
  -
  -        public void setAbapDebug(boolean debug) {
  -        }
  -
  -        public void setProperty(String key, String value) {
  -        }
  -
  -        public void setSapGui(int use_sapgui) {
  -        }
  -
  -        public void setTrace(boolean trace) {
  -        }
  -
  -        public final Properties getProperties() {
  -            return null;
  -        }
  -
  -        public final String getProperty(String key) {
  -            return null;
  -        }
  -
  -        public boolean isValid() {
  -            return false;
  -        }
  -
  -        public void setThroughput(JCO.Throughput throughput) {
  -        }           
  -    }
  -    
  -}
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
  +    used to  endorse or promote  products derived from  this software without
  +    prior written permission. For written permission, please contact
  +    apache@apache.org.
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation and was  originally created by
  + Stefano Mazzocchi  <stefano@apache.org>. For more  information on the Apache
  + Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +package com.sap.mw.jco;
  +
  +import java.util.Properties;
  +import java.net.URL;
  +
  +/**
  + * **********************************************************************
  + * *                            W A R N I N G                           *
  + * **********************************************************************
  + *
  + *  This is a mock object of the class, not the actual class.
  + *  It's used to compile the code in absence of the actual class.
  + *
  + *  This clsss is created by hand, not automatically.
  + *
  + * **********************************************************************
  + * 
  + * @version CVS $Id$
  + */
  + 
  +public class JCO {
  +
  +    public static void addClientPool(String SID, int poolsize, Properties properties) {
  +    }
  +    
  +    public static void setTraceLevel(int level) {
  +    }
  +    
  +    public static JCO.Client getClient(String key) {
  +        return null;
  +    }
  +    
  +    public static void releaseClient(JCO.Client client) {
  +    }
  +    
  +    public static void removeClientPool(String key) {
  +    }
  +    
  +    public static JCO.PoolManager getClientPoolManager() {
  +        return null;
  +    }
  +    
  +    public static class PoolManager {
  +        
  +        public JCO.Pool getPool(String name) {
  +            return null;
  +        }
  +    }
  +    
  +    public static class Pool {
  +     
  +        public final void setTrace(boolean trace) {
  +        }
  +    }
  +    
  +    public static class Function {
  +        
  +        public JCO.ParameterList getImportParameterList() {
  +            return null;
  +        }
  +        
  +        public JCO.ParameterList getExportParameterList() {
  +            return null;
  +        }
  +        
  +        public JCO.ParameterList getTableParameterList() {
  +            return null;
  +        }    
  +        
  +        public String getName() {
  +            return null;
  +        }
  +    }
  +    
  +    public static class ParameterList extends Record {
  +    }
  +    
  +    public static class Attributes {
  +    }
  +    
  +    public static class Throughput {
  +    }
  +    
  +    public static class Repository implements IRepository {
  +        public Repository (String s, JCO.Client client) {
  +        }
  +        
  +        public IFunctionTemplate getFunctionTemplate(String name) {
  +            return null;
  +        }
  +    }
  +    
  +    public static class Record {
  +        
  +        public String getName(int index) {
  +            return null;
  +        }
  +        
  +        public final JCO.Field getField(int index) {
  +            return null;
  +        }
  +        
  +        public final JCO.Field getField(String name) {
  +            return null;
  +        }
  +        
  +        public String getString(int index) {
  +            return null;
  +        }
  +        
  +        public JCO.Structure getStructure(int index) {
  +            return null;
  +        }
  +        
  +        public JCO.Structure getStructure(String name) {
  +            return null;
  +        }
  +        
  +        public JCO.Table getTable(int index) {
  +            return null;
  +        }
  +        
  +        public JCO.Table getTable(String name) {
  +            return null;
  +        }
  +        
  +        public int getFieldCount() {
  +            return -1;
  +        }
  +    }
  +    
  +    public static class Field {
  +        
  +        public boolean isStructure() {
  +            return false;
  +        }
  +        
  +        public void setValue(String value) throws JCO.ConversionException {
  +        }
  +    }
  +    
  +    public static class Table extends Record {
  +        
  +        public void appendRow() {
  +        }
  +        
  +        public final int getNumRows() {
  +            return -1;
  +        }
  +        
  +        public void setRow(int pos) {
  +        }
  +    }
  +    
  +    public static class Structure extends Record {
  +    }
  +    
  +    public static class AbapException extends Throwable {
  +        
  +        public final String getKey() {
  +            return null;
  +        }
  +    }
  +    
  +    public static class ConversionException extends Throwable {
  +    }
  +    
  +    public static class Client {
  +        
  +        public void abort(String message) {
  +        }
  +        
  +        public void connect() {
  +        }
  +        
  +        public Object clone() {
  +            return null;
  +        }
  +        
  +        public void disconnect() {
  +        }
  +        
  +        public void execute(JCO.Function function) {
  +        }
  +        
  +        public void execute(String name, 
  +                    JCO.ParameterList input,
  +                    JCO.ParameterList output) {
  +        }
  +        
  +        public void execute(String name,
  +                    JCO.ParameterList input,
  +                    JCO.ParameterList output,
  +                    JCO.ParameterList tables) {
  +        }
  +        
  +        public void execute(JCO.Function function,
  +                    java.lang.String tid) {
  +        }
  +        
  +        public void execute(JCO.Function function,
  +                    String tid,
  +                    String queue) {
  +        }
  +        
  +        public void execute(JCO.Function function,
  +                    String tid,
  +                    String queue,
  +                    int pos) {
  +        }
  +        
  +        public void execute(String name,
  +                    JCO.ParameterList input,
  +                    JCO.ParameterList tables,
  +                    String tid) {
  +        }
  +        
  +        public void execute(String name,
  +                    JCO.ParameterList input,
  +                    JCO.ParameterList tables,
  +                    String tid,
  +                    String queue) {
  +        }
  +        
  +        public void execute(String name,
  +                    JCO.ParameterList input,
  +                    JCO.ParameterList tables,
  +                    String tid,
  +                    String queue,
  +                    int pos) {
  +        }
  +        
  +        public String createTID() {
  +            return null;
  +        }
  +        
  +        public void confirmTID(String tid) {
  +        }
  +        
  +        public final void ping() {
  +        }
  +        
  +        public boolean getAbapDebug() {
  +            return false;
  +        }
  +
  +        public String getASHost() {
  +            return null;
  +        }
  +
  +        public JCO.Attributes getAttributes() {
  +            return null;
  +        }
  +
  +        public String getClient() {
  +            return null;
  +        }
  +
  +        public String getGroup() {
  +            return null;
  +        }
  +
  +        public String getGWHost() {
  +            return null;
  +        }
  +
  +        public String getGWServ() {
  +            return null;
  +        }
  +
  +        public String getLanguage() {
  +            return null;
  +        }
  +
  +        public String getMSHost() {
  +            return null;
  +        }
  +
  +        public String[][] getPropertyInfo() {
  +            return null;
  +        }
  +
  +        public int getSapGui() {
  +            return -1;
  +        }
  +
  +        public byte getState() {
  +            return 0;
  +        }
  +
  +        public String getSystemID() {
  +            return null;
  +        }
  +
  +        public String getSystemNumber() {
  +            return null;
  +        }
  +
  +        public String getTPName() {
  +            return null;
  +        }
  +
  +        public boolean getTrace() { 
  +            return false;
  +        }
  +
  +        public URL getURL() {
  +            return null;
  +        }
  +
  +        public String getUser() {
  +            return null;
  +        }
  +
  +        public boolean isAlive() {
  +            return false;
  +        }
  +
  +        public void setAbapDebug(boolean debug) {
  +        }
  +
  +        public void setProperty(String key, String value) {
  +        }
  +
  +        public void setSapGui(int use_sapgui) {
  +        }
  +
  +        public void setTrace(boolean trace) {
  +        }
  +
  +        public final Properties getProperties() {
  +            return null;
  +        }
  +
  +        public final String getProperty(String key) {
  +            return null;
  +        }
  +
  +        public boolean isValid() {
  +            return false;
  +        }
  +
  +        public void setThroughput(JCO.Throughput throughput) {
  +        }           
  +    }
  +    
  +}
  
  
  
  1.2       +21 -20    cocoon-2.1/src/blocks/web3/samples/dtd/rfc-in.dtd
  
  Index: rfc-in.dtd
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/dtd/rfc-in.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- rfc-in.dtd	9 Mar 2003 00:06:41 -0000	1.1
  +++ rfc-in.dtd	6 May 2003 14:13:01 -0000	1.2
  @@ -1,20 +1,21 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<!ELEMENT include (import, tables*)>
  -<!ATTLIST include
  -	name CDATA #REQUIRED
  -	producer CDATA #IMPLIED
  ->
  -<!ELEMENT import (structure*, field*)>
  -<!ELEMENT structure (field+)>
  -<!ATTLIST structure
  -	name CDATA #REQUIRED
  ->
  -<!ELEMENT field (#PCDATA)>
  -<!ATTLIST field
  -	name CDATA #REQUIRED
  ->
  -<!ELEMENT tables (table)*>
  -<!ELEMENT table (structure+)>
  -<!ATTLIST table
  -	name CDATA #REQUIRED
  ->
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<!ELEMENT include (import, tables*)>
  +<!ATTLIST include
  +	name CDATA #REQUIRED
  +	producer CDATA #IMPLIED
  +>
  +<!ELEMENT import (structure*, field*)>
  +<!ELEMENT structure (field+)>
  +<!ATTLIST structure
  +	name CDATA #REQUIRED
  +>
  +<!ELEMENT field (#PCDATA)>
  +<!ATTLIST field
  +	name CDATA #REQUIRED
  +>
  +<!ELEMENT tables (table)*>
  +<!ELEMENT table (structure+)>
  +<!ATTLIST table
  +	name CDATA #REQUIRED
  +>
  
  
  
  1.2       +21 -20    cocoon-2.1/src/blocks/web3/samples/dtd/rfc-out.dtd
  
  Index: rfc-out.dtd
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/dtd/rfc-out.dtd,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- rfc-out.dtd	9 Mar 2003 00:06:42 -0000	1.1
  +++ rfc-out.dtd	6 May 2003 14:13:01 -0000	1.2
  @@ -1,20 +1,21 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<!ELEMENT include (export+, tables*)>
  -<!ATTLIST include
  -	name CDATA #REQUIRED
  ->
  -<!ELEMENT import (structure*, field*)>
  -<!ELEMENT export (structure*, field*)>
  -<!ELEMENT structure (field+)>
  -<!ATTLIST structure
  -	name CDATA #REQUIRED
  ->
  -<!ELEMENT field (#PCDATA)>
  -<!ATTLIST field
  -	name CDATA #REQUIRED
  ->
  -<!ELEMENT tables (table)*>
  -<!ELEMENT table (structure+)>
  -<!ATTLIST table
  -	name CDATA #REQUIRED
  ->
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<!ELEMENT include (export+, tables*)>
  +<!ATTLIST include
  +	name CDATA #REQUIRED
  +>
  +<!ELEMENT import (structure*, field*)>
  +<!ELEMENT export (structure*, field*)>
  +<!ELEMENT structure (field+)>
  +<!ATTLIST structure
  +	name CDATA #REQUIRED
  +>
  +<!ELEMENT field (#PCDATA)>
  +<!ATTLIST field
  +	name CDATA #REQUIRED
  +>
  +<!ELEMENT tables (table)*>
  +<!ELEMENT table (structure+)>
  +<!ATTLIST table
  +	name CDATA #REQUIRED
  +>
  
  
  
  1.3       +17 -15    cocoon-2.1/src/blocks/web3/samples/stylesheets/pics2view.xsl
  
  Index: pics2view.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/stylesheets/pics2view.xsl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- pics2view.xsl	14 Mar 2003 04:13:03 -0000	1.2
  +++ pics2view.xsl	6 May 2003 14:13:01 -0000	1.3
  @@ -1,15 +1,17 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<!-- 
  -     Author: Michael Gerzabek, michael.gerzabek@at.efp.cc, EFP Consulting Österreich
  -     @version CVS $Revision$ $Date$
  --->
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
  -	<xsl:template match="@src">
  -		<xsl:attribute name="src">../../docs/<xsl:value-of select="."/></xsl:attribute>
  -	</xsl:template>
  -	<xsl:template match="@*|*|text()|processing-instruction()" priority="-1">
  -		<xsl:copy>
  -			<xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
  -		</xsl:copy>
  -	</xsl:template>
  -</xsl:stylesheet>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<!-- 
  +     Author: Michael Gerzabek, michael.gerzabek@at.efp.cc, EFP Consulting Österreich
  +     @version CVS $Id$
  +-->
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
  +	<xsl:template match="@src">
  +		<xsl:attribute name="src">../../docs/<xsl:value-of select="."/></xsl:attribute>
  +	</xsl:template>
  +	<xsl:template match="@*|*|text()|processing-instruction()" priority="-1">
  +		<xsl:copy>
  +			<xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
  +		</xsl:copy>
  +	</xsl:template>
  +</xsl:stylesheet>
  
  
  
  1.2       +21 -20    cocoon-2.1/src/blocks/web3/samples/stylesheets/pretty.xsl
  
  Index: pretty.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/stylesheets/pretty.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- pretty.xsl	9 Mar 2003 00:06:43 -0000	1.1
  +++ pretty.xsl	6 May 2003 14:13:01 -0000	1.2
  @@ -1,20 +1,21 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<xsl:stylesheet version="1.0"
  -xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  -  <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
  -  <xsl:strip-space elements="*"/>
  -    <xsl:template match="*">
  -      <!-- remove element prefix (if any) -->
  -      <xsl:element name="{local-name()}">
  -        <!-- process attributes -->
  -        <xsl:for-each select="@*">
  -          <!-- remove attribute prefix (if any) -->
  -          <xsl:attribute name="{local-name()}">
  -            <xsl:value-of select="."/>
  -          </xsl:attribute>
  -        </xsl:for-each>
  -        <xsl:apply-templates/>
  -      </xsl:element>
  -  </xsl:template>
  -</xsl:stylesheet>
  -
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<xsl:stylesheet version="1.0"
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  +  <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
  +  <xsl:strip-space elements="*"/>
  +    <xsl:template match="*">
  +      <!-- remove element prefix (if any) -->
  +      <xsl:element name="{local-name()}">
  +        <!-- process attributes -->
  +        <xsl:for-each select="@*">
  +          <!-- remove attribute prefix (if any) -->
  +          <xsl:attribute name="{local-name()}">
  +            <xsl:value-of select="."/>
  +          </xsl:attribute>
  +        </xsl:for-each>
  +        <xsl:apply-templates/>
  +      </xsl:element>
  +  </xsl:template>
  +</xsl:stylesheet>
  +
  
  
  
  1.2       +35 -33    cocoon-2.1/src/blocks/web3/samples/stylesheets/proper.xsl
  
  Index: proper.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/stylesheets/proper.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- proper.xsl	9 Mar 2003 00:06:43 -0000	1.1
  +++ proper.xsl	6 May 2003 14:13:01 -0000	1.2
  @@ -1,33 +1,35 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  -<!-- 
  -     Author: Michael Gerzabek, michael.gerzabek@at.efp.cc, EFP Consulting Österreich
  -     @version CVS $Revision$ $Date$
  --->
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
  -	<xsl:template match="rfc:export">
  -		<export>
  -			<xsl:apply-templates/>
  -		</export>
  -	</xsl:template>
  -	<xsl:template match="rfc:tables">
  -		<tables>
  -			<xsl:apply-templates/>
  -		</tables>
  -	</xsl:template>
  -	<xsl:template match="rfc:row">
  -		<row>
  -			<xsl:attribute name="id"><xsl:number/></xsl:attribute>
  -			<xsl:apply-templates/>
  -		</row>
  -	</xsl:template>
  -	<xsl:template match="rfc:*">
  -		<xsl:element name="{@rfc:name}">
  -			<xsl:apply-templates/>
  -		</xsl:element>
  -	</xsl:template>
  -	<xsl:template match="@*|*|text()|processing-instruction()" priority="-1">
  -		<xsl:copy>
  -			<xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
  -		</xsl:copy>
  -	</xsl:template>
  -</xsl:stylesheet>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
  +
  +<!-- 
  +     Author: Michael Gerzabek, michael.gerzabek@at.efp.cc, EFP Consulting Österreich
  +     @version CVS $Id$
  +-->
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
  +	<xsl:template match="rfc:export">
  +		<export>
  +			<xsl:apply-templates/>
  +		</export>
  +	</xsl:template>
  +	<xsl:template match="rfc:tables">
  +		<tables>
  +			<xsl:apply-templates/>
  +		</tables>
  +	</xsl:template>
  +	<xsl:template match="rfc:row">
  +		<row>
  +			<xsl:attribute name="id"><xsl:number/></xsl:attribute>
  +			<xsl:apply-templates/>
  +		</row>
  +	</xsl:template>
  +	<xsl:template match="rfc:*">
  +		<xsl:element name="{@rfc:name}">
  +			<xsl:apply-templates/>
  +		</xsl:element>
  +	</xsl:template>
  +	<xsl:template match="@*|*|text()|processing-instruction()" priority="-1">
  +		<xsl:copy>
  +			<xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
  +		</xsl:copy>
  +	</xsl:template>
  +</xsl:stylesheet>
  
  
  
  1.2       +91 -88    cocoon-2.1/src/blocks/web3/samples/stylesheets/rfc2html.xsl
  
  Index: rfc2html.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/stylesheets/rfc2html.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- rfc2html.xsl	9 Mar 2003 00:06:43 -0000	1.1
  +++ rfc2html.xsl	6 May 2003 14:13:01 -0000	1.2
  @@ -1,88 +1,91 @@
  -<?xml version="1.0" encoding="iso-8859-1"?>
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
  -
  -	<xsl:template match="/">
  -		<html>
  -			<head>
  -				<title>Web3</title>
  -			</head>
  -			<body>
  -				<xsl:apply-templates/>
  -			</body>
  -		</html>
  -	</xsl:template>
  -	
  -	<xsl:template match="rfc:tables">
  -		<xsl:if test="count(rfc:table) > 0">
  -			<h1>tables:</h1>
  -			<xsl:apply-templates/>
  -		</xsl:if>
  -	</xsl:template>
  -	
  -	<xsl:template match="rfc:table">
  -		<h2>table name: <xsl:value-of select="@*[name(.)='name']"/>
  -		</h2>
  -		<h3>
  -			<xsl:value-of select="count(rfc:row)"/> Zeilen
  -		</h3>
  -		<xsl:if test="count(rfc:row) &gt; 0">
  -			<table border="1">
  -				<tr>
  -					<xsl:for-each select="rfc:row[1]/rfc:field">
  -						<th>
  -							<xsl:value-of select="@*[name(.)='name']"/>
  -						</th>
  -					</xsl:for-each>	
  -				</tr>
  -				<xsl:for-each select="rfc:row">
  -					<tr>
  -						<xsl:for-each select="rfc:field">
  -							<td>
  -								<xsl:value-of select="."/>
  -							</td>
  -						</xsl:for-each>
  -					</tr>
  -				</xsl:for-each>
  -			</table>
  -		</xsl:if>
  -	</xsl:template>
  -	
  -	<xsl:template match="rfc:export">
  -		<xsl:if test="count(rfc:field) > 0">
  -			<h1>fields:</h1>
  -			<table border="1">
  -				<tr>
  -					<th>field name</th>
  -					<th>value</th>
  -				</tr>
  -				<xsl:apply-templates select="rfc:field"/>
  -			</table>
  -		</xsl:if>
  -		<xsl:if test="count(rfc:structure) > 0">
  -			<h1>structures:</h1>
  -			<xsl:for-each select="rfc:structure">
  -				<h2>structure name: <xsl:value-of select="@*[name(.)='name']"/>
  -				</h2>
  -				<table border="1">
  -					<tr>
  -						<th>field name</th>
  -						<th>value</th>
  -					</tr>
  -					<xsl:apply-templates select="rfc:field"/>
  -				</table>
  -			</xsl:for-each>
  -		</xsl:if>
  -	</xsl:template>
  -	
  -	<xsl:template match="rfc:field">
  -		<tr>
  -			<td>
  -				<xsl:value-of select="@*[name(.)='name']"/>
  -			</td>
  -			<td>
  -				<xsl:value-of select="."/>
  -			</td>
  -		</tr>
  -	</xsl:template>
  -	
  -</xsl:stylesheet>
  +<?xml version="1.0" encoding="iso-8859-1"?>
  +
  +<xsl:stylesheet version="1.0"
  +                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  +                xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
  +
  +	<xsl:template match="/">
  +		<html>
  +			<head>
  +				<title>Web3</title>
  +			</head>
  +			<body>
  +				<xsl:apply-templates/>
  +			</body>
  +		</html>
  +	</xsl:template>
  +	
  +	<xsl:template match="rfc:tables">
  +		<xsl:if test="count(rfc:table) > 0">
  +			<h1>tables:</h1>
  +			<xsl:apply-templates/>
  +		</xsl:if>
  +	</xsl:template>
  +	
  +	<xsl:template match="rfc:table">
  +		<h2>table name: <xsl:value-of select="@*[name(.)='name']"/>
  +		</h2>
  +		<h3>
  +			<xsl:value-of select="count(rfc:row)"/> Zeilen
  +		</h3>
  +		<xsl:if test="count(rfc:row) &gt; 0">
  +			<table border="1">
  +				<tr>
  +					<xsl:for-each select="rfc:row[1]/rfc:field">
  +						<th>
  +							<xsl:value-of select="@*[name(.)='name']"/>
  +						</th>
  +					</xsl:for-each>	
  +				</tr>
  +				<xsl:for-each select="rfc:row">
  +					<tr>
  +						<xsl:for-each select="rfc:field">
  +							<td>
  +								<xsl:value-of select="."/>
  +							</td>
  +						</xsl:for-each>
  +					</tr>
  +				</xsl:for-each>
  +			</table>
  +		</xsl:if>
  +	</xsl:template>
  +	
  +	<xsl:template match="rfc:export">
  +		<xsl:if test="count(rfc:field) > 0">
  +			<h1>fields:</h1>
  +			<table border="1">
  +				<tr>
  +					<th>field name</th>
  +					<th>value</th>
  +				</tr>
  +				<xsl:apply-templates select="rfc:field"/>
  +			</table>
  +		</xsl:if>
  +		<xsl:if test="count(rfc:structure) > 0">
  +			<h1>structures:</h1>
  +			<xsl:for-each select="rfc:structure">
  +				<h2>structure name: <xsl:value-of select="@*[name(.)='name']"/>
  +				</h2>
  +				<table border="1">
  +					<tr>
  +						<th>field name</th>
  +						<th>value</th>
  +					</tr>
  +					<xsl:apply-templates select="rfc:field"/>
  +				</table>
  +			</xsl:for-each>
  +		</xsl:if>
  +	</xsl:template>
  +	
  +	<xsl:template match="rfc:field">
  +		<tr>
  +			<td>
  +				<xsl:value-of select="@*[name(.)='name']"/>
  +			</td>
  +			<td>
  +				<xsl:value-of select="."/>
  +			</td>
  +		</tr>
  +	</xsl:template>
  +	
  +</xsl:stylesheet>
  
  
  
  1.2       +35 -34    cocoon-2.1/src/deprecated/conf/deprecated.xconf
  
  Index: deprecated.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/deprecated/conf/deprecated.xconf,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- deprecated.xconf	9 Mar 2003 00:06:51 -0000	1.1
  +++ deprecated.xconf	6 May 2003 14:13:01 -0000	1.2
  @@ -1,34 +1,35 @@
  -<?xml version="1.0"?>
  -<xconf xpath="/cocoon" unless="url-factory">
  -
  -  <!--+
  -      | URL Factory
  -      |
  -      | The url factory adds special url protocols to the system, they are then
  -      | available inside Cocoon, e.g. as a source argument for one of the sitemap
  -      | components.
  -      |
  -      | THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
  -      +-->
  -  <url-factory logger="core.url-factory">
  -    <!-- Allows access to resources available from the ClassLoader, using getResource() method. -->
  -    <protocol class="org.apache.cocoon.components.url.ResourceURLFactory" name="resource"/>
  -  </url-factory>
  -
  -  <!--+
  -      | Source Handler
  -      |
  -      | The source handler adds special url protocols to the system, they are
  -      | then available inside Cocoon, e.g. as a source argument for one of the
  -      | sitemap components.
  -      |
  -      | THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
  -      +-->
  -  <source-handler logger="core.source-handler">
  -    <!-- file protocol : this is a WriteableSource -->
  -    <protocol class="org.apache.cocoon.components.source.FileSourceFactory" name="file"/>
  -    <!-- Allows access to resources available from the servlet context, using getResource() method. -->
  -    <protocol class="org.apache.cocoon.components.source.ContextSourceFactory" name="context"/>
  -  </source-handler>
  -  
  -</xconf>
  +<?xml version="1.0"?>
  +
  +<xconf xpath="/cocoon" unless="url-factory">
  +
  +  <!--+
  +      | URL Factory
  +      |
  +      | The url factory adds special url protocols to the system, they are then
  +      | available inside Cocoon, e.g. as a source argument for one of the sitemap
  +      | components.
  +      |
  +      | THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
  +      +-->
  +  <url-factory logger="core.url-factory">
  +    <!-- Allows access to resources available from the ClassLoader, using getResource() method. -->
  +    <protocol class="org.apache.cocoon.components.url.ResourceURLFactory" name="resource"/>
  +  </url-factory>
  +
  +  <!--+
  +      | Source Handler
  +      |
  +      | The source handler adds special url protocols to the system, they are
  +      | then available inside Cocoon, e.g. as a source argument for one of the
  +      | sitemap components.
  +      |
  +      | THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
  +      +-->
  +  <source-handler logger="core.source-handler">
  +    <!-- file protocol : this is a WriteableSource -->
  +    <protocol class="org.apache.cocoon.components.source.FileSourceFactory" name="file"/>
  +    <!-- Allows access to resources available from the servlet context, using getResource() method. -->
  +    <protocol class="org.apache.cocoon.components.source.ContextSourceFactory" name="context"/>
  +  </source-handler>
  +  
  +</xconf>
  
  
  
  1.2       +54 -53    cocoon-2.1/src/deprecated/conf/deprecated.xroles
  
  Index: deprecated.xroles
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/deprecated/conf/deprecated.xroles,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- deprecated.xroles	9 Mar 2003 00:06:51 -0000	1.1
  +++ deprecated.xroles	6 May 2003 14:13:01 -0000	1.2
  @@ -1,53 +1,54 @@
  -<?xml version="1.0"?>
  -<xroles xpath="/role-list" unless="role[@name='org.apache.cocoon.components.resolver.Resolver']">
  -
  -    <!-- ====================== deprecated ======================== -->
  -
  -  <!-- DEPRECATED, use the avalon excalibur entity-resolver instead -->
  -  <role name="org.apache.cocoon.components.resolver.Resolver"
  -        shorthand="resolver"
  -        default-class="org.apache.cocoon.components.resolver.ResolverImpl"/>
  -
  -  <!-- DEPRECATED, use the avalon excalibur xml-parser instead -->
  -  <role name="org.apache.cocoon.components.parser.Parser"
  -        shorthand="parser"
  -        default-class="org.apache.cocoon.components.parser.JaxpParser"/>
  -
  -  <!-- DEPRECATED, use the avalon excalibur source resolve instead -->
  -  <role name="org.apache.cocoon.components.url.URLFactory"
  -        shorthand="url-factory"
  -        default-class="org.apache.cocoon.components.url.URLFactoryImpl"/>
  -
  -  <!-- DEPRECATED, use the avalon excalibur source resolve instead -->
  -  <role name="org.apache.cocoon.components.source.SourceHandler"
  -        shorthand="source-handler"
  -        default-class="org.apache.cocoon.components.source.SourceHandlerImpl"/>
  -
  -  <!-- DEPRECATED, use the avalon excalibur xslt processor instead -->
  -  <role name="org.apache.cocoon.components.xslt.XSLTProcessor"
  -        shorthand="old-xslt-processor"
  -        default-class="org.apache.cocoon.components.xslt.XSLTProcessorImpl"/>
  -
  -  <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
  -  <role name="org.apache.cocoon.components.store.Store/Repository"
  -        shorthand="repository"
  -        default-class="org.apache.cocoon.components.store.FilesystemStore"/>
  -
  -  <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
  -  <role name="org.apache.cocoon.components.store.Store/TransientCache"
  -        shorthand="cache-transient"
  -        default-class="org.apache.cocoon.components.store.MRUMemoryStore"/>
  -
  -  <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
  -  <role name="org.apache.cocoon.components.store.Store/PersistentCache"
  -       shorthand="cache-persistent"
  -       default-class="org.apache.cocoon.components.store.FilesystemStore"/>
  -
  -  <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
  -  <role name="org.apache.cocoon.components.store.StoreJanitor"
  -        shorthand="old-store-janitor"
  -        default-class="org.apache.cocoon.components.store.StoreJanitorImpl"/>
  -
  -
  -
  -</xroles>
  +<?xml version="1.0"?>
  +
  +<xroles xpath="/role-list" unless="role[@name='org.apache.cocoon.components.resolver.Resolver']">
  +
  +    <!-- ====================== deprecated ======================== -->
  +
  +  <!-- DEPRECATED, use the avalon excalibur entity-resolver instead -->
  +  <role name="org.apache.cocoon.components.resolver.Resolver"
  +        shorthand="resolver"
  +        default-class="org.apache.cocoon.components.resolver.ResolverImpl"/>
  +
  +  <!-- DEPRECATED, use the avalon excalibur xml-parser instead -->
  +  <role name="org.apache.cocoon.components.parser.Parser"
  +        shorthand="parser"
  +        default-class="org.apache.cocoon.components.parser.JaxpParser"/>
  +
  +  <!-- DEPRECATED, use the avalon excalibur source resolve instead -->
  +  <role name="org.apache.cocoon.components.url.URLFactory"
  +        shorthand="url-factory"
  +        default-class="org.apache.cocoon.components.url.URLFactoryImpl"/>
  +
  +  <!-- DEPRECATED, use the avalon excalibur source resolve instead -->
  +  <role name="org.apache.cocoon.components.source.SourceHandler"
  +        shorthand="source-handler"
  +        default-class="org.apache.cocoon.components.source.SourceHandlerImpl"/>
  +
  +  <!-- DEPRECATED, use the avalon excalibur xslt processor instead -->
  +  <role name="org.apache.cocoon.components.xslt.XSLTProcessor"
  +        shorthand="old-xslt-processor"
  +        default-class="org.apache.cocoon.components.xslt.XSLTProcessorImpl"/>
  +
  +  <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
  +  <role name="org.apache.cocoon.components.store.Store/Repository"
  +        shorthand="repository"
  +        default-class="org.apache.cocoon.components.store.FilesystemStore"/>
  +
  +  <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
  +  <role name="org.apache.cocoon.components.store.Store/TransientCache"
  +        shorthand="cache-transient"
  +        default-class="org.apache.cocoon.components.store.MRUMemoryStore"/>
  +
  +  <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
  +  <role name="org.apache.cocoon.components.store.Store/PersistentCache"
  +       shorthand="cache-persistent"
  +       default-class="org.apache.cocoon.components.store.FilesystemStore"/>
  +
  +  <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
  +  <role name="org.apache.cocoon.components.store.StoreJanitor"
  +        shorthand="old-store-janitor"
  +        default-class="org.apache.cocoon.components.store.StoreJanitorImpl"/>
  +
  +
  +
  +</xroles>
  
  
  
  1.2       +499 -499  cocoon-2.1/src/documentation/xdocs/drafts/cocoon2-docbook.xml
  
  Index: cocoon2-docbook.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/documentation/xdocs/drafts/cocoon2-docbook.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- cocoon2-docbook.xml	9 Mar 2003 00:07:49 -0000	1.1
  +++ cocoon2-docbook.xml	6 May 2003 14:13:01 -0000	1.2
  @@ -1,505 +1,505 @@
  -<?xml version="1.0" encoding="ISO-8859-1"?>
  +<?xml version="1.0" encoding="ISO-8859-1"?>
   
   <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN" 
     "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd" []> 
   
   <!--	
  -<!DOCTYPE article
  -  PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.0.1//EN"
  -  "http://nwalsh.com/docbook/simple/4.0.1/sdocbook.dtd">
  +<!DOCTYPE article
  +  PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.0.1//EN"
  +  "http://nwalsh.com/docbook/simple/4.0.1/sdocbook.dtd">
   -->
  -
  -<book>
  -<bookinfo>
  -  <title>Cocoon 2</title>
  -  <authorgroup>
  -    <author>
  -      <firstname>Stefano</firstname>
  -      <surname>Mazzocchi</surname>
  -      <affiliation>
  -        <orgname>The Apache Group</orgname>
  -        <address>
  -          <email>stefano@apache.org</email>
  -          <otheraddr>http://xml.apache.org</otheraddr>
  -        </address>
  -      </affiliation>
  -    </author>
  -  </authorgroup>
  -    <abstract>
  -      <title>The Apache XML Project</title>
  -        <para>
  -          This document describes the Cocoon project, and its role within the
  -          Apache Group's Java XML project.
  -        </para>
  -    </abstract>
  -    <revhistory>
  -      <revision>
  -        <revnumber>0.01</revnumber>
  -        <date>28 May 2000</date>
  -        <revremark>DocBook markup</revremark>
  -      </revision>
  -    </revhistory>
  -</bookinfo>
  -
  -<chapter>
  -  <title>The Cocoon Project</title>
  -
  -<sect1> 
  -  <title>A new look</title>
  -  <para>
  -    The Cocoon Project will evidence its new course with a new logo that was
  -    designed by Cocoon's creator Stefano Mazzocchi. Here it is:
  -  </para>
  -  <figure>
  -    <title>The new Cocoon Logo</title>
  -    <graphic fileref="cocoon2.gif"></graphic>
  -  </figure>
  -</sect1>
  -
  -<sect1>
  -  <title>Introduction</title>
  -  <para>
  -    The Cocoon Project has gone a long way since it's creation on January 1999.
  -    It started as a simple servlet for static XSL styling and became more and
  -    more powerful as new features were added. Unfortunately, design decisions
  -    made early in the project influenced its evolution. Today, some of those
  -    constraints that shaped the project were modified as XML standards have
  -    evolved and solidified. For this reason, those design decisions need to be
  -    reconsidered under this new light.
  -  </para>
  -  <para>
  -    While Cocoon started as a small step in the direction of a new web
  -    publishing idea based on better design patterns and reviewed estimations of
  -    management issues, the technology used was not mature enough for tools to
  -    emerge. Today, most web engineers consider XML as the key for an improved
  -    web model and web site managers see XML as a way to reduce costs and ease
  -    production.
  -  </para>
  -  <para>
  -    In an era where services rather than software will be key for economical
  -    success, a better and less expensive model for web publishing will be a
  -    winner, especially if based on open standards.
  -  </para>
  -</sect1>
  -
  -<sect1> 
  -  <title>Passive APIs vs. Active APIs</title>
  -  <para>
  -    Web serving environments must be fast and scalable to be useful. Cocoon1
  -    was born as a &quot;proof of concept&quot; rather than a production
  -    software and had significant design restrictions based mainly on the
  -    availability of freely redistributable tools. Other issues were lack of
  -    detailed knowledge on the APIs available as well as underestimation of the
  -    project success, being created as a way to learn XSL rather than a full
  -    publishing system capable of taking care of all XML web publishing
  -    needs.
  -  </para>
  -
  -  <para>
  -    For the above reasons, Cocoon1 was based on the DOM level 1 API which is a
  -    <emphasis>passive</emphasis> API and was intended mainly for client side
  -    operation.  This is mainly due to the fact that most DOM implementations
  -    require the document to reside in memory. While this is practical for small
  -    documents and thus good for the &quot;proof of concept&quot; stage, it is
  -    now considered a main design constraint for Cocoon scalability.
  -  </para>
  -
  -  <para>
  -    Since the goal of Cocoon2 is the ability to process simultaneously multiple
  -    100Mb documents in JVM with a few Mbs of heap size, careful memory use and
  -    tuning of internal components is a key issue. To reach this goal, an
  -    improved API model was needed. This is now identified in the SAX API which
  -    is, unlike DOM, event based (so <emphasis>active</emphasis>, in the sense
  -    that its design is based the <emphasis>inversion of control</emphasis>
  -    principle).
  -  </para>
  -
  -  <para>
  -    The event model allows document producers to trigger producing events that
  -    get handled in the various processing stages and get finally formatted in
  -    the response stream. This has significant impacts on performance and memory
  -    needs:
  -  </para>
  -
  -  <itemizedlist>
  -    <listitem>
  -      <para>
  -        incremental operation
  -      </para>
  -      <para>
  -	the response is created during document production. Client's perceived
  -	performance is dramatically improved since clients can start receiving
  -	data as soon as it is created, not after all processing stages have
  -	been performed. In those cases where incremental operation is not
  -	possible (for example, element sorting), internal buffers store the
  -	events until the operation can be performed.  However, even in these
  -	cases performance can be increased with the use of tuned memory
  -	structures.
  -      </para>
  -    </listitem>
  -    <listitem>
  -      <para>
  -        lowered memory consumption
  -      </para>
  -      <para>
  -	since most of the server processing required in Cocoon is incremental,
  -	an incremental model allows XML production events to be transformed
  -	directly into output events and character written on streams, thus
  -	avoiding the need to store them in memory.
  -      </para>
  -    </listitem>
  -    <listitem>
  -      <para>
  -        easier scalability
  -      </para>
  -      <para>
  -	reduce memory needs allow more concurrent operation to be possible,
  -	thus allowing the publishing system to scale as the load increases.
  -      </para>
  -    </listitem>
  -    <listitem>
  -      <para>
  -        more optimizable code model
  -      </para>
  -      <para>
  -	modern virtual machines are based on the idea of <emphasis>hot
  -	spots</emphasis>, code fragments that are used often and, if optimized,
  -	increase the process execution by far.  This new event model allows
  -	easier detection of hot spots since it's a method driven operation,
  -	rather than a memory driven one. Hot methods can be identified earlier
  -	and their optimization performed better.
  -      </para>
  -    </listitem>
  -    <listitem>
  -      <para>
  -        reduced garbage collection
  -      </para>
  -      <para>
  -	even the most advanced and lightweight DOM implementation require at
  -	least three to five times (and sometimes much more than this) more
  -	memory than original document size. This does not only reduce the
  -	scalability of the operation, but also impact overall performance by
  -	increasing the number of memory garbage that must be collected after
  -	the response in sent to the client. Even if modern virtual machines
  -	reduced the overhead of garbage collection, less garbage will always
  -	have performance and scalability impacts.
  -      </para>
  -    </listitem>
  -  </itemizedlist>
  -
  -  <para>
  -    The above points, alone, would be enough for the Cocoon2 paradigm shift,
  -    even if this event based model impacts not only the general architecture of
  -    the publishing system but also its internal processing components such as
  -    XSLT processing and PDF formatting. These components will require
  -    substantial work and maybe design reconsideration to be able to follow a
  -    pure event-based model. The Cocoon Project will work closely with the other
  -    component projects to be able to influence their operation in this
  -    direction.
  -  </para>
  -</sect1>
  -
  -<sect1> 
  -<title>Reactors Reconsidered</title>
  -  <para>
  -    Another design choice that should be revised is the reactor pattern that
  -    was introduced to allow components to be connected in more flexible way. In
  -    fact, opposed to the fixed pipe model used up to Cocoon 1.3.1, the reactor
  -    approach allows components to be dynamically connected, depending on
  -    reaction instructions introduced inside the documents.
  -  </para>
  -
  -  <para>
  -    While this at first seemed a very advanced and highly appealing model, it
  -    turned out to be a very dangerous approach. The first concern is mainly
  -    technical: porting the reactor pattern under an event-based model requires
  -    limitations and tradeoffs since the generated events must be cached until a
  -    reaction instruction is encountered.
  -  </para>
  -
  -  <para>
  -    But even if the technical difficulties are solved, a key limitation
  -    remains: there is no single point of management.
  -  </para>
  -</sect1>
  -
  -<sect1> 
  -<title>Management Considerations</title>
  -  <para>
  -    The web was created to reduce information management costs by distributing
  -    them back on information owners. While this model is great for user
  -    communities (scientists, students, employees, or people in general) each of
  -    them managing small amount of personal information, it becomes impractical
  -    for highly centralized information systems where <emphasis>distributed
  -    management</emphasis> is simply not practical.
  -  </para>
  -
  -  <para>
  -    While in the HTML web model the page format and URL names where the only
  -    necessary contracts between individuals to create a world wide web, in more
  -    structured information systems the number of contracts increases by a
  -    significant factor due to the need of coherence between the hosted
  -    information: common style, common design issues, common languages, server
  -    side logic integration, data validation, etc...
  -  </para>
  -
  -  <para>
  -    It is only under this light that XML and its web model reveal their power:
  -    the HTML web model had too little contracts to be able to develop a
  -    structured and more coherent distributed information system, reason that is
  -    mainly imposed by the lack of good and algorithmically certain information
  -    indexing and knowledge seeking. Lacks that tend to degrade the quality of
  -    the truly distributed web in favor of more structured web sites (that based
  -    their improved site structure on internal contracts).
  -  </para>
  -
  -  <para>
  -    The simplification and engineering of web site management is considered one
  -    of the most important Cocoon2 goals. This is done mainly by technologically
  -    imposing a reduced number of contracts and place them in a hierarchical
  -    shape suitable to replace current high-structure web site management
  -    models.
  -  </para>
  -
  -  <para>
  -    The model that Cocoon2 adopts is the &quot;pyramid model of web
  -    contracts&quot; which is outlined in the picture below
  -  </para>
  -
  -  <figure>
  -    <title>The Cocoon2 Pyramid Model of Contracts</title>
  -    <graphic fileref="pyramid-model.gif"></graphic>
  -  </figure>
  -
  -  <para>
  -    and is composed by four different working contexts (the rectangles)
  -  </para>
  -
  -  <itemizedlist>
  -    <listitem>
  -      <para>
  -        Management
  -      </para>
  -      <para>
  -        the people that decide what the site should contain, how it should
  -        behave and how it should appear
  -      </para>
  -    </listitem>
  -    <listitem>
  -      <para>
  -        Content
  -      </para>
  -      <para>
  -	the people responsible to write, own and manage the site content. This
  -	context may contain several sub-contexts one for each language used to
  -	express page content.
  -      </para>
  -    </listitem>
  -    <listitem>
  -      <para>
  -        Logic
  -      </para>
  -      <para>
  -	the people responsible for integration with dynamic content generation
  -	technologies and database systems.
  -      </para>
  -    </listitem>
  -    <listitem>
  -      <para>
  -        Style
  -      </para>
  -      <para>
  -	the people responsible for information presentation, look &amp; feel,
  -	site graphics and its maintenance.
  -      </para>
  -    </listitem>
  -  </itemizedlist>  
  -
  -  <para>
  -    and five contracts (the lines)
  -    <simplelist>
  -      <member>management - content</member>
  -      <member>management - logic</member>
  -      <member>management - style</member>
  -      <member>content - logic</member>
  -      <member>content - style</member>
  -    </simplelist>
  -  </para>
  -
  -  <para>
  -    note that there is no <emphasis>logic - style</emphasis> contract. Cocoon2
  -    aims to provide both software and guidelines to allow you to remove such
  -    contract.
  -  </para>
  -</sect1>
  -
  -<sect1> 
  -<title>Overlapping contexts and Chain Mapping</title>
  -  <para>
  -    The above model can be applied only if the different contexts never
  -    overlap, otherwise there is no chance of having a single management point.
  -    For example, if the W3C-recommended method to link stylesheets to XML
  -    documents is used, the content and style contexts overlap and it's
  -    impossible to change the styling behavior of the document without changing
  -    it. The same is true for the processing instructions used by the Cocoon1
  -    reactor to drive the page processing: each stage concur to determine the
  -    result thus increasing management and debug complexity. Another overlapping
  -    in context contracts is the need for URL-encoded parameters to drive the
  -    page output. These overlaps break the pyramid model and increase the
  -    management costs.
  -  </para>
  -
  -  <para>
  -    In Cocoon2, the reactor pattern will be abandoned in favor of a pipeline
  -    mapping technique. This is based on the fact that the number of different
  -    contracts is limited even for big sites and grows with a rate that is
  -    normally much less than its size.
  -  </para>
  -
  -  <para>
  -    Also, for performance reasons, Cocoon2 will try to compile everything that
  -    is possibly compilable (pages/XSP into producers, stylesheets into
  -    processors, etc...) so, in this new model, the <emphasis>processing
  -    chain</emphasis> that generates the page contains (in a direct executable
  -    form) all the information/logic that handles the requested resource to
  -    generate its response.
  -  </para>
  -
  -  <para>
  -    This means that instead of using even-driven request-time DTD
  -    interpretation (done in all Cocoon1 processors), these will be either
  -    compiled into processors directly (XSLT stylesheet compilation) or compiled
  -    into producers using logicsheets and XSP which will remove totally the need
  -    for request-time interpretation solutions like DCP that will be removed.
  -  </para>
  -
  -  <note>
  -    <para>
  -      Some of these features are already present in latest Cocoon 1.x releases
  -      but the Cocoon2 architecture will make them central to its new core
  -    </para>
  -   </note>
  -</sect1>
  -
  -<sect1>
  -<title>Sitemap</title>
  -  <para>
  -    In Cocoon2 terminology, a <emphasis>sitemap</emphasis> is the collection of
  -    pipeline matching informations that allow the Cocoon engine to associate
  -    the requested URI to the proper response-producing pipeline.
  -  </para>
  -
  -  <para>
  -    The sitemap physically represents the central repository for web site
  -    administration, where the URI space and its handling is maintained. An
  -    example of the sitemap is given below:
  -  </para>
  -
  -<programlisting>
  -<![CDATA[
  -<source>
  -  <sitemap>
  -   <process match="/press/en/*.html">
  -    <generator type="file" src="/docs/english/press/*.xml"/>
  -    <filter type="xslt">
  -     <parameter name="stylesheet" value="/styles/simple-press-html.xsl"/>
  -    </filter>
  -    <serializer type="html"/>
  -   </process>
  -
  -   <process match="/press/en/*.pdf">
  -    <generator type="file" src="/docs/english/press/*.xml"/>
  -    <filter type="xslt">
  -     <parameter name="stylesheet" value="/styles/simple-press-pdf.xsl"/>
  -    </filter>
  -    <serializer type="pdf"/>
  -   </process>
  -
  -   <process match="/">
  -    <matcher type="agent">
  -     <parameter name="name" value="Mozilla/5.0">
  -    </matcher>
  -    <generator type="file" src="/docs/root.xml"/>
  -    <filter type="xslt">
  -     <parameter name="stylesheet" value="/styles/fancy-XUL-view.xsl"/>
  -    </filter>
  -    <serializer type="html"/>
  -   </process>
  -
  -   <process match="/">
  -    <matcher type="agent">
  -     <parameter name="capability" value="text/vnd.wap.wml">
  -    </matcher>
  -    <generator type="file" src="/docs/root.xml"/>
  -    <filter type="xslt">
  -     <parameter name="stylesheet" value="/styles/WAP-view.xsl"/>
  -    </filter>
  -    <serializer type="wap"/>
  -   </process>
  -
  -   <process match="/">
  -    <generator type="file" src="/docs/root.xml"/>
  -    <filter type="xslt">
  -     <parameter name="stylesheet" value="/styles/normal-view.xsl"/>
  -    </filter>
  -    <serializer type="html"/>
  -   </process>
  -  </sitemap>
  -</source>
  -]]>
  -</programlisting>
  -
  -  <note>
  -    <para>
  -      The sitemap DTD has not yet been standardized and it's not guaranteed to
  -      solidify until Cocoon 2.0 is out final. So, the above should be
  -      considered just as a preview and not a specification or even a working
  -      draft. For more information dig into the development mail list digests.
  -    </para>
  -  </note>
  -</sect1>
  -
  -<sect1>
  -<title>Pre-compilation, Pre-generation and Caching</title>
  -  <para>
  -    The cache system in Cocoon1 will be ported with no important design changes
  -    since it's very flexible and was not polluted by early design constraints
  -    since it appeared in later versions. The issue regards static file caching
  -    that, no matter what, will always be slower than direct web server caching.
  -  </para>
  -
  -  <para>
  -    To be able to put most of the static part job back on the web server (where
  -    it belongs), Cocoon2 will greatly improve it's command line operation,
  -    allowing the creation of <emphasis>site makefiles</emphasis> that will
  -    automatically scan the web site and the source documents and will provide a
  -    way to <emphasis>regenerate</emphasis> the static part of a web site
  -    (images and tables included!) based on the same XML model used in the
  -    dynamic operation version.
  -  </para>
  -
  -  <para>
  -    Cocoon2 will, in fact, be the integration between Cocoon1 and Stylebook.
  -  </para>
  -
  -  <para>
  -    It will be up to the web server administrator to use static regeneration
  -    capabilities on a time basis, manually or triggered by some particular
  -    event (database update signal) since Cocoon2 will only provide servlet and
  -    command line capabilities. The nice integration is based on the fact that
  -    there will be no behavioral difference if the files are dynamically
  -    generated in Cocoon2 via the servlet operation and cached internally or
  -    pre-generated and served directly by the web server, as long as URI
  -    contracts are kept the same by the system administrator (via URL-rewriting
  -    or aliasing)
  -  </para>
  -
  -  <para>
  -    Also, it will be possible to avoid on-fly page and stylesheet compilation
  -    (which make debugging harder) with command line pre-compilation hooks that
  -    will work like normal compilers from a developer's point of view.
  -  </para>
  -</sect1>
  -
  -</chapter>
  -</book>
  +
  +<book>
  +<bookinfo>
  +  <title>Cocoon 2</title>
  +  <authorgroup>
  +    <author>
  +      <firstname>Stefano</firstname>
  +      <surname>Mazzocchi</surname>
  +      <affiliation>
  +        <orgname>The Apache Group</orgname>
  +        <address>
  +          <email>stefano@apache.org</email>
  +          <otheraddr>http://xml.apache.org</otheraddr>
  +        </address>
  +      </affiliation>
  +    </author>
  +  </authorgroup>
  +    <abstract>
  +      <title>The Apache XML Project</title>
  +        <para>
  +          This document describes the Cocoon project, and its role within the
  +          Apache Group's Java XML project.
  +        </para>
  +    </abstract>
  +    <revhistory>
  +      <revision>
  +        <revnumber>0.01</revnumber>
  +        <date>28 May 2000</date>
  +        <revremark>DocBook markup</revremark>
  +      </revision>
  +    </revhistory>
  +</bookinfo>
  +
  +<chapter>
  +  <title>The Cocoon Project</title>
  +
  +<sect1> 
  +  <title>A new look</title>
  +  <para>
  +    The Cocoon Project will evidence its new course with a new logo that was
  +    designed by Cocoon's creator Stefano Mazzocchi. Here it is:
  +  </para>
  +  <figure>
  +    <title>The new Cocoon Logo</title>
  +    <graphic fileref="cocoon2.gif"></graphic>
  +  </figure>
  +</sect1>
  +
  +<sect1>
  +  <title>Introduction</title>
  +  <para>
  +    The Cocoon Project has gone a long way since it's creation on January 1999.
  +    It started as a simple servlet for static XSL styling and became more and
  +    more powerful as new features were added. Unfortunately, design decisions
  +    made early in the project influenced its evolution. Today, some of those
  +    constraints that shaped the project were modified as XML standards have
  +    evolved and solidified. For this reason, those design decisions need to be
  +    reconsidered under this new light.
  +  </para>
  +  <para>
  +    While Cocoon started as a small step in the direction of a new web
  +    publishing idea based on better design patterns and reviewed estimations of
  +    management issues, the technology used was not mature enough for tools to
  +    emerge. Today, most web engineers consider XML as the key for an improved
  +    web model and web site managers see XML as a way to reduce costs and ease
  +    production.
  +  </para>
  +  <para>
  +    In an era where services rather than software will be key for economical
  +    success, a better and less expensive model for web publishing will be a
  +    winner, especially if based on open standards.
  +  </para>
  +</sect1>
  +
  +<sect1> 
  +  <title>Passive APIs vs. Active APIs</title>
  +  <para>
  +    Web serving environments must be fast and scalable to be useful. Cocoon1
  +    was born as a &quot;proof of concept&quot; rather than a production
  +    software and had significant design restrictions based mainly on the
  +    availability of freely redistributable tools. Other issues were lack of
  +    detailed knowledge on the APIs available as well as underestimation of the
  +    project success, being created as a way to learn XSL rather than a full
  +    publishing system capable of taking care of all XML web publishing
  +    needs.
  +  </para>
  +
  +  <para>
  +    For the above reasons, Cocoon1 was based on the DOM level 1 API which is a
  +    <emphasis>passive</emphasis> API and was intended mainly for client side
  +    operation.  This is mainly due to the fact that most DOM implementations
  +    require the document to reside in memory. While this is practical for small
  +    documents and thus good for the &quot;proof of concept&quot; stage, it is
  +    now considered a main design constraint for Cocoon scalability.
  +  </para>
  +
  +  <para>
  +    Since the goal of Cocoon2 is the ability to process simultaneously multiple
  +    100Mb documents in JVM with a few Mbs of heap size, careful memory use and
  +    tuning of internal components is a key issue. To reach this goal, an
  +    improved API model was needed. This is now identified in the SAX API which
  +    is, unlike DOM, event based (so <emphasis>active</emphasis>, in the sense
  +    that its design is based the <emphasis>inversion of control</emphasis>
  +    principle).
  +  </para>
  +
  +  <para>
  +    The event model allows document producers to trigger producing events that
  +    get handled in the various processing stages and get finally formatted in
  +    the response stream. This has significant impacts on performance and memory
  +    needs:
  +  </para>
  +
  +  <itemizedlist>
  +    <listitem>
  +      <para>
  +        incremental operation
  +      </para>
  +      <para>
  +	the response is created during document production. Client's perceived
  +	performance is dramatically improved since clients can start receiving
  +	data as soon as it is created, not after all processing stages have
  +	been performed. In those cases where incremental operation is not
  +	possible (for example, element sorting), internal buffers store the
  +	events until the operation can be performed.  However, even in these
  +	cases performance can be increased with the use of tuned memory
  +	structures.
  +      </para>
  +    </listitem>
  +    <listitem>
  +      <para>
  +        lowered memory consumption
  +      </para>
  +      <para>
  +	since most of the server processing required in Cocoon is incremental,
  +	an incremental model allows XML production events to be transformed
  +	directly into output events and character written on streams, thus
  +	avoiding the need to store them in memory.
  +      </para>
  +    </listitem>
  +    <listitem>
  +      <para>
  +        easier scalability
  +      </para>
  +      <para>
  +	reduce memory needs allow more concurrent operation to be possible,
  +	thus allowing the publishing system to scale as the load increases.
  +      </para>
  +    </listitem>
  +    <listitem>
  +      <para>
  +        more optimizable code model
  +      </para>
  +      <para>
  +	modern virtual machines are based on the idea of <emphasis>hot
  +	spots</emphasis>, code fragments that are used often and, if optimized,
  +	increase the process execution by far.  This new event model allows
  +	easier detection of hot spots since it's a method driven operation,
  +	rather than a memory driven one. Hot methods can be identified earlier
  +	and their optimization performed better.
  +      </para>
  +    </listitem>
  +    <listitem>
  +      <para>
  +        reduced garbage collection
  +      </para>
  +      <para>
  +	even the most advanced and lightweight DOM implementation require at
  +	least three to five times (and sometimes much more than this) more
  +	memory than original document size. This does not only reduce the
  +	scalability of the operation, but also impact overall performance by
  +	increasing the number of memory garbage that must be collected after
  +	the response in sent to the client. Even if modern virtual machines
  +	reduced the overhead of garbage collection, less garbage will always
  +	have performance and scalability impacts.
  +      </para>
  +    </listitem>
  +  </itemizedlist>
  +
  +  <para>
  +    The above points, alone, would be enough for the Cocoon2 paradigm shift,
  +    even if this event based model impacts not only the general architecture of
  +    the publishing system but also its internal processing components such as
  +    XSLT processing and PDF formatting. These components will require
  +    substantial work and maybe design reconsideration to be able to follow a
  +    pure event-based model. The Cocoon Project will work closely with the other
  +    component projects to be able to influence their operation in this
  +    direction.
  +  </para>
  +</sect1>
  +
  +<sect1> 
  +<title>Reactors Reconsidered</title>
  +  <para>
  +    Another design choice that should be revised is the reactor pattern that
  +    was introduced to allow components to be connected in more flexible way. In
  +    fact, opposed to the fixed pipe model used up to Cocoon 1.3.1, the reactor
  +    approach allows components to be dynamically connected, depending on
  +    reaction instructions introduced inside the documents.
  +  </para>
  +
  +  <para>
  +    While this at first seemed a very advanced and highly appealing model, it
  +    turned out to be a very dangerous approach. The first concern is mainly
  +    technical: porting the reactor pattern under an event-based model requires
  +    limitations and tradeoffs since the generated events must be cached until a
  +    reaction instruction is encountered.
  +  </para>
  +
  +  <para>
  +    But even if the technical difficulties are solved, a key limitation
  +    remains: there is no single point of management.
  +  </para>
  +</sect1>
  +
  +<sect1> 
  +<title>Management Considerations</title>
  +  <para>
  +    The web was created to reduce information management costs by distributing
  +    them back on information owners. While this model is great for user
  +    communities (scientists, students, employees, or people in general) each of
  +    them managing small amount of personal information, it becomes impractical
  +    for highly centralized information systems where <emphasis>distributed
  +    management</emphasis> is simply not practical.
  +  </para>
  +
  +  <para>
  +    While in the HTML web model the page format and URL names where the only
  +    necessary contracts between individuals to create a world wide web, in more
  +    structured information systems the number of contracts increases by a
  +    significant factor due to the need of coherence between the hosted
  +    information: common style, common design issues, common languages, server
  +    side logic integration, data validation, etc...
  +  </para>
  +
  +  <para>
  +    It is only under this light that XML and its web model reveal their power:
  +    the HTML web model had too little contracts to be able to develop a
  +    structured and more coherent distributed information system, reason that is
  +    mainly imposed by the lack of good and algorithmically certain information
  +    indexing and knowledge seeking. Lacks that tend to degrade the quality of
  +    the truly distributed web in favor of more structured web sites (that based
  +    their improved site structure on internal contracts).
  +  </para>
  +
  +  <para>
  +    The simplification and engineering of web site management is considered one
  +    of the most important Cocoon2 goals. This is done mainly by technologically
  +    imposing a reduced number of contracts and place them in a hierarchical
  +    shape suitable to replace current high-structure web site management
  +    models.
  +  </para>
  +
  +  <para>
  +    The model that Cocoon2 adopts is the &quot;pyramid model of web
  +    contracts&quot; which is outlined in the picture below
  +  </para>
  +
  +  <figure>
  +    <title>The Cocoon2 Pyramid Model of Contracts</title>
  +    <graphic fileref="pyramid-model.gif"></graphic>
  +  </figure>
  +
  +  <para>
  +    and is composed by four different working contexts (the rectangles)
  +  </para>
  +
  +  <itemizedlist>
  +    <listitem>
  +      <para>
  +        Management
  +      </para>
  +      <para>
  +        the people that decide what the site should contain, how it should
  +        behave and how it should appear
  +      </para>
  +    </listitem>
  +    <listitem>
  +      <para>
  +        Content
  +      </para>
  +      <para>
  +	the people responsible to write, own and manage the site content. This
  +	context may contain several sub-contexts one for each language used to
  +	express page content.
  +      </para>
  +    </listitem>
  +    <listitem>
  +      <para>
  +        Logic
  +      </para>
  +      <para>
  +	the people responsible for integration with dynamic content generation
  +	technologies and database systems.
  +      </para>
  +    </listitem>
  +    <listitem>
  +      <para>
  +        Style
  +      </para>
  +      <para>
  +	the people responsible for information presentation, look &amp; feel,
  +	site graphics and its maintenance.
  +      </para>
  +    </listitem>
  +  </itemizedlist>  
  +
  +  <para>
  +    and five contracts (the lines)
  +    <simplelist>
  +      <member>management - content</member>
  +      <member>management - logic</member>
  +      <member>management - style</member>
  +      <member>content - logic</member>
  +      <member>content - style</member>
  +    </simplelist>
  +  </para>
  +
  +  <para>
  +    note that there is no <emphasis>logic - style</emphasis> contract. Cocoon2
  +    aims to provide both software and guidelines to allow you to remove such
  +    contract.
  +  </para>
  +</sect1>
  +
  +<sect1> 
  +<title>Overlapping contexts and Chain Mapping</title>
  +  <para>
  +    The above model can be applied only if the different contexts never
  +    overlap, otherwise there is no chance of having a single management point.
  +    For example, if the W3C-recommended method to link stylesheets to XML
  +    documents is used, the content and style contexts overlap and it's
  +    impossible to change the styling behavior of the document without changing
  +    it. The same is true for the processing instructions used by the Cocoon1
  +    reactor to drive the page processing: each stage concur to determine the
  +    result thus increasing management and debug complexity. Another overlapping
  +    in context contracts is the need for URL-encoded parameters to drive the
  +    page output. These overlaps break the pyramid model and increase the
  +    management costs.
  +  </para>
  +
  +  <para>
  +    In Cocoon2, the reactor pattern will be abandoned in favor of a pipeline
  +    mapping technique. This is based on the fact that the number of different
  +    contracts is limited even for big sites and grows with a rate that is
  +    normally much less than its size.
  +  </para>
  +
  +  <para>
  +    Also, for performance reasons, Cocoon2 will try to compile everything that
  +    is possibly compilable (pages/XSP into producers, stylesheets into
  +    processors, etc...) so, in this new model, the <emphasis>processing
  +    chain</emphasis> that generates the page contains (in a direct executable
  +    form) all the information/logic that handles the requested resource to
  +    generate its response.
  +  </para>
  +
  +  <para>
  +    This means that instead of using even-driven request-time DTD
  +    interpretation (done in all Cocoon1 processors), these will be either
  +    compiled into processors directly (XSLT stylesheet compilation) or compiled
  +    into producers using logicsheets and XSP which will remove totally the need
  +    for request-time interpretation solutions like DCP that will be removed.
  +  </para>
  +
  +  <note>
  +    <para>
  +      Some of these features are already present in latest Cocoon 1.x releases
  +      but the Cocoon2 architecture will make them central to its new core
  +    </para>
  +   </note>
  +</sect1>
  +
  +<sect1>
  +<title>Sitemap</title>
  +  <para>
  +    In Cocoon2 terminology, a <emphasis>sitemap</emphasis> is the collection of
  +    pipeline matching informations that allow the Cocoon engine to associate
  +    the requested URI to the proper response-producing pipeline.
  +  </para>
  +
  +  <para>
  +    The sitemap physically represents the central repository for web site
  +    administration, where the URI space and its handling is maintained. An
  +    example of the sitemap is given below:
  +  </para>
  +
  +<programlisting>
  +<![CDATA[
  +<source>
  +  <sitemap>
  +   <process match="/press/en/*.html">
  +    <generator type="file" src="/docs/english/press/*.xml"/>
  +    <filter type="xslt">
  +     <parameter name="stylesheet" value="/styles/simple-press-html.xsl"/>
  +    </filter>
  +    <serializer type="html"/>
  +   </process>
  +
  +   <process match="/press/en/*.pdf">
  +    <generator type="file" src="/docs/english/press/*.xml"/>
  +    <filter type="xslt">
  +     <parameter name="stylesheet" value="/styles/simple-press-pdf.xsl"/>
  +    </filter>
  +    <serializer type="pdf"/>
  +   </process>
  +
  +   <process match="/">
  +    <matcher type="agent">
  +     <parameter name="name" value="Mozilla/5.0">
  +    </matcher>
  +    <generator type="file" src="/docs/root.xml"/>
  +    <filter type="xslt">
  +     <parameter name="stylesheet" value="/styles/fancy-XUL-view.xsl"/>
  +    </filter>
  +    <serializer type="html"/>
  +   </process>
  +
  +   <process match="/">
  +    <matcher type="agent">
  +     <parameter name="capability" value="text/vnd.wap.wml">
  +    </matcher>
  +    <generator type="file" src="/docs/root.xml"/>
  +    <filter type="xslt">
  +     <parameter name="stylesheet" value="/styles/WAP-view.xsl"/>
  +    </filter>
  +    <serializer type="wap"/>
  +   </process>
  +
  +   <process match="/">
  +    <generator type="file" src="/docs/root.xml"/>
  +    <filter type="xslt">
  +     <parameter name="stylesheet" value="/styles/normal-view.xsl"/>
  +    </filter>
  +    <serializer type="html"/>
  +   </process>
  +  </sitemap>
  +</source>
  +]]>
  +</programlisting>
  +
  +  <note>
  +    <para>
  +      The sitemap DTD has not yet been standardized and it's not guaranteed to
  +      solidify until Cocoon 2.0 is out final. So, the above should be
  +      considered just as a preview and not a specification or even a working
  +      draft. For more information dig into the development mail list digests.
  +    </para>
  +  </note>
  +</sect1>
  +
  +<sect1>
  +<title>Pre-compilation, Pre-generation and Caching</title>
  +  <para>
  +    The cache system in Cocoon1 will be ported with no important design changes
  +    since it's very flexible and was not polluted by early design constraints
  +    since it appeared in later versions. The issue regards static file caching
  +    that, no matter what, will always be slower than direct web server caching.
  +  </para>
  +
  +  <para>
  +    To be able to put most of the static part job back on the web server (where
  +    it belongs), Cocoon2 will greatly improve it's command line operation,
  +    allowing the creation of <emphasis>site makefiles</emphasis> that will
  +    automatically scan the web site and the source documents and will provide a
  +    way to <emphasis>regenerate</emphasis> the static part of a web site
  +    (images and tables included!) based on the same XML model used in the
  +    dynamic operation version.
  +  </para>
  +
  +  <para>
  +    Cocoon2 will, in fact, be the integration between Cocoon1 and Stylebook.
  +  </para>
  +
  +  <para>
  +    It will be up to the web server administrator to use static regeneration
  +    capabilities on a time basis, manually or triggered by some particular
  +    event (database update signal) since Cocoon2 will only provide servlet and
  +    command line capabilities. The nice integration is based on the fact that
  +    there will be no behavioral difference if the files are dynamically
  +    generated in Cocoon2 via the servlet operation and cached internally or
  +    pre-generated and served directly by the web server, as long as URI
  +    contracts are kept the same by the system administrator (via URL-rewriting
  +    or aliasing)
  +  </para>
  +
  +  <para>
  +    Also, it will be possible to avoid on-fly page and stylesheet compilation
  +    (which make debugging harder) with command line pre-compilation hooks that
  +    will work like normal compilers from a developer's point of view.
  +  </para>
  +</sect1>
  +
  +</chapter>
  +</book>
  
  
  
  1.2       +8 -8      cocoon-2.1/src/scratchpad/src/org/apache/cocoon/components/source/impl/blob.xconf
  
  Index: blob.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/src/org/apache/cocoon/components/source/impl/blob.xconf,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- blob.xconf	12 Mar 2003 09:35:39 -0000	1.1
  +++ blob.xconf	6 May 2003 14:13:02 -0000	1.2
  @@ -1,8 +1,8 @@
  -<?xml version="1.0"?>
  -
  -<xconf xpath="/cocoon/source-factories" unless="protocol[@name='blob']">
  -
  -    <!-- blob pseudo protocol -->
  -    <protocol name="blob" class="org.apache.cocoon.components.source.impl.BlobSourceFactory"/>
  -
  -</xconf>
  +<?xml version="1.0"?>
  +
  +<xconf xpath="/cocoon/source-factories" unless="protocol[@name='blob']">
  +
  +    <!-- blob pseudo protocol -->
  +    <protocol name="blob" class="org.apache.cocoon.components.source.impl.BlobSourceFactory"/>
  +
  +</xconf>
  
  
  
  1.3       +208 -211  cocoon-2.1/src/scratchpad/webapp/samples/jxforms/stylesheets/jxforms2html.xsl
  
  Index: jxforms2html.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/jxforms/stylesheets/jxforms2html.xsl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- jxforms2html.xsl	3 May 2003 20:36:12 -0000	1.2
  +++ jxforms2html.xsl	6 May 2003 14:13:02 -0000	1.3
  @@ -1,211 +1,208 @@
  -<?xml version="1.0" encoding="iso-8859-1" ?>
  -
  -
  -<!-- 
  -
  -  Basic XMLForm processing stylesheet.  
  -  Converts XMLForm tags to HTML tags.
  -  
  -  Syntax is borrowed from the XForms standard.
  -  http://www.w3.org/TR/2002/WD-xforms-20020118/
  -  
  -  This stylesheet is usually applied at the end of a 
  -  transformation process after laying out the jxform
  -  tags on the page is complete. At this stage jxform tags 
  -  are rendered in device specific format.
  -  
  -  Different widgets are broken into templates 
  -  to allow customization in importing stylesheets
  -
  -  author: Ivelin Ivanov, ivelin@apache.org, June 2002
  -  author: Andrew Timberlake <andrew@timberlake.co.za>, June 2002
  -  author: Michael Ratliff, mratliff@collegenet.com <mratliff@collegenet.com>, May 2002
  -  author: Torsten Curdt, tcurdt@dff.st, March 2002
  -  author: Simon Price <price@bristol.ac.uk>, September 2002
  -  author: Konstantin Piroumian <kpiroumian@protek.com>, September 2002
  -  author: Robert Ellis Parrott <parrott@fas.harvard.edu>, October 2002
  --->
  -
  -<xsl:stylesheet version="1.0" 
  -    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  -  xmlns:xf="http://apache.org/cocoon/jxforms/1.0">
  -
  -   <xsl:output method = "xml" omit-xml-declaration = "no"  /> 
  -  
  -
  -   <xsl:template match="/">
  -     <xsl:apply-templates />
  -   </xsl:template>
  -
  -
  -   <xsl:template match="xf:form">
  -      <form>
  -         <xsl:copy-of select="@*"/>
  -
  -         <!-- the xf:form/@view attributed is sent back to the server as a hidden field -->
  -         <input type="hidden" name="cocoon-xmlform-view" value="{@view}"/>
  -         
  -         <!-- render the child form controls -->
  -         <xsl:apply-templates />
  -         
  -      </form>
  -   </xsl:template>
  -
  -
  -   <xsl:template match="xf:output">
  -      [<xsl:value-of select="xf:value/text()"/>]
  -   </xsl:template>
  -
  -
  -   <xsl:template match="xf:input">
  -      <!-- the ref attribute is assigned to html:name, which is how it is linked to the model -->
  -      <input name="{@ref}" type="text" value="{xf:value/text()}">
  -        <!-- copy all attributes from the original markup, except for "ref" -->
  -        <xsl:copy-of select="@*[not(name()='ref')]"/>
  -        <xsl:apply-templates select="xf:hint"/>
  -      </input>
  -   </xsl:template>
  -
  -
  -   <xsl:template match="xf:textarea">
  -      <textarea name="{@ref}" >
  -        <xsl:copy-of select="@*[not(name()='ref')]"/>
  -        <xsl:value-of select="xf:value/text()"/>
  -        <xsl:apply-templates select="xf:hint"/>
  -      </textarea>
  -   </xsl:template>
  -
  -	<xsl:template match="xf:repeat">
  -		<tr width="100%">
  -			<td colspan="3" width="100%">
  -				<table class="repeat">
  -					<xsl:apply-templates select="*"/>
  -				</table>
  -			</td>
  -		</tr>
  -	</xsl:template>
  -	<xsl:template match="xf:group">
  -		<tr width="100%">
  -			<td width="100%" colspan="2">
  -				<table class="group" border="0">
  -					<tr>
  -						<td align="left">
  -							<xsl:value-of select="xf:label" />
  -						</td>
  -					</tr>
  -					<xsl:apply-templates select="*"/>
  -				</table>
  -			</td>
  -		</tr>
  -	</xsl:template>
  -
  -   <xsl:template match="xf:secret">
  -      <input name="{@ref}" type="password" value="{xf:value/text()}">
  -        <xsl:copy-of select="@*[not(name()='ref')]"/>
  -        <xsl:apply-templates select="xf:hint"/>
  -      </input>
  -   </xsl:template>
  -
  -
  -   <xsl:template match="xf:hidden">
  -      <input name="{@ref}" type="hidden" value="{xf:value/text()}">
  -        <xsl:copy-of select="@*[not(name()='ref')]"/>
  -      </input>
  -   </xsl:template>
  -
  -
  -   <xsl:template match="xf:select1 | xf:select1[@appearance='compact']">
  -     <select name="{@ref}">
  -     <xsl:copy-of select="@*[not(name()='ref')]"/>
  -     <!-- all currently selected nodes are listed as value elements -->
  -       <xsl:variable name="selected" select="xf:value"/>
  -       <xsl:for-each select="xf:item">
  -         <option value="{xf:value}">
  -           <!-- If the current item value matches one of the selected values -->
  -           <!-- mark it as selected in the listbox -->
  -           <xsl:if test="$selected = xf:value">
  -             <xsl:attribute name="selected"/>
  -           </xsl:if>
  -           <xsl:value-of select="xf:label"/>
  -         </option>
  -       </xsl:for-each>
  -     </select>
  -   </xsl:template>
  -
  -   
  -   <xsl:template match="xf:select1[@appearance='full']">
  -        <xsl:variable name="selected" select="xf:value"/>
  -        <xsl:variable name="ref" select="@ref"/>
  -        <xsl:for-each select="xf:item">
  -            <input name="{$ref}" type="radio" value="{xf:value}">
  -                <xsl:copy-of select="@*[not(name()='ref')]"/>
  -                <xsl:if test="xf:value = $selected">
  -                    <xsl:attribute name="checked"/>
  -                </xsl:if>
  -            </input>
  -            <xsl:value-of select="xf:label"/>
  -            <br/>
  -        </xsl:for-each>
  -   </xsl:template>
  -
  -   
  -   <xsl:template match="xf:select | xf:select[@appearance='compact']">
  -     <xsl:variable name="selected" select="xf:value"/>
  -     <select name="{@ref}">
  -       <xsl:copy-of select="@*[not(name()='ref')]"/>
  -       <xsl:attribute name="multiple"/>
  -       <xsl:for-each select="xf:item">
  -         <option value="{xf:value}">
  -           <xsl:if test="xf:value = $selected">
  -             <xsl:attribute name="selected"/>
  -           </xsl:if>
  -           <xsl:value-of select="xf:label"/>
  -         </option>
  -       </xsl:for-each>
  -     </select>  
  -   </xsl:template>
  -
  -   
  -   <xsl:template match="xf:select[@appearance='full']">
  -        <xsl:variable name="selected" select="xf:value"/>
  -        <xsl:variable name="ref" select="@ref"/>
  -        <xsl:for-each select="xf:item">
  -            <input name="{$ref}" type="checkbox" value="{xf:value}">
  -                <xsl:copy-of select="@*[not(name()='ref')]"/>
  -                <xsl:if test="xf:value = $selected">
  -                  <xsl:attribute name="checked"/>
  -                </xsl:if>
  -            </input>
  -            <xsl:value-of select="xf:label"/>
  -            <br/>
  -        </xsl:for-each>
  -   </xsl:template>
  -
  -   
  -   
  -   <xsl:template match="xf:submit">
  -       <!-- the id attribute of the submit control is sent to the server -->
  -       <!-- as a conventional Cocoon Action parameter of the form cocoon-action-* -->
  -      <input name="cocoon-action-{@id}" type="submit" value="{xf:label/text()}">
  -        <xsl:copy-of select="@*[not(name()='id')]"/>
  -        <xsl:apply-templates select="xf:hint"/>
  -      </input>
  -   </xsl:template>
  -   
  -   <xsl:template match="xf:hint">
  -          <xsl:attribute name="title"><xsl:value-of select="."/></xsl:attribute>
  -   </xsl:template>
  -
  -
  -   <!-- copy all the rest of the markup which is not recognized above -->
  -   <xsl:template match="*">
  -      <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
  -   </xsl:template>
  -
  -   <xsl:template match="text()">
  -      <xsl:value-of select="." />
  -   </xsl:template>
  -
  -
  -</xsl:stylesheet>
  -
  +<?xml version="1.0" encoding="iso-8859-1" ?>
  +
  +<!-- 
  +
  +  Basic XMLForm processing stylesheet.  
  +  Converts XMLForm tags to HTML tags.
  +  
  +  Syntax is borrowed from the XForms standard.
  +  http://www.w3.org/TR/2002/WD-xforms-20020118/
  +  
  +  This stylesheet is usually applied at the end of a 
  +  transformation process after laying out the jxform
  +  tags on the page is complete. At this stage jxform tags 
  +  are rendered in device specific format.
  +  
  +  Different widgets are broken into templates 
  +  to allow customization in importing stylesheets
  +
  +  author: Ivelin Ivanov, ivelin@apache.org, June 2002
  +  author: Andrew Timberlake <andrew@timberlake.co.za>, June 2002
  +  author: Michael Ratliff, mratliff@collegenet.com <mratliff@collegenet.com>, May 2002
  +  author: Torsten Curdt, tcurdt@dff.st, March 2002
  +  author: Simon Price <price@bristol.ac.uk>, September 2002
  +  author: Konstantin Piroumian <kpiroumian@protek.com>, September 2002
  +  author: Robert Ellis Parrott <parrott@fas.harvard.edu>, October 2002
  +-->
  +
  +<xsl:stylesheet version="1.0" 
  +    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  +  xmlns:xf="http://apache.org/cocoon/jxforms/1.0">
  +
  +   <xsl:output method = "xml" omit-xml-declaration = "no"  /> 
  +  
  +
  +   <xsl:template match="/">
  +     <xsl:apply-templates />
  +   </xsl:template>
  +
  +
  +   <xsl:template match="xf:form">
  +      <form>
  +         <xsl:copy-of select="@*"/>
  +
  +         <!-- the xf:form/@view attributed is sent back to the server as a hidden field -->
  +         <input type="hidden" name="cocoon-xmlform-view" value="{@view}"/>
  +         
  +         <!-- render the child form controls -->
  +         <xsl:apply-templates />
  +         
  +      </form>
  +   </xsl:template>
  +
  +
  +   <xsl:template match="xf:output">
  +      [<xsl:value-of select="xf:value/text()"/>]
  +   </xsl:template>
  +
  +
  +   <xsl:template match="xf:input">
  +      <!-- the ref attribute is assigned to html:name, which is how it is linked to the model -->
  +      <input name="{@ref}" type="text" value="{xf:value/text()}">
  +        <!-- copy all attributes from the original markup, except for "ref" -->
  +        <xsl:copy-of select="@*[not(name()='ref')]"/>
  +        <xsl:apply-templates select="xf:hint"/>
  +      </input>
  +   </xsl:template>
  +
  +
  +   <xsl:template match="xf:textarea">
  +      <textarea name="{@ref}" >
  +        <xsl:copy-of select="@*[not(name()='ref')]"/>
  +        <xsl:value-of select="xf:value/text()"/>
  +        <xsl:apply-templates select="xf:hint"/>
  +      </textarea>
  +   </xsl:template>
  +
  +	<xsl:template match="xf:repeat">
  +		<tr width="100%">
  +			<td colspan="3" width="100%">
  +				<table class="repeat">
  +					<xsl:apply-templates select="*"/>
  +				</table>
  +			</td>
  +		</tr>
  +	</xsl:template>
  +	<xsl:template match="xf:group">
  +		<tr width="100%">
  +			<td width="100%" colspan="2">
  +				<table class="group" border="0">
  +					<tr>
  +						<td align="left">
  +							<xsl:value-of select="xf:label" />
  +						</td>
  +					</tr>
  +					<xsl:apply-templates select="*"/>
  +				</table>
  +			</td>
  +		</tr>
  +	</xsl:template>
  +
  +   <xsl:template match="xf:secret">
  +      <input name="{@ref}" type="password" value="{xf:value/text()}">
  +        <xsl:copy-of select="@*[not(name()='ref')]"/>
  +        <xsl:apply-templates select="xf:hint"/>
  +      </input>
  +   </xsl:template>
  +
  +
  +   <xsl:template match="xf:hidden">
  +      <input name="{@ref}" type="hidden" value="{xf:value/text()}">
  +        <xsl:copy-of select="@*[not(name()='ref')]"/>
  +      </input>
  +   </xsl:template>
  +
  +
  +   <xsl:template match="xf:select1 | xf:select1[@appearance='compact']">
  +     <select name="{@ref}">
  +     <xsl:copy-of select="@*[not(name()='ref')]"/>
  +     <!-- all currently selected nodes are listed as value elements -->
  +       <xsl:variable name="selected" select="xf:value"/>
  +       <xsl:for-each select="xf:item">
  +         <option value="{xf:value}">
  +           <!-- If the current item value matches one of the selected values -->
  +           <!-- mark it as selected in the listbox -->
  +           <xsl:if test="$selected = xf:value">
  +             <xsl:attribute name="selected"/>
  +           </xsl:if>
  +           <xsl:value-of select="xf:label"/>
  +         </option>
  +       </xsl:for-each>
  +     </select>
  +   </xsl:template>
  +
  +   
  +   <xsl:template match="xf:select1[@appearance='full']">
  +        <xsl:variable name="selected" select="xf:value"/>
  +        <xsl:variable name="ref" select="@ref"/>
  +        <xsl:for-each select="xf:item">
  +            <input name="{$ref}" type="radio" value="{xf:value}">
  +                <xsl:copy-of select="@*[not(name()='ref')]"/>
  +                <xsl:if test="xf:value = $selected">
  +                    <xsl:attribute name="checked"/>
  +                </xsl:if>
  +            </input>
  +            <xsl:value-of select="xf:label"/>
  +            <br/>
  +        </xsl:for-each>
  +   </xsl:template>
  +
  +   
  +   <xsl:template match="xf:select | xf:select[@appearance='compact']">
  +     <xsl:variable name="selected" select="xf:value"/>
  +     <select name="{@ref}">
  +       <xsl:copy-of select="@*[not(name()='ref')]"/>
  +       <xsl:attribute name="multiple"/>
  +       <xsl:for-each select="xf:item">
  +         <option value="{xf:value}">
  +           <xsl:if test="xf:value = $selected">
  +             <xsl:attribute name="selected"/>
  +           </xsl:if>
  +           <xsl:value-of select="xf:label"/>
  +         </option>
  +       </xsl:for-each>
  +     </select>  
  +   </xsl:template>
  +
  +   
  +   <xsl:template match="xf:select[@appearance='full']">
  +        <xsl:variable name="selected" select="xf:value"/>
  +        <xsl:variable name="ref" select="@ref"/>
  +        <xsl:for-each select="xf:item">
  +            <input name="{$ref}" type="checkbox" value="{xf:value}">
  +                <xsl:copy-of select="@*[not(name()='ref')]"/>
  +                <xsl:if test="xf:value = $selected">
  +                  <xsl:attribute name="checked"/>
  +                </xsl:if>
  +            </input>
  +            <xsl:value-of select="xf:label"/>
  +            <br/>
  +        </xsl:for-each>
  +   </xsl:template>
  +
  +   
  +   
  +   <xsl:template match="xf:submit">
  +       <!-- the id attribute of the submit control is sent to the server -->
  +       <!-- as a conventional Cocoon Action parameter of the form cocoon-action-* -->
  +      <input name="cocoon-action-{@id}" type="submit" value="{xf:label/text()}">
  +        <xsl:copy-of select="@*[not(name()='id')]"/>
  +        <xsl:apply-templates select="xf:hint"/>
  +      </input>
  +   </xsl:template>
  +   
  +   <xsl:template match="xf:hint">
  +          <xsl:attribute name="title"><xsl:value-of select="."/></xsl:attribute>
  +   </xsl:template>
  +
  +
  +   <!-- copy all the rest of the markup which is not recognized above -->
  +   <xsl:template match="*">
  +      <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
  +   </xsl:template>
  +
  +   <xsl:template match="text()">
  +      <xsl:value-of select="." />
  +   </xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.2       +17 -17    cocoon-2.1/src/scratchpad/webapp/samples/paginator/content/text.xml
  
  Index: text.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/paginator/content/text.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- text.xml	9 Mar 2003 00:10:32 -0000	1.1
  +++ text.xml	6 May 2003 14:13:02 -0000	1.2
  @@ -1,17 +1,17 @@
  -<?xml version="1.0"?>
  -
  -<!-- CVS: $Id$ -->
  -
  -<list>
  -  <item>This is the paragraph number one (44 chars).</item>
  -  <item>This is the paragraph number two, a bit longer (58 chars).</item>
  -  <item>This one is third (29 chars).</item>
  -  <item>4th (15 chars).</item>
  -  <item>5th (15 chars).</item>
  -  <item>This is the paragraph number six.</item>
  -  <item>This is the paragraph number seven.</item>
  -  <item>This is the paragraph number eight.</item>
  -  <item>This is the paragraph number nine which is longer (twice) then any other paragraph before.</item>
  -  <item>This is the paragraph number ten.</item>
  -  <item>This is the paragraph number eleven.</item>
  -</list>
  +<?xml version="1.0"?>
  +
  +<!-- CVS: $Id$ -->
  +
  +<list>
  +  <item>This is the paragraph number one (44 chars).</item>
  +  <item>This is the paragraph number two, a bit longer (58 chars).</item>
  +  <item>This one is third (29 chars).</item>
  +  <item>4th (15 chars).</item>
  +  <item>5th (15 chars).</item>
  +  <item>This is the paragraph number six.</item>
  +  <item>This is the paragraph number seven.</item>
  +  <item>This is the paragraph number eight.</item>
  +  <item>This is the paragraph number nine which is longer (twice) then any other paragraph before.</item>
  +  <item>This is the paragraph number ten.</item>
  +  <item>This is the paragraph number eleven.</item>
  +</list>
  
  
  
  1.2       +10 -10    cocoon-2.1/src/scratchpad/webapp/samples/paginator/pagesheets/text.pagesheet
  
  Index: text.pagesheet
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/paginator/pagesheets/text.pagesheet,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- text.pagesheet	9 Mar 2003 00:10:32 -0000	1.1
  +++ text.pagesheet	6 May 2003 14:13:02 -0000	1.2
  @@ -1,10 +1,10 @@
  -<?xml version="1.0"?>
  -
  -<!-- CVS: $Id$ -->
  -
  -<pagesheet xmlns="http://apache.org/cocoon/paginate/1.0">
  -  <rules>
  -    <count type="chars" name="item" num="110"/>
  -    <link type="unit" num="1"/>
  -  </rules>
  -</pagesheet>
  +<?xml version="1.0"?>
  +
  +<!-- CVS: $Id$ -->
  +
  +<pagesheet xmlns="http://apache.org/cocoon/paginate/1.0">
  +  <rules>
  +    <count type="chars" name="item" num="110"/>
  +    <link type="unit" num="1"/>
  +  </rules>
  +</pagesheet>
  
  
  
  1.18      +146 -155  cocoon-2.1/src/scratchpad/webapp/samples/petstore/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/sitemap.xmap,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- sitemap.xmap	30 Apr 2003 09:39:01 -0000	1.17
  +++ sitemap.xmap	6 May 2003 14:13:02 -0000	1.18
  @@ -1,155 +1,146 @@
  -<?xml version="1.0"?>
  -<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  -
  -  <!-- =========================== Components ================================ -->
  -  <map:components> 
  -    <map:transformers default="xslt">
  -      <map:transformer name="jx" src="org.apache.cocoon.transformation.JXTemplateTransformer" logger="jx.sitemap.transformer"/>
  -    </map:transformers>
  -    <map:generators default="file">
  -        <map:generator label="content,data" logger="sitemap.generator.velocity" name="velocity" src="org.apache.cocoon.generation.FlowVelocityGenerator"/>
  -        <map:generator label="content,data" logger="sitemap.generator.jx" name="jx" src="org.apache.cocoon.generation.JXTemplateGenerator"/>
  -      <map:generator name="jxforms" src="org.apache.cocoon.generation.JXFormsGenerator" logger="sitemap.generator.jxforms"/>
  -    </map:generators>
  -    <map:flow-interpreters default="JavaScript"/>
  -    <map:serializers default="html"/>
  -    <map:matchers default="wildcard"/>
  -  </map:components>
  -
  -
  -<!-- =========================== Views =================================== -->
  -
  -<!--
  -  The debug view can be used to output an intermediate 
  -  snapshot of the pipeline.
  -  Pass cocoon-view=debug as a URL parameter to see
  -  the pipeline output produced by the transofrmer
  -  labeled "debug". You can move the label to different
  -  transformers to understand each processing
  -  stage better.
  --->
  -<map:views>
  -  <map:view name="debug" from-label="debug">
  -    <map:serialize type="xml"/>
  -  </map:view>
  -  <map:view name="debug1" from-label="debug1">
  -    <map:serialize type="xml"/>
  -  </map:view>
  -  <map:view name="debug2" from-label="debug2">
  -    <map:serialize type="xml"/>
  -  </map:view>
  -  <map:view name="xml" from-label="xml">
  -    <map:serialize type="xml"/>
  -  </map:view>
  -</map:views>
  -
  -  <!-- =========================== Resources ================================= -->
  -
  -  <map:resources>
  -  </map:resources>
  -
  -  <!-- =========================== Pipelines ================================= -->
  -    <map:flow language="JavaScript">
  -      <map:script src="flow/PetStoreImpl.js"/>
  -      <map:script src="flow/petstore.js"/>
  -    </map:flow>
  -  <map:pipelines> 
  -
  -    <map:pipeline>
  -      <map:match pattern="*.kont">
  -        <map:call continuation="{1}"/> <!-- 
  -               This handles sendPage*() continuations.
  -           -->
  -      </map:match>
  -      <map:match pattern="*.do">
  -        <map:call function="main">
  -          <map:parameter name="page" value="{1}"/>
  -        </map:call>
  -      </map:match>
  -      <map:match pattern="petstore"> 
  -        <map:call function="jxForm"/> <!-- 
  -              Without parameters jxForm() handles continuations:
  -	      The pattern I'm matching here, "petstore", must match the value 
  -              of the "action" attribute in the view's <xf:submit> element
  -           -->
  -      </map:match>
  -      <map:match pattern="">
  -        <map:call function="index"/>
  -      </map:match>
  -      <map:match pattern="editAccount.form">
  -        <map:call function="jxForm">
  -          <map:parameter name="function" value="editAccountForm"/>
  -	  <map:parameter name="id" value="petstore-edit-account"/> <!--
  -                  The value I supply here, "petstore-edit-account", must match 
  -                  the "id" attribute of the view's <xf:form> element
  -             -->
  -          <map:parameter name="validator-schema-ns"/> <!-- no validator -->
  -          <map:parameter name="validator-schema"/> <!-- no validator -->
  -          <map:parameter name="scope" value="request"/>
  -        </map:call>
  -      </map:match>
  -
  -      <map:match pattern="view/jxforms/*.xml">
  -	      <!-- original JXForms document -->
  -	      <map:generate type="jxforms" src="view/jxforms/{1}.xml"/>
  -
  -	      <map:transform type="xalan" src="stylesheets/form2html.xsl"  label="debug1"/>
  -
  -	      <map:transform type="xalan" src="../jxforms/stylesheets/jxforms2html.xsl" />
  -
  -
  -	      <map:transform type="xalan" src="stylesheets/site2html.xsl"  label="debug1"/>
  -
  -	      <map:serialize type="html" />
  -	</map:match>	      
  -    </map:pipeline>
  -   <map:pipeline>
  -     <map:match pattern="view/*.xsp">
  -        <map:generate src="view/xsp/{1}.xsp" type="serverpages"/>
  -        <map:transform src="stylesheets/site2html.xsl" />
  -        <map:serialize type="html"/>
  -     </map:match>
  -     <map:match pattern="view/Cart.jxpath">
  -        <map:generate src="view/jxpath/Cart.xml" type="jx" />
  -        <map:serialize type="html"/>
  -     </map:match>
  -     <map:match pattern="view/*.jxpath">
  -        <map:generate src="view/jxpath/{1}.xml" type="file" />
  -        <map:transform type="jx" />
  -        <map:transform src="stylesheets/site2html.xsl" />
  -        <map:serialize type="html"/>
  -     </map:match>
  -     <map:match pattern="view/Cart.jexl">
  -        <map:generate src="view/jexl/Cart.xml" type="jx" />
  -        <map:serialize type="html"/>
  -     </map:match>
  -     <map:match pattern="view/*.jexl">
  -        <map:generate src="view/jexl/{1}.xml" type="jx" />
  -        <map:transform src="stylesheets/site2html.xsl" />
  -        <map:serialize type="html"/>
  -     </map:match>
  -     <map:match pattern="view/*.vm">
  -      <map:generate src="view/templates/{1}.vm" type="velocity"/>
  -      <map:serialize type="html"/>
  -     </map:match>
  -   </map:pipeline>
  -
  -   <map:pipeline>
  -   <map:match pattern="images/*.gif">
  -    <map:read mime-type="images/gif" src="images/{1}.gif"/>
  -   </map:match>
  -   </map:pipeline>
  -
  -
  -  </map:pipelines> 
  -  
  -</map:sitemap>
  -<!-- end of file -->
  -
  -
  -
  -
  -
  -
  -
  -
  +<?xml version="1.0"?>
  +
  +<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  +
  +  <!-- =========================== Components ================================ -->
  +  <map:components> 
  +    <map:transformers default="xslt">
  +      <map:transformer name="jx" src="org.apache.cocoon.transformation.JXTemplateTransformer" logger="jx.sitemap.transformer"/>
  +    </map:transformers>
  +    <map:generators default="file">
  +        <map:generator label="content,data" logger="sitemap.generator.velocity" name="velocity" src="org.apache.cocoon.generation.FlowVelocityGenerator"/>
  +        <map:generator label="content,data" logger="sitemap.generator.jx" name="jx" src="org.apache.cocoon.generation.JXTemplateGenerator"/>
  +      <map:generator name="jxforms" src="org.apache.cocoon.generation.JXFormsGenerator" logger="sitemap.generator.jxforms"/>
  +    </map:generators>
  +    <map:flow-interpreters default="JavaScript"/>
  +    <map:serializers default="html"/>
  +    <map:matchers default="wildcard"/>
  +  </map:components>
  +
  +
  +<!-- =========================== Views =================================== -->
  +
  +<!--
  +  The debug view can be used to output an intermediate 
  +  snapshot of the pipeline.
  +  Pass cocoon-view=debug as a URL parameter to see
  +  the pipeline output produced by the transofrmer
  +  labeled "debug". You can move the label to different
  +  transformers to understand each processing
  +  stage better.
  +-->
  +<map:views>
  +  <map:view name="debug" from-label="debug">
  +    <map:serialize type="xml"/>
  +  </map:view>
  +  <map:view name="debug1" from-label="debug1">
  +    <map:serialize type="xml"/>
  +  </map:view>
  +  <map:view name="debug2" from-label="debug2">
  +    <map:serialize type="xml"/>
  +  </map:view>
  +  <map:view name="xml" from-label="xml">
  +    <map:serialize type="xml"/>
  +  </map:view>
  +</map:views>
  +
  +  <!-- =========================== Resources ================================= -->
  +
  +  <map:resources>
  +  </map:resources>
  +
  +  <!-- =========================== Pipelines ================================= -->
  +    <map:flow language="JavaScript">
  +      <map:script src="flow/PetStoreImpl.js"/>
  +      <map:script src="flow/petstore.js"/>
  +    </map:flow>
  +  <map:pipelines> 
  +
  +    <map:pipeline>
  +      <map:match pattern="*.kont">
  +        <map:call continuation="{1}"/> <!-- 
  +               This handles sendPage*() continuations.
  +           -->
  +      </map:match>
  +      <map:match pattern="*.do">
  +        <map:call function="main">
  +          <map:parameter name="page" value="{1}"/>
  +        </map:call>
  +      </map:match>
  +      <map:match pattern="petstore"> 
  +        <map:call function="jxForm"/> <!-- 
  +              Without parameters jxForm() handles continuations:
  +	      The pattern I'm matching here, "petstore", must match the value 
  +              of the "action" attribute in the view's <xf:submit> element
  +           -->
  +      </map:match>
  +      <map:match pattern="">
  +        <map:call function="index"/>
  +      </map:match>
  +      <map:match pattern="editAccount.form">
  +        <map:call function="jxForm">
  +          <map:parameter name="function" value="editAccountForm"/>
  +	  <map:parameter name="id" value="petstore-edit-account"/> <!--
  +                  The value I supply here, "petstore-edit-account", must match 
  +                  the "id" attribute of the view's <xf:form> element
  +             -->
  +          <map:parameter name="validator-schema-ns"/> <!-- no validator -->
  +          <map:parameter name="validator-schema"/> <!-- no validator -->
  +          <map:parameter name="scope" value="request"/>
  +        </map:call>
  +      </map:match>
  +
  +      <map:match pattern="view/jxforms/*.xml">
  +	      <!-- original JXForms document -->
  +	      <map:generate type="jxforms" src="view/jxforms/{1}.xml"/>
  +
  +	      <map:transform type="xalan" src="stylesheets/form2html.xsl"  label="debug1"/>
  +
  +	      <map:transform type="xalan" src="../jxforms/stylesheets/jxforms2html.xsl" />
  +
  +
  +	      <map:transform type="xalan" src="stylesheets/site2html.xsl"  label="debug1"/>
  +
  +	      <map:serialize type="html" />
  +	</map:match>	      
  +    </map:pipeline>
  +   <map:pipeline>
  +     <map:match pattern="view/*.xsp">
  +        <map:generate src="view/xsp/{1}.xsp" type="serverpages"/>
  +        <map:transform src="stylesheets/site2html.xsl" />
  +        <map:serialize type="html"/>
  +     </map:match>
  +     <map:match pattern="view/Cart.jxpath">
  +        <map:generate src="view/jxpath/Cart.xml" type="jx" />
  +        <map:serialize type="html"/>
  +     </map:match>
  +     <map:match pattern="view/*.jxpath">
  +        <map:generate src="view/jxpath/{1}.xml" type="file" />
  +        <map:transform type="jx" />
  +        <map:transform src="stylesheets/site2html.xsl" />
  +        <map:serialize type="html"/>
  +     </map:match>
  +     <map:match pattern="view/Cart.jexl">
  +        <map:generate src="view/jexl/Cart.xml" type="jx" />
  +        <map:serialize type="html"/>
  +     </map:match>
  +     <map:match pattern="view/*.jexl">
  +        <map:generate src="view/jexl/{1}.xml" type="jx" />
  +        <map:transform src="stylesheets/site2html.xsl" />
  +        <map:serialize type="html"/>
  +     </map:match>
  +     <map:match pattern="view/*.vm">
  +      <map:generate src="view/templates/{1}.vm" type="velocity"/>
  +      <map:serialize type="html"/>
  +     </map:match>
  +   </map:pipeline>
  +
  +   <map:pipeline>
  +   <map:match pattern="images/*.gif">
  +    <map:read mime-type="images/gif" src="images/{1}.gif"/>
  +   </map:match>
  +   </map:pipeline>
  +
  +  </map:pipelines> 
  +</map:sitemap>
  +<!-- end of file -->
  
  
  
  1.5       +122 -120  cocoon-2.1/src/scratchpad/webapp/samples/petstore/stylesheets/form2html.xsl
  
  Index: form2html.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/stylesheets/form2html.xsl,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- form2html.xsl	3 May 2003 20:36:12 -0000	1.4
  +++ form2html.xsl	6 May 2003 14:13:02 -0000	1.5
  @@ -1,120 +1,122 @@
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  -  xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
  -	exclude-result-prefixes="xalan" >
  -
  -        <xsl:template match="/">
  -           <xsl:apply-templates />
  -        </xsl:template>
  -
  -	<xsl:template match="xf:form">
  -		<xf:form method="post">
  -			<xsl:copy-of select="@*" />
  -			<table cellpadding="10" cellspacing="0" border="1" align="center" bgcolor="#dddddd">
  -				<xsl:if test="count(error/xf:violation) > 0">
  -					<tr>
  -						<td align="left" colspan="3"
  -							class="{error/xf:violation[1]/@class}">
  -							<p>* [<b><xsl:value-of
  -								select="count(error/xf:violation)"/></b>] 
  -								error(s). Please fix these errors and submit the
  -								form again.</p>
  -							<p>
  -								<xsl:variable name="localViolations"
  -									select=".//xf:*[ child::xf:violation ]"/>
  -								<xsl:for-each select="error/xf:violation">
  -									<xsl:variable name="eref" select="./@ref"/>
  -									<xsl:if
  -										test="count ($localViolations[ @ref=$eref ]) = 0"
  -										>* <xsl:value-of select="." /> <br/> </xsl:if>
  -								</xsl:for-each>
  -							</p>
  -							<p/>
  -						</td>
  -					</tr>
  -				</xsl:if>
  -				<xsl:for-each select="*[name() != 'xf:submit']">
  -					<xsl:choose>
  -						<xsl:when test="name() = 'error'"/>
  -						<xsl:when test="name() = 'xf:label'"/>
  -						<xsl:when test="xf:*">
  -							<xsl:apply-templates select="."/>
  -						</xsl:when>
  -						<xsl:otherwise>
  -							<xsl:copy-of select="."/>
  -						</xsl:otherwise>
  -					</xsl:choose>
  -				</xsl:for-each>
  -				<tr>
  -					<td align="center" colspan="3">
  -						<xsl:for-each select="*[name() = 'xf:submit']">
  -							<xsl:copy-of select="." />
  -							<xsl:text>
  -							</xsl:text>
  -						</xsl:for-each>
  -					</td>
  -				</tr>
  -			</table>
  -		</xf:form>
  -	</xsl:template>
  -	<xsl:template match="xf:group">
  -		<tr>
  -                  <td>
  -                      <font color="darkgreen"><h3><xsl:value-of select="xf:label" /></h3></font>
  -				<table cellspacing="1" cellpadding="3" border="0" bgcolor="#008800">
  -					<xsl:apply-templates select="*"/>
  -				</table>
  -			</td>
  -		</tr>
  -	</xsl:template>
  -	<xsl:template match="xf:output[@form]">
  -		<div align="center">
  -			<hr width="30%"/>
  -			<br/>
  -			<font size="-1">
  -				<code> <xsl:value-of select="xf:label" /> : <xsl:copy-of
  -					select="." /> </code>
  -			</font>
  -			<br/>
  -		</div>
  -	</xsl:template>
  -	<xsl:template match="xf:label"/>
  -	<xsl:template match="xf:*">
  -		<tr bgcolor="#FFFF88">
  -			<td align="left" valign="top">
  -				<p class="label">
  -					<xsl:value-of select="xf:label" />
  -				</p>
  -			</td>
  -			<td align="left">
  -				<table class="plaintable">
  -					<tr bgcolor="#FFFF88">
  -						<td align="left">
  -							<xsl:copy-of select="." />
  -						</td>
  -						<xsl:if test="xf:violation">
  -							<td align="left" class="{xf:violation[1]/@class}" width="100%">
  -								<xsl:for-each select="xf:violation">* 
  -									<xsl:value-of select="." /> <br/> </xsl:for-each>
  -							</td>
  -						</xsl:if>
  -					</tr>
  -				</table>
  -				<xsl:if test="xf:help">
  -					<div class="help">
  -						<xsl:value-of select="xf:help" />
  -					</div>
  -					<br />
  -				</xsl:if>
  -			</td>
  -		</tr>
  -	</xsl:template>
  -   <!-- copy all the rest of the markup which is not recognized above -->
  -   <xsl:template match="*">
  -      <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
  -   </xsl:template>
  -
  -   <xsl:template match="text()">
  -      <xsl:value-of select="." />
  -   </xsl:template>
  -
  -</xsl:stylesheet>
  +<?xml version="1.0"?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  +                xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
  +	        exclude-result-prefixes="xalan" >
  +
  +        <xsl:template match="/">
  +           <xsl:apply-templates />
  +        </xsl:template>
  +
  +	<xsl:template match="xf:form">
  +		<xf:form method="post">
  +			<xsl:copy-of select="@*" />
  +			<table cellpadding="10" cellspacing="0" border="1" align="center" bgcolor="#dddddd">
  +				<xsl:if test="count(error/xf:violation) > 0">
  +					<tr>
  +						<td align="left" colspan="3"
  +							class="{error/xf:violation[1]/@class}">
  +							<p>* [<b><xsl:value-of
  +								select="count(error/xf:violation)"/></b>] 
  +								error(s). Please fix these errors and submit the
  +								form again.</p>
  +							<p>
  +								<xsl:variable name="localViolations"
  +									select=".//xf:*[ child::xf:violation ]"/>
  +								<xsl:for-each select="error/xf:violation">
  +									<xsl:variable name="eref" select="./@ref"/>
  +									<xsl:if
  +										test="count ($localViolations[ @ref=$eref ]) = 0"
  +										>* <xsl:value-of select="." /> <br/> </xsl:if>
  +								</xsl:for-each>
  +							</p>
  +							<p/>
  +						</td>
  +					</tr>
  +				</xsl:if>
  +				<xsl:for-each select="*[name() != 'xf:submit']">
  +					<xsl:choose>
  +						<xsl:when test="name() = 'error'"/>
  +						<xsl:when test="name() = 'xf:label'"/>
  +						<xsl:when test="xf:*">
  +							<xsl:apply-templates select="."/>
  +						</xsl:when>
  +						<xsl:otherwise>
  +							<xsl:copy-of select="."/>
  +						</xsl:otherwise>
  +					</xsl:choose>
  +				</xsl:for-each>
  +				<tr>
  +					<td align="center" colspan="3">
  +						<xsl:for-each select="*[name() = 'xf:submit']">
  +							<xsl:copy-of select="." />
  +							<xsl:text>
  +							</xsl:text>
  +						</xsl:for-each>
  +					</td>
  +				</tr>
  +			</table>
  +		</xf:form>
  +	</xsl:template>
  +	<xsl:template match="xf:group">
  +		<tr>
  +                  <td>
  +                      <font color="darkgreen"><h3><xsl:value-of select="xf:label" /></h3></font>
  +				<table cellspacing="1" cellpadding="3" border="0" bgcolor="#008800">
  +					<xsl:apply-templates select="*"/>
  +				</table>
  +			</td>
  +		</tr>
  +	</xsl:template>
  +	<xsl:template match="xf:output[@form]">
  +		<div align="center">
  +			<hr width="30%"/>
  +			<br/>
  +			<font size="-1">
  +				<code> <xsl:value-of select="xf:label" /> : <xsl:copy-of
  +					select="." /> </code>
  +			</font>
  +			<br/>
  +		</div>
  +	</xsl:template>
  +	<xsl:template match="xf:label"/>
  +	<xsl:template match="xf:*">
  +		<tr bgcolor="#FFFF88">
  +			<td align="left" valign="top">
  +				<p class="label">
  +					<xsl:value-of select="xf:label" />
  +				</p>
  +			</td>
  +			<td align="left">
  +				<table class="plaintable">
  +					<tr bgcolor="#FFFF88">
  +						<td align="left">
  +							<xsl:copy-of select="." />
  +						</td>
  +						<xsl:if test="xf:violation">
  +							<td align="left" class="{xf:violation[1]/@class}" width="100%">
  +								<xsl:for-each select="xf:violation">* 
  +									<xsl:value-of select="." /> <br/> </xsl:for-each>
  +							</td>
  +						</xsl:if>
  +					</tr>
  +				</table>
  +				<xsl:if test="xf:help">
  +					<div class="help">
  +						<xsl:value-of select="xf:help" />
  +					</div>
  +					<br />
  +				</xsl:if>
  +			</td>
  +		</tr>
  +	</xsl:template>
  +   <!-- copy all the rest of the markup which is not recognized above -->
  +   <xsl:template match="*">
  +      <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
  +   </xsl:template>
  +
  +   <xsl:template match="text()">
  +      <xsl:value-of select="." />
  +   </xsl:template>
  +
  +</xsl:stylesheet>
  
  
  
  1.11      +602 -603  cocoon-2.1/src/scratchpad/webapp/samples/petstore/stylesheets/site2html.xsl
  
  Index: site2html.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/stylesheets/site2html.xsl,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- site2html.xsl	3 May 2003 21:03:30 -0000	1.10
  +++ site2html.xsl	6 May 2003 14:13:02 -0000	1.11
  @@ -1,603 +1,602 @@
  -<?xml version="1.0" encoding="utf-8"?>
  -
  -
  -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  -	exclude-result-prefixes="xalan" >
  -
  -	<xsl:template match="site">
  -		<html>
  -			<head>
  -				<meta content="text/html; charset=windows-1252" http-equiv="Content-Type" />
  -				<meta HTTP-EQUIV="Cache-Control" CONTENT="max-age=0"/>
  -				<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"/>
  -				<meta http-equiv="expires" content="0"/>
  -				<meta HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT"/>
  -				<meta HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
  -			</head>
  -			<body bgcolor="white">
  -				<table background="images/bkg-topbar.gif" border="0" cellspacing="0" cellpadding="5" width="100%">
  -					<tbody>
  -						<tr>
  -							<td>
  -							   <form method="post" action="index.do">
  -								 <input type="image" border="0" src="images/logo-topbar.gif" />
  -								   <select name="view" width="14" align="left" onChange="document.forms[0].submit()">
  -								<xsl:choose>
  -									<xsl:when test="@view='jxpath'">
  -									  <option value="JXPath">JXPath</option>
  -									  <option value="Jexl">Jexl</option>
  -									  <option value="Xsp">Xsp</option>
  -									  <option value="Velocity">Velocity</option>
  -                                                                        </xsl:when>
  -									<xsl:when test="@view='jexl'">
  -									  <option value="Jexl">Jexl</option>
  -									  <option value="JXPath">JXPath</option>
  -									  <option value="Xsp">Xsp</option>
  -									  <option value="Velocity">Velocity</option>
  -                                                                        </xsl:when>
  -									<xsl:otherwise>
  -									  <option value="Xsp">Xsp</option>
  -									  <option value="JXPath">JXPath</option>
  -									  <option value="Jexl">Jexl</option>
  -									  <option value="Velocity">Velocity</option>
  -									</xsl:otherwise>
  -							              </xsl:choose>
  -								   </select>
  -							   </form>
  -							</td>
  -							<td align="right">
  -								<a href="viewCart.do"><img border="0" name="img_cart" src="images/cart.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
  -								<xsl:choose>
  -									<xsl:when test="@signOn='true'">
  -										<a href="signonForm.do"><img border="0" name="img_signin" src="images/sign-in.gif" /></a>
  -									</xsl:when>
  -									<xsl:otherwise>
  -										<a href="signonForm.do?signoff=true"><img border="0" name="img_signout" src="images/sign-out.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
  -										<a href="editAccount.form"><img border="0" name="img_myaccount" src="images/my_account.gif" /></a>
  -									</xsl:otherwise>
  -								</xsl:choose>
  -								<img border="0" src="images/separator.gif" hspace="4" /><a href="../help.html"><img border="0" name="img_help" src="images/help.gif" /></a>
  -							</td>
  -							<td align="left" valign="bottom">
  -								<form method="post" action="searchProducts.do">
  -									<input name="keyword" size="14" />
  -									<input border="0" src="images/search.gif" type="image" />
  -								</form>
  -							</td>
  -						</tr>
  -					</tbody>
  -				</table>
  -				<center>
  -					<a href="viewCategory.do?categoryId=FISH"><img border="0" src="images/sm_fish.gif" /></a> 
  -					<img border="0" src="images/separator.gif" hspace="4" /> 
  -					<a href="viewCategory.do?categoryId=DOGS"><img border="0" src="images/sm_dogs.gif" /></a> 
  -					<img border="0" src="images/separator.gif" hspace="4" /> 
  -					<a href="viewCategory.do?categoryId=REPTILES"><img border="0" src="images/sm_reptiles.gif" /></a> 
  -					<img border="0" src="images/separator.gif" hspace="4" /> 
  -					<a href="viewCategory.do?categoryId=CATS"><img border="0" src="images/sm_cats.gif" /></a> 
  -					<img border="0" src="images/separator.gif" hspace="4" />
  -					<a href="viewCategory.do?categoryId=BIRDS"><img border="0" src="images/sm_birds.gif" /></a> 
  -				</center>
  -				<xsl:apply-templates/>
  -				<br/>
  -				<p align="center">
  -					<a href="http://cocoon.apache.org"><img border="0" align="center" src="images/cocoon.gif" /></a>
  -				</p>
  -			</body>
  -		</html>
  -	</xsl:template>
  -
  -	<xsl:template match="welcome">
  -		<table border="0" cellspacing="0" width="100%">
  -			<tbody>
  -				<tr>
  -					<td valign="top" width="100%">
  -						<table align="left" border="0" cellspacing="0" width="80%">
  -							<tbody>
  -								<tr>
  -									<td valign="top">
  -										<xsl:apply-templates/>
  -									</td>
  -									<td align="center" bgcolor="white" height="300" width="100%">
  -										<map name="estoremap">
  -											<area alt="Birds" coords="72,2,280,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
  -											<area alt="Fish" coords="2,180,72,250" href="viewCategory.do?categoryId=FISH" shape="RECT" />
  -											<area alt="Dogs" coords="60,250,130,320" href="viewCategory.do?categoryId=DOGS" shape="RECT" />
  -											<area alt="Reptiles" coords="140,270,210,340" href="viewCategory.do?categoryId=REPTILES" shape="RECT" />
  -											<area alt="Cats" coords="225,240,295,310" href="viewCategory.do?categoryId=CATS" shape="RECT" />
  -											<area alt="Birds" coords="280,180,350,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
  -										</map>
  -										<img border="0" height="355" src="images/splash.gif" align="center" usemap="#estoremap" width="350" />
  -									</td>
  -								</tr>
  -							</tbody>
  -						</table>
  -					</td>
  -				</tr>
  -			</tbody>
  -		</table>
  -	</xsl:template>
  -
  -	<xsl:template match="menu">
  -		<table bgcolor="#FFFF88" border="0" cellspacing="0" cellpadding="5" width="200">
  -			<tbody>
  -				<tr>
  -					<td>
  -						<!-- 
  -						#if (!$accountForm.signOn)
  -						<b><i><font size="2" color="BLACK">Welcome $accountForm.account.firstName!</font></i></b>
  -						#end
  -						-->
  -					</td>
  -				</tr>
  -				<xsl:apply-templates/>
  -			</tbody>
  -		</table>
  -	</xsl:template>
  -
  -	<xsl:template match="menu/category">
  -		<tr>
  -			<td>
  -				<a href="viewCategory.do?categoryId={@id}"><i><h2><xsl:value-of select="@name" /></h2></i></a>
  -			</td>
  -		</tr>
  -	</xsl:template>
  -
  -	<xsl:template match="backpointer">
  -		<table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  -			<tr>
  -				<td bgcolor="#FFFF88">
  -					<a href="{@do}"><b><font color="BLACK" size="2">&lt;&lt; <xsl:value-of select="@name" /></font></b></a>
  -				</td>
  -			</tr>
  -		</table>
  -	</xsl:template>
  -
  -	<xsl:template match="category">
  -		<p>
  -			<center>
  -				<h2><xsl:value-of select="@name" /></h2>
  -			</center>
  -			<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
  -				<tr bgcolor="#CCCCCC">
  -					<td>
  -						<b>Product ID</b>
  -					</td>
  -					<td>
  -						<b>Name</b>
  -					</td>
  -				</tr>
  -				<xsl:apply-templates/>
  -			</table>
  -		</p>
  -	</xsl:template>
  -
  -	<xsl:template match="category/product">
  -		<tr bgcolor="#FFFF88">
  -			<td>
  -				<b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
  -			</td>
  -			<td>
  -				<xsl:value-of select="@name" />
  -			</td>
  -		</tr>
  -	</xsl:template>
  -	
  -	<xsl:template match="search">
  -		<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
  -			<tr bgcolor="#CCCCCC">
  -				<td></td>
  -				<td>
  -					<b>Product ID</b>
  -				</td>
  -				<td>
  -					<b>Name</b>
  -				</td>
  -			</tr>
  -			
  -			<xsl:apply-templates/>
  -		</table>
  -
  -	</xsl:template>
  -
  -	<xsl:template match="search/product">
  -		<tr bgcolor="#FFFF88">
  -			<td><a href="viewProduct.do?productId={@id}"><xsl:value-of select="product-desc" /></a></td>
  -			<td>
  -				<b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
  -			</td>
  -			<td><xsl:value-of select="@name" /></td>
  -		</tr>
  -	</xsl:template>
  -
  -	<xsl:template match="situation">
  -		<tr>
  -			<td>
  -				<xsl:if test="@firstPage='false'" >
  -					<a href="{@continuation}.kont?page=previous"><font color="white"><B>&lt;&lt; Prev</B></font></a>
  -				</xsl:if>
  -				<xsl:if test="@lastPage='false'" >
  -					<a href="{@continuation}.kont?page=next"><font color="white"><B>Next &gt;&gt;</B></font></a>
  -				</xsl:if>
  -			</td>
  -		</tr>
  -	</xsl:template>
  -
  -	<xsl:template match="product">
  -		<p>
  -			<center>
  -				<b><font size="4"><xsl:value-of select="@name" /></font></b>
  -			</center>
  -			
  -			<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
  -				<tr bgcolor="#CCCCCC">
  -					<td><b>Item ID</b></td>
  -					<td><b>Product ID</b></td>
  -					<td><b>Description</b></td>
  -					<td><b>List Price</b></td>
  -					<td></td>
  -				</tr>
  -				<xsl:apply-templates/>
  -			</table>
  -		</p>
  -	</xsl:template>
  -
  -	<xsl:template match="product/item">
  -		<tr bgcolor="#FFFF88">
  -			<td>
  -				<b><a href="viewItem.do?itemId={@id}"><xsl:value-of select="@id" /></a></b>
  -			</td>
  -			<td>
  -				<b><xsl:value-of select="@product-id" /></b>
  -			</td>
  -			<td>
  -				<xsl:value-of select="desc" /><xsl:text> </xsl:text><xsl:value-of select="../@name" />
  -			</td>
  -			<td>
  -				<xsl:text>$</xsl:text> <xsl:value-of select="price" />
  -			</td>
  -			<td>
  -				<a href="addItemToCart.do?itemId={@id}"><img border="0" src="images/button_add_to_cart.gif" /></a>
  -			</td>
  -		</tr>
  -	</xsl:template>
  -
  -	<xsl:template name="cart-common-columns">
  -		<td><b>Item ID</b></td>
  -		<td><b>Product ID</b></td>
  -		<td><b>Description</b></td>
  -		<td><b>Quantity</b></td>
  -		<td><b>List Price</b></td>
  -	</xsl:template>
  -
  -	<xsl:template match="cart[@name='Shopping Cart']">
  -		<table border="0" width="100%" cellspacing="0" cellpadding="0">
  -			<tr>
  -				<td valign="top" width="20%" align="left">
  -					<xsl:apply-templates select="backpointer" />
  -				</td>
  -				<td valign="top" align="center">
  -					<h2 align="center"><xsl:value-of select="@name" /></h2>
  -					<form action="updateCartQuantities.do" method="post" >
  -						<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
  -							<tr bgcolor="#cccccc">
  -								<xsl:call-template name="cart-common-columns" />
  -								<td></td>
  -							</tr>
  -							<xsl:if test="not(item)">
  -								<tr bgcolor="#FFFF88">
  -									<td colspan="6">
  -										<b>Your cart is empty.</b>
  -									</td>
  -								</tr>
  -							</xsl:if>
  -							<xsl:apply-templates select="item" />
  -							<tr bgcolor="#FFFF88">
  -								<td colspan="5" align="right">
  -									<b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
  -									<input type="image" border="0" src="images/button_update_cart.gif" name="update" />
  -								</td>
  -								<td></td>
  -							</tr>
  -						</table>
  -					</form>
  -					<xsl:if test="item">
  -						<xsl:apply-templates select="nextpointer" />
  -					</xsl:if>
  -				</td>
  -				<td valign="top" width="20%" align="right">
  -				</td>
  -			</tr>
  -		</table>
  -	</xsl:template>
  -
  -	<xsl:template match="cart[@name='Checkout Summary']">
  -		<table border="0" width="100%" cellspacing="0" cellpadding="0">
  -			<tr>
  -				<td valign="top" width="20%" align="left">
  -					<xsl:apply-templates select="backpointer" />
  -				</td>
  -				<td valign="top" align="center">
  -					<h2 align="center"><xsl:value-of select="@name" /></h2>
  -						<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
  -							<tr bgcolor="#cccccc">
  -								<xsl:call-template name="cart-common-columns" />
  -							</tr>
  -							<xsl:apply-templates select="item" />
  -							<tr bgcolor="#FFFF88">
  -								<td colspan="5" align="right">
  -									<b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
  -								</td>
  -							</tr>
  -						</table>
  -						<xsl:apply-templates select="nextpointer" />
  -				</td>
  -				<td valign="top" width="20%" align="right">
  -				</td>
  -			</tr>
  -		</table>
  -	</xsl:template>
  -
  -	<xsl:template match="cart[@name='Status']">
  -		<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
  -			<tr bgcolor="#cccccc">
  -				<xsl:call-template name="cart-common-columns" />
  -			</tr>
  -			<xsl:apply-templates select="item" />
  -			<tr bgcolor="#FFFF88">
  -				<td colspan="5" align="right">
  -					<b>Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
  -				</td>
  -			</tr>
  -		</table>
  -	</xsl:template>
  -
  -
  -	<xsl:template match="nextpointer">
  -		<br />
  -			<center>
  -				<a href="{@do}"><img border="0" src="{@img}" /></a>
  -			</center>
  -	</xsl:template>
  -
  -
  -	<xsl:template match="cart/item">
  -		<tr bgcolor="#FFFF88">
  -			<td>
  -				<b><xsl:value-of select="@id" /></b>
  -			</td>
  -			<td>
  -				<xsl:value-of select="@product-id" />
  -			</td>
  -			 <td>
  -					<xsl:value-of select="desc" />
  -			 </td>
  -			<td align="center">
  -				<xsl:choose>
  -					<xsl:when test="../@name='Shopping Cart'">
  -						<input type="text" size="3" name="{@id}" >
  -							<xsl:attribute name="value"><xsl:value-of select="format-number (quantity, '####')"/></xsl:attribute>
  -						</input>
  -					</xsl:when>
  -					<xsl:otherwise>
  -						<xsl:value-of select="format-number (quantity, '####')"/>
  -					</xsl:otherwise>
  -				</xsl:choose>
  -			</td>
  -			<td align="right">
  -				$<xsl:value-of select="format-number (price, '###,##0.00')"/>
  -			</td>
  -			<xsl:if test="../@name='Shopping Cart'">
  -				<td>
  -					<a href="removeItemFromCart.do?workingItemId={@id}"><img border="0" src="images/button_remove.gif" /></a>
  -				</td>
  -			</xsl:if>
  -		</tr>
  -	</xsl:template>
  -	
  -	
  -
  -
  -	<xsl:template match="item">
  -		<p>
  -			<table align="center" bgcolor="#008800" cellspacing="2" cellpadding="3" border="0" width="60%">
  -				<tr bgcolor="#FFFF88">
  -					<td bgcolor="#FFFFFF">
  -						<xsl:value-of select="product-desc" />
  -					</td>
  -				</tr>
  -				<tr bgcolor="#FFFF88">
  -					<td width="100%" bgcolor="#cccccc">
  -					  <b><xsl:value-of select="@id" /></b>
  -					</td>
  -				</tr>
  -				<tr bgcolor="#FFFF88">
  -					<td>
  -						<b><font size="4"><xsl:value-of select="desc" /></font></b>
  -					</td>
  -				</tr>
  -				<tr bgcolor="#FFFF88">
  -					<td>
  -						<font size="3"><i><xsl:value-of select="product-name" /></i></font>
  -					</td>
  -				</tr>
  -					<!-- quantity stuff still missing -->
  -				
  -				<tr bgcolor="#FFFF88">
  -					<td>
  -						<xsl:value-of select="format-number (instock, '####')"/> in stock.
  -					</td>
  -				</tr>
  -				<tr bgcolor="#FFFF88">
  -					<td>
  -						$<xsl:value-of select="format-number (price, '###,##0.00')"/>
  -					</td>
  -				</tr>
  -				<tr bgcolor="#FFFF88">
  -					<td>
  -						<a href="addItemToCart.do?itemId={@id}" ><img border="0" src="images/button_add_to_cart.gif" /></a>
  -					</td>
  -				</tr>
  -			</table>
  -		</p>
  -	</xsl:template>
  -
  -	<xsl:template match="editAccountForm">
  -             <xsl:copy-of select="*"/>
  -        </xsl:template>
  -
  -	<xsl:template match="form[@styleId='workingAccountForm']">
  -		<form>
  -			<xsl:copy-of select="@action | @method | @styleId "/>
  -			<xsl:choose>
  -				<xsl:when test="/site/@signOn='true'">
  -					<hidden name="workingAccountForm" property="validate" value="newAccount"/>
  -				</xsl:when>
  -				<xsl:otherwise>
  -					<hidden name="workingAccountForm" property="validate" value="editAccount" />
  -					<hidden name="workingAccountForm" property="account.username" />
  -				</xsl:otherwise>
  -			</xsl:choose>
  -			<table cellpadding="10" cellspacing="0" align="center" border="1" bgcolor="#dddddd">
  -				<tr>
  -					<td>
  -					<xsl:apply-templates/>
  -					</td>
  -				</tr>
  -			</table>
  -			<br />
  -			<center>
  -				<input border="0" type="image" src="images/button_submit.gif" name="submit" value="Save Account Information" />
  -			</center>
  -		</form>
  -		<xsl:if test="/site/@signOn='false'">
  -			<p>
  -				<center><b><a href="listOrders.do">My Orders</a></b></center>
  -			</p>
  -		</xsl:if>
  -	</xsl:template>
  -
  -	
  -	<xsl:template match="form[@styleId='workingOrderForm']">
  -		<b><font color="RED"><xsl:value-of select="message" /></font></b>
  -		<form>
  -			<xsl:copy-of select="@action | @method | @styleId"/>
  -				<xsl:apply-templates/>
  -                <p><center>
  -			<input type="image" src="images/button_submit.gif"/>
  -                 </center>
  -		</p>
  -		</form>
  -	</xsl:template>
  -	
  -	<xsl:template match="form[@label='signon']">
  -		<xsl:apply-templates select="message"/>
  -		<form>
  -			<xsl:copy-of select="@action | @method"/>
  -			<table align="center" border="0">
  -				<tr>
  -					<td colspan="2">Please enter your username and password.<br /> </td>
  -				</tr>
  -				<xsl:apply-templates select="input"/>
  -			</table>
  -		</form>
  -	</xsl:template>
  -	
  -	
  -	<xsl:template match="panel[panel]">
  -		<table width="60%" align="center" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
  -			<xsl:if test="@header">
  -				<tr bgcolor="#FFFF88">
  -					<td align="center" colspan="2">
  -						<font size="4"><b><xsl:value-of select="@header" /></b></font>
  -						<xsl:if test="@subheader">
  -							<br /><font size="3"><b><xsl:value-of select="@subheader" /></b></font>
  -						</xsl:if>
  -					</td>
  -				</tr>
  -			</xsl:if>
  -			<xsl:apply-templates/>
  -		</table>
  -	</xsl:template>
  -	
  -	<xsl:template match="panel">
  -		<font color="darkgreen"><h3><xsl:value-of select="@label" /></h3></font>
  -		<table border="0" cellpadding="3" cellspacing="1" bgcolor="#008800">
  -			<xsl:apply-templates/>
  -		</table>
  -	</xsl:template>
  -	
  -	<xsl:template match="panel/panel">
  -		<tr bgcolor="#FFFF88">
  -			<td colspan="2">
  -				<font color="GREEN" size="4"><b><xsl:value-of select="@label" />:</b></font>
  -			</td>
  -		</tr>
  -		<xsl:apply-templates/>
  -	</xsl:template>
  -	
  -	<xsl:template match="panel/select">
  -		<tr bgcolor="#FFFF88">
  -			<td><xsl:value-of select="@label" /></td>
  -			<td>
  -				<select>
  -					<xsl:copy-of select="@type | @src | @value | @name | @size | @selected | node()" />
  -				</select>
  -			</td>
  -		</tr>
  -	</xsl:template>
  -	
  -	<xsl:template match="panel/input">
  -		<tr bgcolor="#FFFF88">
  -			<td><xsl:value-of select="@label" /></td>
  -			<td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
  -		</tr>
  -	</xsl:template>
  -	
  -	<xsl:template match="panel/field">
  -		<tr bgcolor="#FFFF88">
  -			<td><xsl:value-of select="@label" />:</td>
  -			<td><xsl:value-of select="." /></td>
  -		</tr>
  -	</xsl:template>
  -
  -	<xsl:template match="panel/field[@empty]">
  -		<tr bgcolor="#FFFF88">
  -			<td colspan="{@empty}"><xsl:value-of select="@label" />
  -				<xsl:apply-templates />
  -			</td>
  -		</tr>
  -	</xsl:template>
  -
  -	<xsl:template match="message">
  -		<br clear="all" />
  -			<center>
  -				<b>
  -					<font size="4">
  -						<xsl:if test="@type='warning'">
  -							<xsl:attribute name="color">RED</xsl:attribute> 
  -						</xsl:if>
  -						<xsl:value-of select="." />
  -					</font>
  -				</b>
  -			</center>
  -		<br clear="all" />
  -	</xsl:template>
  -
  -	
  -	<xsl:template match="input">
  -		<tr>
  -			<td><xsl:value-of select="@label" /></td>
  -			<td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
  -		</tr>
  -	</xsl:template>
  -	
  -
  -	<xsl:template match="register">
  -		<center>
  -			<a href="newAccountForm.do"><img border="0" src="images/button_register_now.gif" /></a>
  -		</center>
  -	</xsl:template>
  -
  -</xsl:stylesheet>
  -
  +<?xml version="1.0" encoding="utf-8"?>
  +
  +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  +	exclude-result-prefixes="xalan" >
  +
  +	<xsl:template match="site">
  +		<html>
  +			<head>
  +				<meta content="text/html; charset=windows-1252" http-equiv="Content-Type" />
  +				<meta HTTP-EQUIV="Cache-Control" CONTENT="max-age=0"/>
  +				<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"/>
  +				<meta http-equiv="expires" content="0"/>
  +				<meta HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT"/>
  +				<meta HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
  +			</head>
  +			<body bgcolor="white">
  +				<table background="images/bkg-topbar.gif" border="0" cellspacing="0" cellpadding="5" width="100%">
  +					<tbody>
  +						<tr>
  +							<td>
  +							   <form method="post" action="index.do">
  +								 <input type="image" border="0" src="images/logo-topbar.gif" />
  +								   <select name="view" width="14" align="left" onChange="document.forms[0].submit()">
  +								<xsl:choose>
  +									<xsl:when test="@view='jxpath'">
  +									  <option value="JXPath">JXPath</option>
  +									  <option value="Jexl">Jexl</option>
  +									  <option value="Xsp">Xsp</option>
  +									  <option value="Velocity">Velocity</option>
  +                                                                        </xsl:when>
  +									<xsl:when test="@view='jexl'">
  +									  <option value="Jexl">Jexl</option>
  +									  <option value="JXPath">JXPath</option>
  +									  <option value="Xsp">Xsp</option>
  +									  <option value="Velocity">Velocity</option>
  +                                                                        </xsl:when>
  +									<xsl:otherwise>
  +									  <option value="Xsp">Xsp</option>
  +									  <option value="JXPath">JXPath</option>
  +									  <option value="Jexl">Jexl</option>
  +									  <option value="Velocity">Velocity</option>
  +									</xsl:otherwise>
  +							              </xsl:choose>
  +								   </select>
  +							   </form>
  +							</td>
  +							<td align="right">
  +								<a href="viewCart.do"><img border="0" name="img_cart" src="images/cart.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
  +								<xsl:choose>
  +									<xsl:when test="@signOn='true'">
  +										<a href="signonForm.do"><img border="0" name="img_signin" src="images/sign-in.gif" /></a>
  +									</xsl:when>
  +									<xsl:otherwise>
  +										<a href="signonForm.do?signoff=true"><img border="0" name="img_signout" src="images/sign-out.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
  +										<a href="editAccount.form"><img border="0" name="img_myaccount" src="images/my_account.gif" /></a>
  +									</xsl:otherwise>
  +								</xsl:choose>
  +								<img border="0" src="images/separator.gif" hspace="4" /><a href="../help.html"><img border="0" name="img_help" src="images/help.gif" /></a>
  +							</td>
  +							<td align="left" valign="bottom">
  +								<form method="post" action="searchProducts.do">
  +									<input name="keyword" size="14" />
  +									<input border="0" src="images/search.gif" type="image" />
  +								</form>
  +							</td>
  +						</tr>
  +					</tbody>
  +				</table>
  +				<center>
  +					<a href="viewCategory.do?categoryId=FISH"><img border="0" src="images/sm_fish.gif" /></a> 
  +					<img border="0" src="images/separator.gif" hspace="4" /> 
  +					<a href="viewCategory.do?categoryId=DOGS"><img border="0" src="images/sm_dogs.gif" /></a> 
  +					<img border="0" src="images/separator.gif" hspace="4" /> 
  +					<a href="viewCategory.do?categoryId=REPTILES"><img border="0" src="images/sm_reptiles.gif" /></a> 
  +					<img border="0" src="images/separator.gif" hspace="4" /> 
  +					<a href="viewCategory.do?categoryId=CATS"><img border="0" src="images/sm_cats.gif" /></a> 
  +					<img border="0" src="images/separator.gif" hspace="4" />
  +					<a href="viewCategory.do?categoryId=BIRDS"><img border="0" src="images/sm_birds.gif" /></a> 
  +				</center>
  +				<xsl:apply-templates/>
  +				<br/>
  +				<p align="center">
  +					<a href="http://cocoon.apache.org"><img border="0" align="center" src="images/cocoon.gif" /></a>
  +				</p>
  +			</body>
  +		</html>
  +	</xsl:template>
  +
  +	<xsl:template match="welcome">
  +		<table border="0" cellspacing="0" width="100%">
  +			<tbody>
  +				<tr>
  +					<td valign="top" width="100%">
  +						<table align="left" border="0" cellspacing="0" width="80%">
  +							<tbody>
  +								<tr>
  +									<td valign="top">
  +										<xsl:apply-templates/>
  +									</td>
  +									<td align="center" bgcolor="white" height="300" width="100%">
  +										<map name="estoremap">
  +											<area alt="Birds" coords="72,2,280,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
  +											<area alt="Fish" coords="2,180,72,250" href="viewCategory.do?categoryId=FISH" shape="RECT" />
  +											<area alt="Dogs" coords="60,250,130,320" href="viewCategory.do?categoryId=DOGS" shape="RECT" />
  +											<area alt="Reptiles" coords="140,270,210,340" href="viewCategory.do?categoryId=REPTILES" shape="RECT" />
  +											<area alt="Cats" coords="225,240,295,310" href="viewCategory.do?categoryId=CATS" shape="RECT" />
  +											<area alt="Birds" coords="280,180,350,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
  +										</map>
  +										<img border="0" height="355" src="images/splash.gif" align="center" usemap="#estoremap" width="350" />
  +									</td>
  +								</tr>
  +							</tbody>
  +						</table>
  +					</td>
  +				</tr>
  +			</tbody>
  +		</table>
  +	</xsl:template>
  +
  +	<xsl:template match="menu">
  +		<table bgcolor="#FFFF88" border="0" cellspacing="0" cellpadding="5" width="200">
  +			<tbody>
  +				<tr>
  +					<td>
  +						<!-- 
  +						#if (!$accountForm.signOn)
  +						<b><i><font size="2" color="BLACK">Welcome $accountForm.account.firstName!</font></i></b>
  +						#end
  +						-->
  +					</td>
  +				</tr>
  +				<xsl:apply-templates/>
  +			</tbody>
  +		</table>
  +	</xsl:template>
  +
  +	<xsl:template match="menu/category">
  +		<tr>
  +			<td>
  +				<a href="viewCategory.do?categoryId={@id}"><i><h2><xsl:value-of select="@name" /></h2></i></a>
  +			</td>
  +		</tr>
  +	</xsl:template>
  +
  +	<xsl:template match="backpointer">
  +		<table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  +			<tr>
  +				<td bgcolor="#FFFF88">
  +					<a href="{@do}"><b><font color="BLACK" size="2">&lt;&lt; <xsl:value-of select="@name" /></font></b></a>
  +				</td>
  +			</tr>
  +		</table>
  +	</xsl:template>
  +
  +	<xsl:template match="category">
  +		<p>
  +			<center>
  +				<h2><xsl:value-of select="@name" /></h2>
  +			</center>
  +			<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
  +				<tr bgcolor="#CCCCCC">
  +					<td>
  +						<b>Product ID</b>
  +					</td>
  +					<td>
  +						<b>Name</b>
  +					</td>
  +				</tr>
  +				<xsl:apply-templates/>
  +			</table>
  +		</p>
  +	</xsl:template>
  +
  +	<xsl:template match="category/product">
  +		<tr bgcolor="#FFFF88">
  +			<td>
  +				<b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
  +			</td>
  +			<td>
  +				<xsl:value-of select="@name" />
  +			</td>
  +		</tr>
  +	</xsl:template>
  +	
  +	<xsl:template match="search">
  +		<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
  +			<tr bgcolor="#CCCCCC">
  +				<td></td>
  +				<td>
  +					<b>Product ID</b>
  +				</td>
  +				<td>
  +					<b>Name</b>
  +				</td>
  +			</tr>
  +			
  +			<xsl:apply-templates/>
  +		</table>
  +
  +	</xsl:template>
  +
  +	<xsl:template match="search/product">
  +		<tr bgcolor="#FFFF88">
  +			<td><a href="viewProduct.do?productId={@id}"><xsl:value-of select="product-desc" /></a></td>
  +			<td>
  +				<b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
  +			</td>
  +			<td><xsl:value-of select="@name" /></td>
  +		</tr>
  +	</xsl:template>
  +
  +	<xsl:template match="situation">
  +		<tr>
  +			<td>
  +				<xsl:if test="@firstPage='false'" >
  +					<a href="{@continuation}.kont?page=previous"><font color="white"><B>&lt;&lt; Prev</B></font></a>
  +				</xsl:if>
  +				<xsl:if test="@lastPage='false'" >
  +					<a href="{@continuation}.kont?page=next"><font color="white"><B>Next &gt;&gt;</B></font></a>
  +				</xsl:if>
  +			</td>
  +		</tr>
  +	</xsl:template>
  +
  +	<xsl:template match="product">
  +		<p>
  +			<center>
  +				<b><font size="4"><xsl:value-of select="@name" /></font></b>
  +			</center>
  +			
  +			<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
  +				<tr bgcolor="#CCCCCC">
  +					<td><b>Item ID</b></td>
  +					<td><b>Product ID</b></td>
  +					<td><b>Description</b></td>
  +					<td><b>List Price</b></td>
  +					<td></td>
  +				</tr>
  +				<xsl:apply-templates/>
  +			</table>
  +		</p>
  +	</xsl:template>
  +
  +	<xsl:template match="product/item">
  +		<tr bgcolor="#FFFF88">
  +			<td>
  +				<b><a href="viewItem.do?itemId={@id}"><xsl:value-of select="@id" /></a></b>
  +			</td>
  +			<td>
  +				<b><xsl:value-of select="@product-id" /></b>
  +			</td>
  +			<td>
  +				<xsl:value-of select="desc" /><xsl:text> </xsl:text><xsl:value-of select="../@name" />
  +			</td>
  +			<td>
  +				<xsl:text>$</xsl:text> <xsl:value-of select="price" />
  +			</td>
  +			<td>
  +				<a href="addItemToCart.do?itemId={@id}"><img border="0" src="images/button_add_to_cart.gif" /></a>
  +			</td>
  +		</tr>
  +	</xsl:template>
  +
  +	<xsl:template name="cart-common-columns">
  +		<td><b>Item ID</b></td>
  +		<td><b>Product ID</b></td>
  +		<td><b>Description</b></td>
  +		<td><b>Quantity</b></td>
  +		<td><b>List Price</b></td>
  +	</xsl:template>
  +
  +	<xsl:template match="cart[@name='Shopping Cart']">
  +		<table border="0" width="100%" cellspacing="0" cellpadding="0">
  +			<tr>
  +				<td valign="top" width="20%" align="left">
  +					<xsl:apply-templates select="backpointer" />
  +				</td>
  +				<td valign="top" align="center">
  +					<h2 align="center"><xsl:value-of select="@name" /></h2>
  +					<form action="updateCartQuantities.do" method="post" >
  +						<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
  +							<tr bgcolor="#cccccc">
  +								<xsl:call-template name="cart-common-columns" />
  +								<td></td>
  +							</tr>
  +							<xsl:if test="not(item)">
  +								<tr bgcolor="#FFFF88">
  +									<td colspan="6">
  +										<b>Your cart is empty.</b>
  +									</td>
  +								</tr>
  +							</xsl:if>
  +							<xsl:apply-templates select="item" />
  +							<tr bgcolor="#FFFF88">
  +								<td colspan="5" align="right">
  +									<b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
  +									<input type="image" border="0" src="images/button_update_cart.gif" name="update" />
  +								</td>
  +								<td></td>
  +							</tr>
  +						</table>
  +					</form>
  +					<xsl:if test="item">
  +						<xsl:apply-templates select="nextpointer" />
  +					</xsl:if>
  +				</td>
  +				<td valign="top" width="20%" align="right">
  +				</td>
  +			</tr>
  +		</table>
  +	</xsl:template>
  +
  +	<xsl:template match="cart[@name='Checkout Summary']">
  +		<table border="0" width="100%" cellspacing="0" cellpadding="0">
  +			<tr>
  +				<td valign="top" width="20%" align="left">
  +					<xsl:apply-templates select="backpointer" />
  +				</td>
  +				<td valign="top" align="center">
  +					<h2 align="center"><xsl:value-of select="@name" /></h2>
  +						<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
  +							<tr bgcolor="#cccccc">
  +								<xsl:call-template name="cart-common-columns" />
  +							</tr>
  +							<xsl:apply-templates select="item" />
  +							<tr bgcolor="#FFFF88">
  +								<td colspan="5" align="right">
  +									<b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
  +								</td>
  +							</tr>
  +						</table>
  +						<xsl:apply-templates select="nextpointer" />
  +				</td>
  +				<td valign="top" width="20%" align="right">
  +				</td>
  +			</tr>
  +		</table>
  +	</xsl:template>
  +
  +	<xsl:template match="cart[@name='Status']">
  +		<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
  +			<tr bgcolor="#cccccc">
  +				<xsl:call-template name="cart-common-columns" />
  +			</tr>
  +			<xsl:apply-templates select="item" />
  +			<tr bgcolor="#FFFF88">
  +				<td colspan="5" align="right">
  +					<b>Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
  +				</td>
  +			</tr>
  +		</table>
  +	</xsl:template>
  +
  +
  +	<xsl:template match="nextpointer">
  +		<br />
  +			<center>
  +				<a href="{@do}"><img border="0" src="{@img}" /></a>
  +			</center>
  +	</xsl:template>
  +
  +
  +	<xsl:template match="cart/item">
  +		<tr bgcolor="#FFFF88">
  +			<td>
  +				<b><xsl:value-of select="@id" /></b>
  +			</td>
  +			<td>
  +				<xsl:value-of select="@product-id" />
  +			</td>
  +			 <td>
  +					<xsl:value-of select="desc" />
  +			 </td>
  +			<td align="center">
  +				<xsl:choose>
  +					<xsl:when test="../@name='Shopping Cart'">
  +						<input type="text" size="3" name="{@id}" >
  +							<xsl:attribute name="value"><xsl:value-of select="format-number (quantity, '####')"/></xsl:attribute>
  +						</input>
  +					</xsl:when>
  +					<xsl:otherwise>
  +						<xsl:value-of select="format-number (quantity, '####')"/>
  +					</xsl:otherwise>
  +				</xsl:choose>
  +			</td>
  +			<td align="right">
  +				$<xsl:value-of select="format-number (price, '###,##0.00')"/>
  +			</td>
  +			<xsl:if test="../@name='Shopping Cart'">
  +				<td>
  +					<a href="removeItemFromCart.do?workingItemId={@id}"><img border="0" src="images/button_remove.gif" /></a>
  +				</td>
  +			</xsl:if>
  +		</tr>
  +	</xsl:template>
  +	
  +	
  +
  +
  +	<xsl:template match="item">
  +		<p>
  +			<table align="center" bgcolor="#008800" cellspacing="2" cellpadding="3" border="0" width="60%">
  +				<tr bgcolor="#FFFF88">
  +					<td bgcolor="#FFFFFF">
  +						<xsl:value-of select="product-desc" />
  +					</td>
  +				</tr>
  +				<tr bgcolor="#FFFF88">
  +					<td width="100%" bgcolor="#cccccc">
  +					  <b><xsl:value-of select="@id" /></b>
  +					</td>
  +				</tr>
  +				<tr bgcolor="#FFFF88">
  +					<td>
  +						<b><font size="4"><xsl:value-of select="desc" /></font></b>
  +					</td>
  +				</tr>
  +				<tr bgcolor="#FFFF88">
  +					<td>
  +						<font size="3"><i><xsl:value-of select="product-name" /></i></font>
  +					</td>
  +				</tr>
  +					<!-- quantity stuff still missing -->
  +				
  +				<tr bgcolor="#FFFF88">
  +					<td>
  +						<xsl:value-of select="format-number (instock, '####')"/> in stock.
  +					</td>
  +				</tr>
  +				<tr bgcolor="#FFFF88">
  +					<td>
  +						$<xsl:value-of select="format-number (price, '###,##0.00')"/>
  +					</td>
  +				</tr>
  +				<tr bgcolor="#FFFF88">
  +					<td>
  +						<a href="addItemToCart.do?itemId={@id}" ><img border="0" src="images/button_add_to_cart.gif" /></a>
  +					</td>
  +				</tr>
  +			</table>
  +		</p>
  +	</xsl:template>
  +
  +	<xsl:template match="editAccountForm">
  +             <xsl:copy-of select="*"/>
  +        </xsl:template>
  +
  +	<xsl:template match="form[@styleId='workingAccountForm']">
  +		<form>
  +			<xsl:copy-of select="@action | @method | @styleId "/>
  +			<xsl:choose>
  +				<xsl:when test="/site/@signOn='true'">
  +					<hidden name="workingAccountForm" property="validate" value="newAccount"/>
  +				</xsl:when>
  +				<xsl:otherwise>
  +					<hidden name="workingAccountForm" property="validate" value="editAccount" />
  +					<hidden name="workingAccountForm" property="account.username" />
  +				</xsl:otherwise>
  +			</xsl:choose>
  +			<table cellpadding="10" cellspacing="0" align="center" border="1" bgcolor="#dddddd">
  +				<tr>
  +					<td>
  +					<xsl:apply-templates/>
  +					</td>
  +				</tr>
  +			</table>
  +			<br />
  +			<center>
  +				<input border="0" type="image" src="images/button_submit.gif" name="submit" value="Save Account Information" />
  +			</center>
  +		</form>
  +		<xsl:if test="/site/@signOn='false'">
  +			<p>
  +				<center><b><a href="listOrders.do">My Orders</a></b></center>
  +			</p>
  +		</xsl:if>
  +	</xsl:template>
  +
  +	
  +	<xsl:template match="form[@styleId='workingOrderForm']">
  +		<b><font color="RED"><xsl:value-of select="message" /></font></b>
  +		<form>
  +			<xsl:copy-of select="@action | @method | @styleId"/>
  +				<xsl:apply-templates/>
  +                <p><center>
  +			<input type="image" src="images/button_submit.gif"/>
  +                 </center>
  +		</p>
  +		</form>
  +	</xsl:template>
  +	
  +	<xsl:template match="form[@label='signon']">
  +		<xsl:apply-templates select="message"/>
  +		<form>
  +			<xsl:copy-of select="@action | @method"/>
  +			<table align="center" border="0">
  +				<tr>
  +					<td colspan="2">Please enter your username and password.<br /> </td>
  +				</tr>
  +				<xsl:apply-templates select="input"/>
  +			</table>
  +		</form>
  +	</xsl:template>
  +	
  +	
  +	<xsl:template match="panel[panel]">
  +		<table width="60%" align="center" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
  +			<xsl:if test="@header">
  +				<tr bgcolor="#FFFF88">
  +					<td align="center" colspan="2">
  +						<font size="4"><b><xsl:value-of select="@header" /></b></font>
  +						<xsl:if test="@subheader">
  +							<br /><font size="3"><b><xsl:value-of select="@subheader" /></b></font>
  +						</xsl:if>
  +					</td>
  +				</tr>
  +			</xsl:if>
  +			<xsl:apply-templates/>
  +		</table>
  +	</xsl:template>
  +	
  +	<xsl:template match="panel">
  +		<font color="darkgreen"><h3><xsl:value-of select="@label" /></h3></font>
  +		<table border="0" cellpadding="3" cellspacing="1" bgcolor="#008800">
  +			<xsl:apply-templates/>
  +		</table>
  +	</xsl:template>
  +	
  +	<xsl:template match="panel/panel">
  +		<tr bgcolor="#FFFF88">
  +			<td colspan="2">
  +				<font color="GREEN" size="4"><b><xsl:value-of select="@label" />:</b></font>
  +			</td>
  +		</tr>
  +		<xsl:apply-templates/>
  +	</xsl:template>
  +	
  +	<xsl:template match="panel/select">
  +		<tr bgcolor="#FFFF88">
  +			<td><xsl:value-of select="@label" /></td>
  +			<td>
  +				<select>
  +					<xsl:copy-of select="@type | @src | @value | @name | @size | @selected | node()" />
  +				</select>
  +			</td>
  +		</tr>
  +	</xsl:template>
  +	
  +	<xsl:template match="panel/input">
  +		<tr bgcolor="#FFFF88">
  +			<td><xsl:value-of select="@label" /></td>
  +			<td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
  +		</tr>
  +	</xsl:template>
  +	
  +	<xsl:template match="panel/field">
  +		<tr bgcolor="#FFFF88">
  +			<td><xsl:value-of select="@label" />:</td>
  +			<td><xsl:value-of select="." /></td>
  +		</tr>
  +	</xsl:template>
  +
  +	<xsl:template match="panel/field[@empty]">
  +		<tr bgcolor="#FFFF88">
  +			<td colspan="{@empty}"><xsl:value-of select="@label" />
  +				<xsl:apply-templates />
  +			</td>
  +		</tr>
  +	</xsl:template>
  +
  +	<xsl:template match="message">
  +		<br clear="all" />
  +			<center>
  +				<b>
  +					<font size="4">
  +						<xsl:if test="@type='warning'">
  +							<xsl:attribute name="color">RED</xsl:attribute> 
  +						</xsl:if>
  +						<xsl:value-of select="." />
  +					</font>
  +				</b>
  +			</center>
  +		<br clear="all" />
  +	</xsl:template>
  +
  +	
  +	<xsl:template match="input">
  +		<tr>
  +			<td><xsl:value-of select="@label" /></td>
  +			<td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
  +		</tr>
  +	</xsl:template>
  +	
  +
  +	<xsl:template match="register">
  +		<center>
  +			<a href="newAccountForm.do"><img border="0" src="images/button_register_now.gif" /></a>
  +		</center>
  +	</xsl:template>
  +
  +</xsl:stylesheet>
  +
  
  
  
  1.3       +65 -65    cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditAccountInformation.xml
  
  Index: EditAccountInformation.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditAccountInformation.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EditAccountInformation.xml	3 May 2003 20:36:13 -0000	1.2
  +++ EditAccountInformation.xml	6 May 2003 14:13:03 -0000	1.3
  @@ -1,65 +1,65 @@
  -<?xml version="1.0"?>
  -
  -<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0" 
  -   signOn="false" view="xsp">
  -  <editAccountForm>
  -	<xf:form id="petstore-edit-account" view="edit-account-info" action="petstore" method="GET" class="petstore-form">
  -		<error>
  -			<xf:violations class="error"/>
  -		</error>
  -		
  -		<xf:group class="panel" ref="/account">
  -			<xf:label class="header" >Account Information</xf:label>
  -			<xf:input ref="/account/firstName">
  -				<xf:label>First Name:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:input ref="lastName">
  -				<xf:label>Last Name:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:input ref="email">
  -				<xf:label>Email:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:input ref="phone">
  -				<xf:label>Phone:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:input ref="address1">
  -				<xf:label>Address 1:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:input ref="address2">
  -				<xf:label>Address 2:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:input ref="city">
  -				<xf:label>City:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:input ref="state">
  -				<xf:label>State:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:input ref="zip">
  -				<xf:label>Zip:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:input ref="country">
  -				<xf:label>Country:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -		</xf:group>
  -
  -		<xf:submit id="prev" continuation="back" class="button">
  -			<xf:label>Back</xf:label>
  -			<xf:hint>Go Back</xf:hint>
  -		</xf:submit>
  -		<xf:submit id="next" continuation="forward" class="button">
  -			<xf:label>Next</xf:label>
  -			<xf:hint>Continue</xf:hint>
  -		</xf:submit>
  -	</xf:form>
  -</editAccountForm>
  -</site>
  +<?xml version="1.0"?>
  +
  +<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0" 
  +   signOn="false" view="xsp">
  +  <editAccountForm>
  +	<xf:form id="petstore-edit-account" view="edit-account-info" action="petstore" method="GET" class="petstore-form">
  +		<error>
  +			<xf:violations class="error"/>
  +		</error>
  +		
  +		<xf:group class="panel" ref="/account">
  +			<xf:label class="header" >Account Information</xf:label>
  +			<xf:input ref="/account/firstName">
  +				<xf:label>First Name:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:input ref="lastName">
  +				<xf:label>Last Name:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:input ref="email">
  +				<xf:label>Email:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:input ref="phone">
  +				<xf:label>Phone:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:input ref="address1">
  +				<xf:label>Address 1:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:input ref="address2">
  +				<xf:label>Address 2:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:input ref="city">
  +				<xf:label>City:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:input ref="state">
  +				<xf:label>State:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:input ref="zip">
  +				<xf:label>Zip:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:input ref="country">
  +				<xf:label>Country:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +		</xf:group>
  +
  +		<xf:submit id="prev" continuation="back" class="button">
  +			<xf:label>Back</xf:label>
  +			<xf:hint>Go Back</xf:hint>
  +		</xf:submit>
  +		<xf:submit id="next" continuation="forward" class="button">
  +			<xf:label>Next</xf:label>
  +			<xf:hint>Continue</xf:hint>
  +		</xf:submit>
  +	</xf:form>
  +</editAccountForm>
  +</site>
  
  
  
  1.3       +54 -54    cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditProfileInformation.xml
  
  Index: EditProfileInformation.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditProfileInformation.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EditProfileInformation.xml	3 May 2003 20:36:13 -0000	1.2
  +++ EditProfileInformation.xml	6 May 2003 14:13:03 -0000	1.3
  @@ -1,54 +1,54 @@
  -<?xml version="1.0"?>
  -
  -<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0" 
  - signOn="false" view="xsp">
  - <editAccountForm>
  -	<xf:form id="petstore-edit-account" view="edit-profile" action="petstore" method="GET">
  -		<error>
  -			<xf:violations class="error"/>
  -		</error>
  -		
  -		<xf:group ref="/account">
  -			<xf:label class="header">Profile Information</xf:label>
  -			<xf:select1 ref="/account/favCategory">
  -			   <xf:label>Favorite Category:</xf:label>
  -			   <xf:itemset nodeset="/categoryList">
  -				<xf:label><xf:output ref="name"/></xf:label>
  -				<xf:value><xf:output ref="name"/></xf:value>
  -			   </xf:itemset>
  -			</xf:select1>
  -			<xf:select1 ref="/account/listOption">
  -				<xf:label>Enable MyList</xf:label>
  -                                <xf:item>
  -				  <xf:label>Yes</xf:label>
  -				  <xf:value>true</xf:value>
  -                                </xf:item>
  -                                <xf:item>
  -				  <xf:label>No</xf:label>
  -				  <xf:value></xf:value>
  -                                </xf:item>
  -			</xf:select1>
  -			<xf:select1 ref="/account/bannerOption">
  -				<xf:label>Enable MyBanner</xf:label>
  -                                <xf:item>
  -				  <xf:label>Yes</xf:label>
  -				  <xf:value>true</xf:value>
  -                                </xf:item>
  -                                <xf:item>
  -				  <xf:label>No</xf:label>
  -				  <xf:value></xf:value>
  -                                </xf:item>
  -			</xf:select1>
  -		</xf:group>
  -
  -		<xf:submit id="prev" continuation="back" class="button">
  -			<xf:label>Back</xf:label>
  -			<xf:hint>Go Back</xf:hint>
  -		</xf:submit>
  -		<xf:submit id="next" continuation="forward" class="button">
  -			<xf:label>Finish</xf:label>
  -			<xf:hint>Submit Account Information</xf:hint>
  -		</xf:submit>
  -	</xf:form>
  -</editAccountForm>
  -</site>
  +<?xml version="1.0"?>
  +
  +<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0" 
  + signOn="false" view="xsp">
  + <editAccountForm>
  +	<xf:form id="petstore-edit-account" view="edit-profile" action="petstore" method="GET">
  +		<error>
  +			<xf:violations class="error"/>
  +		</error>
  +		
  +		<xf:group ref="/account">
  +			<xf:label class="header">Profile Information</xf:label>
  +			<xf:select1 ref="/account/favCategory">
  +			   <xf:label>Favorite Category:</xf:label>
  +			   <xf:itemset nodeset="/categoryList">
  +				<xf:label><xf:output ref="name"/></xf:label>
  +				<xf:value><xf:output ref="name"/></xf:value>
  +			   </xf:itemset>
  +			</xf:select1>
  +			<xf:select1 ref="/account/listOption">
  +				<xf:label>Enable MyList</xf:label>
  +                                <xf:item>
  +				  <xf:label>Yes</xf:label>
  +				  <xf:value>true</xf:value>
  +                                </xf:item>
  +                                <xf:item>
  +				  <xf:label>No</xf:label>
  +				  <xf:value></xf:value>
  +                                </xf:item>
  +			</xf:select1>
  +			<xf:select1 ref="/account/bannerOption">
  +				<xf:label>Enable MyBanner</xf:label>
  +                                <xf:item>
  +				  <xf:label>Yes</xf:label>
  +				  <xf:value>true</xf:value>
  +                                </xf:item>
  +                                <xf:item>
  +				  <xf:label>No</xf:label>
  +				  <xf:value></xf:value>
  +                                </xf:item>
  +			</xf:select1>
  +		</xf:group>
  +
  +		<xf:submit id="prev" continuation="back" class="button">
  +			<xf:label>Back</xf:label>
  +			<xf:hint>Go Back</xf:hint>
  +		</xf:submit>
  +		<xf:submit id="next" continuation="forward" class="button">
  +			<xf:label>Finish</xf:label>
  +			<xf:hint>Submit Account Information</xf:hint>
  +		</xf:submit>
  +	</xf:form>
  +</editAccountForm>
  +</site>
  
  
  
  1.3       +34 -34    cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditUserInformation.xml
  
  Index: EditUserInformation.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditUserInformation.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EditUserInformation.xml	3 May 2003 20:36:13 -0000	1.2
  +++ EditUserInformation.xml	6 May 2003 14:13:03 -0000	1.3
  @@ -1,34 +1,34 @@
  -<?xml version="1.0"?>
  -
  -<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0" 
  -   signOn="false" view="xsp">
  -  <editAccountForm>
  -	<xf:form id="petstore-edit-account" view="edit-user-info" action="petstore" method="GET" class="petstore-form">
  -		<error>
  -			<xf:violations class="error"/>
  -		</error>
  -		
  -		<xf:group class="panel" ref="/">
  -			<xf:label class="header">User Information</xf:label>
  -			<xf:input ref="/username">
  -				<xf:label>User ID:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:input>
  -			<xf:secret ref="/password">
  -				<xf:label>Password:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:secret>
  -			<xf:secret ref="/password2">
  -				<xf:label>Repeat Password:</xf:label>
  -				<xf:violations class="error"/>
  -			</xf:secret>
  -		</xf:group>
  -		
  -
  -		<xf:submit id="next" continuation="forward" class="button">
  -			<xf:label>Next</xf:label>
  -			<xf:hint>Continue</xf:hint>
  -		</xf:submit>
  -	</xf:form>
  -</editAccountForm>
  -</site>
  +<?xml version="1.0"?>
  +
  +<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0" 
  +   signOn="false" view="xsp">
  +  <editAccountForm>
  +	<xf:form id="petstore-edit-account" view="edit-user-info" action="petstore" method="GET" class="petstore-form">
  +		<error>
  +			<xf:violations class="error"/>
  +		</error>
  +		
  +		<xf:group class="panel" ref="/">
  +			<xf:label class="header">User Information</xf:label>
  +			<xf:input ref="/username">
  +				<xf:label>User ID:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:input>
  +			<xf:secret ref="/password">
  +				<xf:label>Password:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:secret>
  +			<xf:secret ref="/password2">
  +				<xf:label>Repeat Password:</xf:label>
  +				<xf:violations class="error"/>
  +			</xf:secret>
  +		</xf:group>
  +		
  +
  +		<xf:submit id="next" continuation="forward" class="button">
  +			<xf:label>Next</xf:label>
  +			<xf:hint>Continue</xf:hint>
  +		</xf:submit>
  +	</xf:form>
  +</editAccountForm>
  +</site>
  
  
  
  1.2       +40 -39    cocoon-2.1/src/webapp/samples/errorhandling/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/errorhandling/sitemap.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sitemap.xmap	29 Apr 2003 10:45:19 -0000	1.1
  +++ sitemap.xmap	6 May 2003 14:13:03 -0000	1.2
  @@ -1,39 +1,40 @@
  -<?xml version="1.0" encoding="UTF-8"?>
  -<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  -	<map:components>
  -		<map:selectors default="browser">
  -			<map:selector name="exception" src="org.apache.cocoon.selection.XPathExceptionSelector">
  -				<exception name="application" class="org.apache.cocoon.samples.errorhandling.ApplicationException">
  -					<xpath name="application1" test="errorCode=1"/>
  -					<xpath name="application2" test="errorCode=2"/>
  -				</exception>
  -				<exception name="validation" class="org.apache.cocoon.samples.errorhandling.ValidationException"/>
  -				<exception name="resourceNotFound" class="org.apache.cocoon.ResourceNotFoundException"/>
  -				<exception class="java.lang.Throwable" unroll="true"/>
  -			</map:selector>
  -		</map:selectors>
  -	</map:components>
  -	<map:pipelines>
  -		<map:pipeline>
  -			<map:match pattern="main">
  -				<map:generate src="main.htm"/>
  -				<map:serialize/>
  -			</map:match>
  -		</map:pipeline>
  -		<map:pipeline>
  -			<map:mount uri-prefix="exception" src="exception/"/>
  -			<map:handle-errors>
  -				<map:select type="exception">
  -					<map:when test="resourceNotFound">
  -						<map:generate src="resourceNotFound.htm"/>
  -						<map:serialize/>
  -					</map:when>
  -				</map:select>
  -			</map:handle-errors>
  -		</map:pipeline>
  -		<map:handle-errors>
  -			<map:generate src="generalerror.htm"/>
  -			<map:serialize/>
  -		</map:handle-errors>
  -	</map:pipelines>
  -</map:sitemap>
  \ No newline at end of file
  +<?xml version="1.0" encoding="UTF-8"?>
  +
  +<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  +	<map:components>
  +		<map:selectors default="browser">
  +			<map:selector name="exception" src="org.apache.cocoon.selection.XPathExceptionSelector">
  +				<exception name="application" class="org.apache.cocoon.samples.errorhandling.ApplicationException">
  +					<xpath name="application1" test="errorCode=1"/>
  +					<xpath name="application2" test="errorCode=2"/>
  +				</exception>
  +				<exception name="validation" class="org.apache.cocoon.samples.errorhandling.ValidationException"/>
  +				<exception name="resourceNotFound" class="org.apache.cocoon.ResourceNotFoundException"/>
  +				<exception class="java.lang.Throwable" unroll="true"/>
  +			</map:selector>
  +		</map:selectors>
  +	</map:components>
  +	<map:pipelines>
  +		<map:pipeline>
  +			<map:match pattern="main">
  +				<map:generate src="main.htm"/>
  +				<map:serialize/>
  +			</map:match>
  +		</map:pipeline>
  +		<map:pipeline>
  +			<map:mount uri-prefix="exception" src="exception/"/>
  +			<map:handle-errors>
  +				<map:select type="exception">
  +					<map:when test="resourceNotFound">
  +						<map:generate src="resourceNotFound.htm"/>
  +						<map:serialize/>
  +					</map:when>
  +				</map:select>
  +			</map:handle-errors>
  +		</map:pipeline>
  +		<map:handle-errors>
  +			<map:generate src="generalerror.htm"/>
  +			<map:serialize/>
  +		</map:handle-errors>
  +	</map:pipelines>
  +</map:sitemap>
  
  
  
  1.2       +41 -40    cocoon-2.1/src/webapp/samples/errorhandling/exception/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/errorhandling/exception/sitemap.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sitemap.xmap	29 Apr 2003 10:45:20 -0000	1.1
  +++ sitemap.xmap	6 May 2003 14:13:03 -0000	1.2
  @@ -1,40 +1,41 @@
  -<?xml version="1.0" encoding="UTF-8"?>
  -<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  -	<map:components>
  -		<map:generators default="file">
  -			<map:generator name="exception" src="org.apache.cocoon.samples.errorhandling.ExceptionGenerator"/>
  -		</map:generators>
  -	</map:components>
  -	<map:pipelines>
  -		<map:pipeline>
  -			<map:match pattern="exception">
  -				<map:generate type="exception"/>
  -				<map:serialize/>
  -			</map:match>
  -			<map:handle-errors>
  -				<map:select type="exception">
  -					<map:when test="validation">
  -						<map:generate src="validation.htm"/>
  -						<map:serialize/>
  -					</map:when>
  -				</map:select>
  -			</map:handle-errors>
  -		</map:pipeline>
  -		<map:handle-errors>
  -			<map:select type="exception">
  -				<map:when test="application1">
  -					<map:generate src="application1.htm"/>
  -					<map:serialize/>
  -				</map:when>
  -				<map:when test="application2">
  -					<map:generate src="application2.htm"/>
  -					<map:serialize/>
  -				</map:when>
  -				<map:when test="application">
  -					<map:generate src="application.htm"/>
  -					<map:serialize/>
  -				</map:when>
  -			</map:select>
  -		</map:handle-errors>
  -	</map:pipelines>
  -</map:sitemap>
  \ No newline at end of file
  +<?xml version="1.0" encoding="UTF-8"?>
  +
  +<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  +	<map:components>
  +		<map:generators default="file">
  +			<map:generator name="exception" src="org.apache.cocoon.samples.errorhandling.ExceptionGenerator"/>
  +		</map:generators>
  +	</map:components>
  +	<map:pipelines>
  +		<map:pipeline>
  +			<map:match pattern="exception">
  +				<map:generate type="exception"/>
  +				<map:serialize/>
  +			</map:match>
  +			<map:handle-errors>
  +				<map:select type="exception">
  +					<map:when test="validation">
  +						<map:generate src="validation.htm"/>
  +						<map:serialize/>
  +					</map:when>
  +				</map:select>
  +			</map:handle-errors>
  +		</map:pipeline>
  +		<map:handle-errors>
  +			<map:select type="exception">
  +				<map:when test="application1">
  +					<map:generate src="application1.htm"/>
  +					<map:serialize/>
  +				</map:when>
  +				<map:when test="application2">
  +					<map:generate src="application2.htm"/>
  +					<map:serialize/>
  +				</map:when>
  +				<map:when test="application">
  +					<map:generate src="application.htm"/>
  +					<map:serialize/>
  +				</map:when>
  +			</map:select>
  +		</map:handle-errors>
  +	</map:pipelines>
  +</map:sitemap>
  
  
  
  1.2       +40 -40    cocoon-2.1/src/webapp/samples/webserviceproxy/cocoonhive/stylesheets/page.css
  
  Index: page.css
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/webserviceproxy/cocoonhive/stylesheets/page.css,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- page.css	9 Mar 2003 00:11:28 -0000	1.1
  +++ page.css	6 May 2003 14:13:03 -0000	1.2
  @@ -1,40 +1,40 @@
  -body {  background-color: #FFFFFF; margin: 0px 0px 0px 0px; font-family: Arial, Helvetica, sans-serif;  font-size : 14px;  }
  -
  -a:link { color: #0F3660; }
  -a:visited { color: #009999; }
  -a:active { color: #000066; }
  -a:hover { color: #000066; }
  -
  -.menu { background-color: #4C6C8F; margin: 0px; padding: 3px 8px 5px 3px;  font-size : 14px;  }
  -.menu a:link { color: #FFFFFF;  text-decoration : none;  }
  -.menu a:visited { color: #FFFFFF; text-decoration : none; }
  -/*.menu a:active { font-weight: bold }*/
  -.menu a:hover { color: #FFCC00; text-decoration : none; }
  -.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
  -.menu li  { list-style-image: url('images/label.gif'); }
  -.menu ul ul li .sel { list-style-image: url('images/current.gif'); }
  -.menu ul ul li  { list-style-image: url('images/page.gif'); }
  -
  -.content { padding: 5px 5px 5px 10px;  font : small;  font-size : 14px;   }
  -.content table { width: 100%; background-color: #7099C5; color: #ffffff;  font-size : 14px;}
  -.content table .caption { text-align: left; color: black; font-size : 14px; }
  -.content table .th { text-align: center;  font-size : 14px;}
  -.content td { background-color: #f0f0ff; color: black;  font-size : 14px;}
  -
  -.frame { margin: 5px 20px 5px 20px; font-size: 14px; }
  -.frame .content { margin: 0px; }
  -
  -.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
  -.note .label { background-color: #7099C5; color: #ffffff; }
  -
  -.warning { border: solid 1px #D00000; background-color: #fff0f0; }
  -.warning .label { background-color: #D00000; color: #ffffff; }
  -
  -.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
  -.fixme .label { background-color: #C6C600; color: #ffffff; }
  -
  -.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
  -
  -.highlight { background-color: yellow; }
  -
  -.minitoc {margin: 5px 5px 5px 40px;}
  +body {  background-color: #FFFFFF; margin: 0px 0px 0px 0px; font-family: Arial, Helvetica, sans-serif;  font-size : 14px;  }
  +
  +a:link { color: #0F3660; }
  +a:visited { color: #009999; }
  +a:active { color: #000066; }
  +a:hover { color: #000066; }
  +
  +.menu { background-color: #4C6C8F; margin: 0px; padding: 3px 8px 5px 3px;  font-size : 14px;  }
  +.menu a:link { color: #FFFFFF;  text-decoration : none;  }
  +.menu a:visited { color: #FFFFFF; text-decoration : none; }
  +/*.menu a:active { font-weight: bold }*/
  +.menu a:hover { color: #FFCC00; text-decoration : none; }
  +.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
  +.menu li  { list-style-image: url('images/label.gif'); }
  +.menu ul ul li .sel { list-style-image: url('images/current.gif'); }
  +.menu ul ul li  { list-style-image: url('images/page.gif'); }
  +
  +.content { padding: 5px 5px 5px 10px;  font : small;  font-size : 14px;   }
  +.content table { width: 100%; background-color: #7099C5; color: #ffffff;  font-size : 14px;}
  +.content table .caption { text-align: left; color: black; font-size : 14px; }
  +.content table .th { text-align: center;  font-size : 14px;}
  +.content td { background-color: #f0f0ff; color: black;  font-size : 14px;}
  +
  +.frame { margin: 5px 20px 5px 20px; font-size: 14px; }
  +.frame .content { margin: 0px; }
  +
  +.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
  +.note .label { background-color: #7099C5; color: #ffffff; }
  +
  +.warning { border: solid 1px #D00000; background-color: #fff0f0; }
  +.warning .label { background-color: #D00000; color: #ffffff; }
  +
  +.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
  +.fixme .label { background-color: #C6C600; color: #ffffff; }
  +
  +.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
  +
  +.highlight { background-color: yellow; }
  +
  +.minitoc {margin: 5px 5px 5px 40px;}
  
  
  

Mime
View raw message