ivelin      2002/07/04 14:19:07

  Added:       src/webapp/samples/webserviceproxy README.txt sitemap.xmap
               src/webapp/samples/webserviceproxy/stylesheets
                        newWizard2html.xsl
  Log:
  no message
  
  Revision  Changes    Path
  1.3       +0 -0      xml-cocoon2/src/webapp/samples/webserviceproxy/README.txt
  
  
  
  
  1.3       +0 -0      
xml-cocoon2/src/webapp/samples/webserviceproxy/sitemap.xmap
  
  
  
  
  1.1                  
xml-cocoon2/src/webapp/samples/webserviceproxy/stylesheets/newWizard2html.xsl
  
  Index: newWizard2html.xsl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--
        Cocoon WebServiceProxyGenerator 
      Feedback Wizard processing and displaying stylesheet.     
    
    This stylesheet merges an XMLForm document into 
    a pre-final HTML document. It includes other presentational
    parts of a page orthogonal to the xmlform.
  
    author: Ivelin Ivanov, [EMAIL PROTECTED], June 2002
  
  -->
  
  <xsl:stylesheet 
      version="1.0" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
      xmlns:xf="http://xml.apache.org/cocoon/xmlform/2002";
      exclude-result-prefixes="xalan"
  >
  
        <xsl:template match="document">
                <html>
                        <head>
                                <title>Embedding One Web Site into another with 
