Hi:

We (my project group) are having a problem at work with the code reproduced below.  The first section of code is the pipeline portion of the Cocoon sitemap we are running.  The idea is that any URL requested by the user will be passed down by all of the pipelines with specific matches and match on the Frameset pipeline that will match on anything.  This Frameset pipeline will generate the frameset for the site using the XSL stylesheet in the second section of code.  The frameset generates requests for three additional URLs for the search Bar, Nav Bar, and Main Text Area.  The Search Bar and Navigation Bar URLs will match on specific pipelines, while the Main Text are URL will match on various pipelines depending on the exact URL.  All of this works for the URL " policy.bltmc.edu", but for URLs with a "policy.bltmc.edu/*" format, we experience the following problem.

When we request URLs with the " policy.bltmc.edu/*" format the Frameset pipeline works fine, it generates the frameset and sends the correct requests for the search Bar, Nav Bar, and Main Text Area.  The Search Bar and Navigation Bar pipelines work fine and generate those portions of the page.  The request for the Main Text Area fails to match on the  " policy.bltmc.edu/*/Main_Text_Area" pipeline, however.  As a result the request is passed down and matches on the Frameset pipeline.  This leads to a loop in which the Search and Navigation Bars are inserted repeatedly.


What is really odd is that while the "policy.bltmc.edu/*/Main_Text_Area" request generated by the frameset---in response to a " policy.bltmc.edu/*/Main_Text_Area" request---will not work, if we directly request a URL in the "policy.bltmc.edu/*/Main_Text_Area" format, the pipeline that is supposed to match on that format works and generates the page.  We have checked the Main Text Area URL generated by the Framest, however, and it is correct.

Three of us have been trying to figure this out for the past week and we just cannot figure it.  Any help would be much appreciated.



<map:pipelines>

    <!--START:  Main Pipeline-->

    <map:pipeline>
        <map:match pattern="">
          <map:generate src="">         <map:serialize type="html"/>
         </map:match>
    </map:pipeline>

    <!--END:  Main Pipeline-->

    <!--START:  Search and Navigation Bars-->

    <map:pipeline>
        <map:match pattern="**/Search_Bar">
            <map:generate src="">            <map:transform src="">                <map:parameter name="Get_This_Page" value="{1}"/>
            </map:transform>
            <map:serialize type="xhtml"/>
        </map:match>
    </map:pipeline>

    <map:pipeline>
        <map:match pattern="**/Navigation_Bar">
            <map:generate type="directory" src="">                <map:parameter name="depth" value="1999"/>
            </map:generate>
            <map:transform src="">                <map:parameter name="Get_This_Page" value="{1}"/>
            </map:transform>
            <map:serialize type="xhtml"/>
        </map:match>
    </map:pipeline>

    <!--END:  Search and Navigation Bars-->


    <!--START:  Main Pages-->

    <map:pipeline>
        <map:match pattern="policy.bltmc.edu/Main_Text_Area">
            <map:generate src=""
            <map:transform src="">            <map:serialize type="xhtml"/>
        </map:match>
    </map:pipeline>

    <map:pipeline>
        <map:match pattern="policy.bltmc.edu/*/Main_Text_Area">
            <map:generate src=""
            <map:transform src="">                <map:parameter name="Site_Section_Name" value="{1}"/>
            </map:transform>
            <map:serialize type="xhtml"/>
        </map:match>
    </map:pipeline>

    <!--END:  Main Pages-->


    <!--START:  Frameset-->
    <!--!!!THIS PIPELINE MUST COME LAST!!!-->

    <map:pipeline>
        <map:match pattern="**">
            <map:generate src="">            <map:transform src=""
                <map:parameter name="Get_This_Page" value="{1}"/>
            </map:transform>
            <map:serialize type="xhtml"/>
        </map:match>
    </map:pipeline>

    <!--!!!THIS PIPELINE MUST COME LAST!!!-->
    <!--END:  Frameset-->

</map:pipelines>
 







<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml ">

    <xsl:param name="Get_This_Page"/>

    <xsl:output method="xhtml"/>
    <xsl:template match="//*">
        <head>
            <title>FrameSet</title>
        </head>
    </xsl:template>

    <xsl:template match="//*">
        <frameset rows = "55px,*" border="0" frameborder="0">
            <frame name="Search_Bar" scrolling="no" noresize="noresize" marginwidth="0px" marginheight="0px">
            <xsl:attribute name="src">
                <xsl:value-of select="concat($Get_This_Page, '&#x2F;', 'Search_Bar')"/>
            </xsl:attribute>
            </frame>
            <frameset cols="235px,*">
                <frame name="Navigation_Bar">
                    <xsl:attribute name="src">
                        <xsl:value-of select="concat($Get_This_Page, '&#x2F;', 'Navigation_Bar')"/>
                    </xsl:attribute>
                </frame>
                <frame name="Main_Text_Area">
                    <xsl:attribute name="src">
                        <xsl:value-of select="concat($Get_This_Page, '&#x2F;', 'Main_Text_Area')"/>
                    </xsl:attribute>
                </frame>
            </frameset>
            <noframes>
                <body>
                </body>
            </noframes>
        </frameset>
    </xsl:template>

</xsl:stylesheet>