Cocoon WebServiceProxyGenerator Demo </title>           
                                <style type="text/css">
                                <![CDATA[
                H1{font-family : sans-serif,Arial,Tahoma;color : 
white;background-color : #009900;} 
                BODY{font-family : sans-serif,Arial,Tahoma;color : 
black;background-color : #AAFFAA;} 
                B{color : white;background-color : #5090a0;} 
                HR{color : #0086b2;}
                input { background-color: #FFFFFF; color: #000099; border: 1px 
solid #0000FF; }         
                table { background-color: #DDDDFF; color: #000099; font-size: 
x-small; border: 2px solid brown;}
                select { background-color: #FFFFFF; color: #000099 }
               .error { color: #FF0000; }             
               .invalid { color: #FF0000; border: 2px solid #FF0000; }
               .info { color: #0000FF; border: 1px solid #0000FF; }
               .repeat { background-color: #AAAACC; border: 0px inset 
#999999;border: 1px inset #999999; width: 100%; }
               .group { background-color: #AAAACC; border: 0px inset 
#999999;border: 0px inset #999999;  width: 100%; }
               .sub-table { background-color: #AAAACC; border: 1px inset black; 
}
               .button { background-color: green; color: white; border: 5px 
solid #AAFFAA; width: 90px; }
               .plaintable { background-color: #AAAACC; border: 1px inset 
black;border: 1px inset black; width: 100%; }
                ]]>
                                </style>                        
                </head>
                        <body>
                  <table border="3">
                    <tr>
                      <td colspan="2" align="center">
                          <br/>
                          Embedding One Web Site into Another 
                          <br/><br/>
                          made easy with Cocoon 
                          <br/><br/>
                      </td>
                    </tr>
                    <tr>
                      <td width="20%" valign="top">
                        Navigation bar of the containing web site
                          <ul>
                            <li>
                                Remote Web Site
                            </li>
                            <li>
                                Local Content
                            </li>
                            <li>
                                All look like ONE.
                            </li>
                          </ul>
                      </td>
                      <td>
                        This is area for an embedded web site.
                        <br/>
                        <xsl:apply-templates />
                      </td>
                    </tr>
                    <tr>
                      <td colspan="2">
                        <p>
                        Remote Web Site Integration is an easy task with Cocoon.
                        This demo shows how the WebServiceProxyGenerator 
sitemap component, 
                        combined with the XMLForm framework and XSLT, allows 
                        vendors to share interactive content with little effort.
                        </p>
                        <p>
                        The Web Service Proxy takes advantage of the fact that 
                        a Cocoon web application produces XML content
                        which is later translated into multiple presentation 
formats, like HTML or WML.
                        </p>
                        <p>
                        This demo embeds the Cocoon Feedback Wizard 
application, which produces an XML
                        view containing both static data and interactive forms.
                        Having a client independent content format, allows this 
view to be 
                        pulled to the embedding web site (this demo) and styled 
with XSLT 
                        in the Look &amp; Feel of the site.
                        </p>
                        <p>
                        <i>
                        Ok, styling presentation is easy to understand, but how 
is a form submitted to the original site?
                        </i>
                        <br/>
                        Since the form markup in the XML content of an embedded 
page uses relative URL
                        address for the target, once the end user submits, the 
form data is sent to the 
                        containing site, which captures the form data and the 
relative URL.
                        The Web Service Proxy then takes this information and 
re-submits it to the
                        original site. It then reads the XML response and makes 
it available to the 
                        sitemap for styling again. 
                        </p>
                        <p>
                        <i>
                        Hm, but the Feedback Wizard example maintains a session 
while going through
                        multiple pages. So, how is the containing site 
propagating the end user session to the 
                        to the embedded site?
                        </i>
                        <br/>
                        The answer is simple. The Web Service Proxy simply 
hooks to the end user session,
                        and automatically starts its own session with the 
remote site.
                        If the remote site does not require authentication, 
then everything is transparent
                        to the developer of the containing web site. Otherwise 
the WebServiceProxyGenerator 
                        has to be extended to override the procedure for 
initating session with the remote site.
                        </p>
                        <p>
                        <i>What transport protocols are supported?</i>
                        <br/>
                        HTTP 1.0, HTTP 1.1, HTTPS.
                        </p>
                        <p>
                        Have more questions? Look at the code, it is really 
simple.
                        If you need advise, search through the Cocoon mailing 
lists archives.
                        If you can't find the answer, email your question to 
the Cocoon mailing lists.
                        Finally, if you need to contact me, send email to 
Ivelin Ivanov, [EMAIL PROTECTED]
                        </p>
                        <p>
                        If you like this component, please help with 
documentation.
                        Write an FAQ, HOW-TO or User Guide.
                        </p>
                        <p>
                        </p>
                      </td>
                    </tr>
                  </table> 
                        </body>
                </html>
        </xsl:template>
        
        <xsl:template match="xf:form">
      <xf:form method="post">
        <xsl:copy-of select="@*" />
          <br/><br/>
          <i><u>... and This is a Personalized HTML Form:</u></i>
          <br/><br/>
          <table align="center" border="0" class="sub-table">
            <tr>
              <td align="center" colspan="3">
                  <h1>
                      <xsl:value-of select="xf:caption"/>
                      <hr/>
                  </h1>
              </td>
            </tr>
            <xsl:if test="count(error/xf:violation) > 0">
                <tr>
                  <td align="left" colspan="3" 
class="{error/xf:violation[1]/@class}">
                      <p>
                      * There are
                      [<b><xsl:value-of 
select="count(error/xf:violation)"/></b>]
                      errors. 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="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:repeat">
          <tr  width="100%">
              <td colspan="3" width="100%">
                Repeat elements:
                  <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">
                  Group element:
                  <table class="group" border="0">
                            <xsl:apply-templates select="*"/>
                  </table>
              </td>
          </tr>
        </xsl:template>
      
        <xsl:template match="xf:[EMAIL PROTECTED]">
          <div align="center"> 
              <hr width="30%"/>
              <br/>
              <font size="-1">
                <code>
                [*]
                  <xsl:value-of select="xf:caption" /> :
                  <xsl:copy-of select="." />
                </code>
              </font>
              <br/>
          </div>
        </xsl:template>
        
  
      <xsl:template match="xf:*">
        <tr>
            <td align="left">
              <xsl:value-of select="xf:caption" />
            </td>
            <td align="left">
          <table class="plaintable">
           <tr>
            <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>
            </td>
        </tr>
      </xsl:template>
      
          
        <xsl:template match="*">
            <xsl:copy-of select="." />
        </xsl:template>
      
  </xsl:stylesheet>
  
  
  
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to