XSL cache

Heya everyone..
My first post in here :D
I've been changing our company's way of doing GUIs from pure PL/SQL to PL/SQL, Java & XSL(T). XSLT being my old friend I felt it's the weapon of choice. Now everything seems to run smoothly transformation wise, but I've noticed that transformation takes about 1.6 secs when done first times(can be more than 1 time) and then it drops down to 200 millis. The problem is that the 200 millis response time stays there just for 20 seconds or so and then it goes back to 1.6 seconds. For me it seems that Oracle does somewhat cache the result, but drops it quite fast. Is there anything I can do about this or not?
Most time being consumed in XSLProcessor.processXSL(XSLStylesheet xsl, XMLDocumentFragment xml, java.io.PrintWriter pw) and I've checked that the stylesheet should not be the one causing the delay.
BR,
Sakari

Dynamic XSLT loading is not yet supported in 11g. You may consider writing a custom XPATH function for the same and use that XPath function for transformation. Please refer -
https://blogs.oracle.com/reynolds/entry/building_your_own_path
Regards,
Anuj

Similar Messages

  • XSL Caching

    I cannot seem to find the search feature in this new forum
    system, so I appologize if this is a FAQ.
    I'm creating .xsql pages, and it seems to be working fine.
    However, I've found that the XSL files are not re-read after I
    change them. I have to bounce the apache-webserver to force the
    system to re-read a XSL file it's already put in the cache.
    I've looked in XSQLConfig.xml to see what to change - but
    removing all caching doesn't seem to a suitible solution if
    parts of the XSQL system is already in production.
    What can I do to FORCE Oracle to re-read all XSL files?

    XSL files are automatically reread by XSQL when their timestamp
    changes.
    However, XSQL only "knows" about the top-level XSL stylesheet
    name that you reference in your XSQL page. It has no way of
    knowing which XSL stylesheets that one might include or
    import.
    What you're seeing is probably that you have a situation like:
    [list]
    [*]A.xsl imports B.xsl
    [*]A.xsql references A.xsl
    [*]You modify B.xsl and save it
    [*]XSQL doesn't reread A.xsl
    [list]
    basically, you need to "touch" the timestamp on A.xsl to have
    XSQL reread it, and all of its includes/imports.

  • SOA mediator cache xsl

    Hi folks !
    How I can at runtime reload xslt at mediator. Now I use file:c:/test/test.xsl. SOA cache my xsl . Cache updated only when I create redeploy composite.

    Dynamic XSLT loading is not yet supported in 11g. You may consider writing a custom XPATH function for the same and use that XPath function for transformation. Please refer -
    https://blogs.oracle.com/reynolds/entry/building_your_own_path
    Regards,
    Anuj

  • How to get title dyanamically in xsl

    Hi ,
    i am working seo project which is search engine optimigation.
    i have one xsl file and i added meta tag like
    <title> title</tile>
    <meta name="Description" content="MyDescription">
    <meta name="Keywords" content="Keyword1, Keyword2, �, KeywordN">
    can you please tell me how to get the dynamic title based on the url.
    and keyword with commas taking as input title.
    i am using javascript but i do not how to call that sciprt in xsl file
    this is my xsl file souce code
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    xmlns:user="user" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xalan="http://xml.apache.org/xslt" xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
    <xsl:param name="pageName"/>
    <xsl:param name="titlePage"/>
    <xsl:param name="keyword"/>
    <!-- start - includes -->
    <xsl:include href="../mobility/header.xsl"/>
    <xsl:include href="../mobility/footer.xsl"/>
    <xsl:include href="../mobility/navigation.xsl"/>
    <xsl:include href="../mobility/mobility_content.xsl"/>     
    <!-- end - includes -->
    <xsl:template match="page">
    <html>
    <head>
    <script type="text/javascript">
              function test2()
              var st= "nissan uk";
              str = str.toLowerCase();
    str = str.replace(/['"-]/g, ",");
    str = str.replace(/\W/g, ",");
              str = str.replace(/\s+/g, ",");
    window.location();
    </script>
    <title><xsl:value-of select="$titlePage"/></title>
    <xsl:variable name="keywords" select="'keyword'"/>
    <xsl:variable name="scriptid" select="test2()"/>
    <meta content="We have developed this site to make it easier to access the information you need, when you need it. " name="Description" />
    <meta content="{$scriptid}" name="Keywords"/>
    <meta content="index, follow" name="Robots"/>
    <xsl:comment><xsl:value-of select="$titlePage"/>.We have developed this site to make it easier to access the information you need, when you need it. </xsl:comment>
         <link rel="stylesheet" type="text/css" href="/nova/global/css/mobility/mobility.css"/>
         <script type="text/javascript" src="/nova/global/js/mobility/ExpandingMenu.js"/>
         <script type="text/javascript" src="/nova/global/js/mobility/Popup.js"/>
         <script type="text/javascript" src="/nova/global/js/global.js"/>
    </head>
    <body id="mb_bodyMargin" >
         <!-- start - to publish the header details -->
         <div id="mb_navtop">
         <xsl:call-template name="header"/>
         </div>
         <!-- end - to publish the header details -->
         <div id="mb_navMenu">
         <div class="mb_leftContent">
         <!-- start - to publish the left navigation -->
              <div class="mb_menublock">
              <div class="mb_menublockGrayPatch"></div>           
              <xsl:copy-of select="/page/navigation/node()"/>               
              </div>
              <!-- end - to publish the left navigation -->     
              <div class="mb_whitePathch"></div>               
              <!-- start - to publish the Motability image & Related Pags -->
              <div class="mb_mobilityimage">
              <a>
                   <xsl:attribute name="href"><xsl:value-of select="collection/image/IMAGE-LINK"/></xsl:attribute>
                   <img>
                   <xsl:attribute name="src">/nova/<xsl:value-of select="collection/image/filename"/></xsl:attribute>
                   <xsl:attribute name="alt"><xsl:value-of select="collection/image/alt"/></xsl:attribute>
                   <xsl:attribute name="border">0</xsl:attribute>                    
                   <xsl:attribute name="class">mb_imgMotability</xsl:attribute>                    
                   </img>                         
                   </a>
              <xsl:apply-templates select="collection" mode="mb_related_links"/>
              </div>
              <!-- end - to publish the Motability image & Related Pags -->
         </div>
         <!-- start - to publish the right content & footer details -->               
         <div class="mb_rightContent">
              <xsl:apply-templates select="collection" mode="mobility_home"/>
              <xsl:call-template name="footer"/>
         </div>
         <!-- end - to publish the right content & footer details -->
         </div>
    </body>
    <!-- start - to expand and highlight the selected menu/sub-menu item -->
    <xsl:variable name="pageNameWithoutIndex" select="$pageName"/>
    <xsl:choose>
    <xsl:when test="contains($pageNameWithoutIndex,'/')">
         <xsl:variable name="firstNav" select="substring-before($pageNameWithoutIndex,'/')"/>
         <xsl:variable name="secondNav" select="substring-after($pageNameWithoutIndex,'/')"/>
         <script>
              expand('<xsl:value-of select="$firstNav"/>','<xsl:value-of select="$pageNameWithoutIndex"/>');
         </script>     
    </xsl:when>
    <xsl:otherwise>
         <xsl:variable name="firstNav" select="$pageNameWithoutIndex"/>
         <script>
              expand('<xsl:value-of select="$firstNav"/>');
         </script>     
    </xsl:otherwise>
    </xsl:choose>
    <!-- start - to expand and highlight the selected menu/sub-menu item -->
    </html>
    </xsl:template>
    </xsl:stylesheet>
    and sitemap.map file is
    <?xml version="1.0"?>
    <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
    <!-- Reorganised sitemap as follows:- printing pipeline, then main pipeline-->
    <!--============================ Views ======================================-->
         <map:views>
              <map:view from-label="beautify" name="beautify">
                   <map:transform type="i18n">
                        <map:parameter name="locale" value="{../locale}"/>
                   </map:transform>
                   <map:serialize type="xml"/>
              </map:view>
         </map:views>
    <!--=========================== Pipelines =================================-->
    <map:pipelines>
         <map:pipeline>
    <!--============= to generate Content for navigation ===============================-->
         <map:match pattern="navigation.xml">
         <map:generate src="cocoon:/navigation_gen.xml"/>
         <map:transform src="context:///stylesheets/mobility/navigation.xsl"/>
    <map:serialize type="xml"/>
         </map:match>
    <!--============= to generate Channel information for Mobility =================-->
         <map:act type="nscData">
              <map:match pattern="navigation_gen.xml">
              <map:generate src="cocoon://sitemap-gen_{../locale-path}.xml" />
              <map:transform src="context:///stylesheets/mobility/channel.xsl"/>
         <map:serialize type="xml"/>
              </map:match>
         </map:act>
         <map:act type="nscData">
    <!--============ NOVA - Mobility root pipeline ====================-->
              <map:match pattern="">
                   <map:redirect-to uri="mobility/index.html"/>
              </map:match>
              <map:match pattern="home/index.*">
                   <map:redirect-to uri="/home/mobility/index.html"/>
              </map:match>
    <!--================================= Nissan mobility Home Page =================================-->
                   <map:match pattern="index.*">
                   <map:aggregate element="page" label="beautify">
                             <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                             <map:part src="cocoon://{../locale-path}/mobility/home.chan"/>
              </map:aggregate>
              <map:call resource="get_{1}">
                             <map:parameter name="filename" value="home"/>
                             <map:parameter name="titlefilename" value="nissan uk,home"/>
                             <map:parameter name="keywordname" value="nissan,uk,home"/>
                        </map:call>
              </map:match>
              <!--=================================== Scheme page =======================================-->
              <map:match pattern="scheme/index.*">
                        <map:aggregate element="page" label="beautify">
                   <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                             <map:part src="cocoon://{../locale-path}/mobility/scheme.chan"/>
              </map:aggregate>
                        <map:call resource="get_{1}">
                             <map:parameter name="filename" value="scheme" />
                             <map:parameter name="titlefilename" value="nissan uk,scheme"/>
                             <map:parameter name="keywordname" value="nissan,uk,scheme"/>
                        </map:call>
              </map:match>
              <!--====================== For the Scheme sub-menu pages =========================-->
              <map:match pattern="scheme/*/index.*">
                        <map:aggregate element="page" label="beautify">
                   <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                             <map:part src="cocoon://{../locale-path}/mobility/scheme/{1}.chan"/>
              </map:aggregate>
                        <map:call resource="get_{2}">
                             <map:parameter name="filename" value="{1}" />
                             <map:parameter name="file-path" value="scheme/{1}"/>
                             <map:parameter name="file-path1" value="Nissan UK,scheme-{1}"/>
                             <map:parameter name="keywordname" value="nissan,uk,scheme,{1}"/>
                        </map:call>
              </map:match>
              <!--====================== For those pages under construction =============-->
              <map:match pattern="mobility_centre/index.*">
                        <map:aggregate element="page" label="beautify">
                   <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                             <map:part src="cocoon://{../locale-path}/mobility/mobility_centre.chan"/>
              </map:aggregate>
                        <map:call resource="get_{1}">
                             <map:parameter name="filename" value="mobility_centre" />
                             <map:parameter name="titlefilename" value="Nissan UK,mobility_centre" />
                        </map:call>
              </map:match>
              <!--====================== For the sub-menu pages under construction=========================-->
              <map:match pattern="mobility_centre/*/index.*">
                        <map:aggregate element="page" label="beautify">
                   <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                             <map:part src="cocoon://{../locale-path}/mobility/mobility_centre.chan"/>
              </map:aggregate>
                        <map:call resource="get_{2}">
                             <map:parameter name="filename" value="{1}" />
                             <map:parameter name="file-path" value="mobility_centre/{1}"/>
                        </map:call>
              </map:match>
    <!--================================== Vehicles page =======================================-->
    <map:match pattern="vehicles/index.*">
    <map:aggregate element="page" label="beautify">
    <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
    <map:part src="cocoon://{../locale-path}/mobility/vehicles.chan"/>
    <map:part element="passenger" src="cocoon://{../locale-path}/mobility/vehicles/passenger.chan"/>
    <map:part element="lcv" src="cocoon://{../locale-path}/mobility/vehicles/lcv.chan"/>
    <map:part element="four-by-four" src="cocoon://{../locale-path}/mobility/vehicles/4x4.chan"/>
    </map:aggregate>
    <map:call resource="get_{1}">
    <map:parameter name="filename" value="vehicles" />
    <map:parameter name="titlefilename" value="nissan uk,vehicles"/>
    </map:call>
    </map:match>
    <!--=============================== For Vehicles sub-menu pages =============================-->
    <map:match pattern="vehicles/*/*/index.*">
    <map:aggregate element="page" label="beautify">
    <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
    <map:part src="cocoon://{../locale-path}/mobility/vehicles.chan"/>
    <map:part src="cocoon://{../locale-path}/mobility/vehicles/{1}/{2}.chan"/>
    <map:part element="" strip-root="false" src="cocoon://{../locale-path}/mobility/vehicles/{1}/{2}/NSC-MODEL-XTND.type"/>
    <map:part src="cocoon://{../locale-path}/vehicles/{1}/{2}/grades-and-specs/EQUIPMENT-XTND.type"/>
    <map:part src="cocoon://{../locale-path}/vehicles/{1}/{2}/grades-and-specs/GRADE-XTND.type"/>
    <map:part src="cocoon://{../locale-path}/vehicles/{1}/{2}/carbuilder/ENGINE-AND-TRANS-XTND.type"/>
    <map:part element="BODY" src="cocoon://{../locale-path}/vehicles/{1}/{2}/carbuilder/BODY-XTND.type"/>
    <map:part element="" strip-root="true" src="cocoon://logicsheets/vehicles/pv-gp.xsp?country={../country}&locale={../locale-path}&with-vat={../with-vat}&modelGroup={2}&cache-timeout=600" />
    </map:aggregate>
    <map:call resource="get_{3}">
    <map:parameter name="filename" value="vehicles-details" />
    <map:parameter name="file-path" value="vehicles/{1}/{2}"/>
    <map:parameter name="tiltefile-path" value="nissan uk, vehicles -{1}-{2}"/>
    <map:parameter name="tiltefile-path-intro" value="nissan uk, vehicles -{1}-{2}-intro"/>
    </map:call>
    </map:match>
    <!--======================== Performance/Energy (Frugality page) ==============================-->
    <map:match pattern="*/*/*/performance/energy/index.*">
    <map:aggregate element="page">
    <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
    <map:part src="cocoon://{../locale-path}/mobility/vehicles/image.type"/>
    <map:part src="cocoon://{../locale-path}/mobility/vehicles/Mb_Relatedlinks.type"/>
    <map:part src="cocoon://{../locale-path}/mobility/vehicles/{2}/{3}.chan"/>
    <map:part src="cocoon://logicsheets/vehicles/engine-energy.xsp?locale={../locale-path}&model-code={3}&cache-timeout=600" />
    <map:part src="cocoon://logicsheets/vehicles/model-body-engine-attributes.xsp?model-code={3}&cache-timeout=600"/>
    </map:aggregate>
    <map:call resource="get_{4}">
    <map:parameter name="filename" value="energy" />
    <map:parameter name="file-path" value="vehicles/{2}/{3}"/>
    </map:call>
    </map:match>
    <!--======================== Price popup for Vehicle pages ==============================-->
    <map:match pattern="*/*/*/price-popup.*">
    <map:aggregate element="page">
    <map:part src="cocoon://{../locale-path}/mobility/vehicles/{2}/{3}.chan"/>
    </map:aggregate>
    <map:call resource="get_{4}">
    <map:parameter name="filename" value="price-popup" />
    <map:parameter name="file-path" value="vehicles/{3}"/>
    </map:call>
    </map:match>
              <!--====================== News and Events page ==========================-->
              <map:match pattern="news-events/index.*">
                        <map:aggregate element="page" label="beautify">
                             <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                             <map:part src="cocoon://{../locale-path}/mobility/news-events.chan"/>
              </map:aggregate>
                        <map:call resource="get_{1}">
                             <map:parameter name="filename" value="news-events" />
                        </map:call>
              </map:match>
              <!--======================= News Article page ============================-->
    <map:match pattern="news-events/*.*">
    <map:aggregate element="page" label="beautify">
    <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
    <map:part src="cocoon://{../locale-path}/mobility/news-events.chan"/>
    <map:part src="cocoon://{../locale-path}/{1}.item"/>
    </map:aggregate>
    <map:call resource="get_{2}">
    <map:parameter name="filename" value="news-article"/>
    </map:call>
    </map:match>
              <!--=================== contact us / Requests page =======================-->
              <map:match pattern="contactus/index.*">
                        <map:aggregate element="page" label="beautify">
                             <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                             <map:part src="cocoon://{../locale-path}/mobility/contactus.chan"/>
              </map:aggregate>
                        <map:call resource="get_{1}">
                             <map:parameter name="filename" value="contactus" />
                        </map:call>
              </map:match>
              <!-- ================ Brochure and Test Drive page =========================== -->
              <map:match pattern="*/brochure_testdrive/index.*">
                   <map:act type="sessionCreator"> <!-- sessionCreator -->     
                        <map:aggregate element="page" label="beautify">
                             <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
    <map:part src="cocoon://{../../locale-path}/mobility/contactus/image.type"/>
    <map:part src="cocoon://{../../locale-path}/mobility/contactus/Mb_Relatedlinks.type"/>
    <map:part src="cocoon://request.params"/>          
                             <map:part src="cocoon://session.params"/>
    <map:part src="cocoon://vehicles/leads_vehicle_data.xml"/>
         <map:part element="brochure" strip-root="true" src="cocoon://{../../locale-path}/mobility/contactus/brochure_testdrive.chan"/>
                             <map:part element="testdrive" strip-root="true" src="cocoon://{../../locale-path}/mobility/contactus/testdrive.chan"/>
                             <map:part element="" strip-root="true" src="../content/contact/{../../locale-path}/brochure/step1-static.xml"/>
              </map:aggregate>
                        <map:call resource="get_{../2}">
                             <map:parameter name="filename" value="brochure-testdrive" />
                             <map:parameter name="file-path" value="{../1}/brochure_testdrive" />
                             <map:parameter name="file-path" value="nissan uk,passanger-range " />
                        </map:call>
                   </map:act>     
              </map:match>
              <!-- ===================== Enquiries page ================================ -->
              <map:match pattern="*/enquiries/index.*">
                   <map:act type="sessionCreator"> <!-- sessionCreator -->     
                        <map:aggregate element="page" label="beautify">
                             <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                             <map:part src="cocoon://{../../locale-path}/mobility/contactus/image.type"/>
    <map:part src="cocoon://{../../locale-path}/mobility/contactus/Mb_Relatedlinks.type"/>
                             <map:part src="cocoon://{../../locale-path}/mobility/contactus/enquiries.chan"/>
                             <map:part element="" strip-root="true" src="../content/contact/{../../locale-path}/mobility/mobility.xml"/>
              </map:aggregate>
                        <map:call resource="get_{../2}">
                             <map:parameter name="filename" value="enquiries" />
                             <map:parameter name="file-path" value="{../1}/enquiries" />
                        </map:call>
                   </map:act>     
              </map:match>
              <!-- ========================= Your Details page ============================ -->
    <map:match pattern="*/*/yourdetails.*/*">
         <map:act type="sessionWriter">
    <map:aggregate element="page" label="beautify">
    <map:part src="cocoon://request.params"/>
    <map:part src="cocoon://session.params"/>
    <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
    <map:part src="cocoon://{../../locale-path}/mobility/contactus/image.type"/>
              <map:part src="cocoon://{../../locale-path}/mobility/contactus/Mb_Relatedlinks.type"/>
    <map:part element="" strip-root="true" src="../content/contact/{../../locale-path}/mobility/step1-static.xml"/>
    <map:part element="" strip-root="false" src="../content/contact/{../../locale-path}/mobility/occupation.xml"/>
    </map:aggregate>
    <map:call resource="get_{../3}">
    <map:parameter name="filename" value="yourdetails" />
    <map:parameter name="file-path" value="{../1}/{../2}"/>
    <map:parameter name="formValues" value="{../4}"/>
    </map:call>
    </map:act>
    </map:match>
         <!--========================= No Postal Address code Page =========================-->
         <map:match pattern="*/*/postcode.*/*">
                        <map:act type="sessionWriter">     
                             <map:aggregate element="page" >
                                  <map:part src="cocoon://request.params"/>          
                             <map:part src="cocoon://session.params"/>     
                             <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
         <map:part src="cocoon://{../../locale-path}/mobility/contactus/image.type"/>
         <map:part src="cocoon://{../../locale-path}/mobility/contactus/Mb_Relatedlinks.type"/>
                             <map:part strip-root="true" src="cocoon://contact/common_{../../locale-path}.xml?section-header-id=/{../../locale-path}/contact/brochure"/>                          
                                  <map:part element="" strip-root="true" src="../content/contact/{../../locale-path}/mobility/step1-static.xml"/>
                                  <map:part element="" strip-root="false" src="../content/contact/{../../locale-path}/common/occupation.xml"/>                              
                                  <map:part element="" strip-root="false" src="cocoon://search.qas"/>
                                  <map:part strip-root="true" src="cocoon://{../../locale-path}/contact.chan"/>
                                  <map:part strip-root="true" src="cocoon://{../../locale-path}/contact/brochure.chan_errcheck"/>
                             </map:aggregate>
                             <map:call resource="get_{../3}">
                                  <map:parameter name="filename" value="yourdetails" />
                                  <map:parameter name="file-path" value="{../1}/{../2}"/>
                                  <map:parameter name="formValues" value="{../4}"/>
                             </map:call>
                        </map:act>     
                   </map:match>
                   <map:match pattern="*/list.*">
                        <map:act type="sessionWriter">
                             <map:aggregate element="page">
                                  <map:part src="cocoon://request.params"/>          
                             <map:part src="cocoon://session.params"/>
                                  <map:part strip-root="true" src="cocoon://contact/common_{../../locale-path}.xml?section-header-id=/{../../locale-path}/contact/{../1}"/>      
                                  <map:part element="" strip-root="true" src="../content/contact/{../../locale-path}/address/list-static.xml"/>
                             <map:part src="cocoon://results.qas"/>          
                             </map:aggregate>                         
                             <map:call resource="get_{../2}">
                                  <map:parameter name="file-path" value="/{nsc-short-name}/{locale-path}/site-media/contact/"/>                         
                                  <map:parameter name="filename" value="address/list" />
                                  <map:parameter name="nedstat-path" value="{../../country-upper}.{../1}.askaddress"/>                              
                             </map:call>
                        </map:act>
                   </map:match>     
                   <map:match pattern="*/validate.*">
                        <map:act type="sessionWriter">
                             <map:aggregate element="page" >
                                  <map:part src="cocoon://request.params"/>          
                             <map:part src="cocoon://session.params"/>
                                       <map:part strip-root="true" src="cocoon://contact/common_{../../locale-path}.xml?section-header-id=/{../../locale-path}/contact/{../1}"/>      
                                  <map:part element="" strip-root="true" src="../content/contact/{../../locale-path}/address/validate-static.xml"/>
                             <map:part src="cocoon://results.qas"/>          
                             </map:aggregate>
                             <map:call resource="get_{../2}">
                                  <map:parameter name="file-path" value="/{nsc-short-name}/{locale-path}/site-media/contact/"/>                         
                                  <map:parameter name="filename" value="address/validate" />
                                  <map:parameter name="nedstat-path" value="{../../country-upper}.{../1}.askaddress"/>                              
                             </map:call>
                        </map:act>
                   </map:match>
              <map:match pattern="*/*/confirmation.*">
                             <map:act type="sessionWriter">
                             <map:act type="data-submit">     
                                  <map:aggregate element="page" >
                                       <map:part src="cocoon://request.params"/>          
                                  <map:part src="cocoon://session.params"/>
                                  <map:part src="cocoon://vehicles/leads_vehicle_data.xml"/>     
                                  <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
    <map:part src="cocoon://{../../../locale-path}/mobility/contactus/image.type"/>
                                  </map:aggregate>
                                  <map:call resource="get_{../../3}">
                                       <map:parameter name="filename" value="confirmation"/>
                                       <map:parameter name="file-path" value="{../../1}/{../../2}"/>
                                  </map:call>
                             </map:act>
                        </map:act>
                   </map:match>
         <!--============================ Tell us More Page ================================-->
    <map:match pattern="*/*/more.*">
                        <map:act type="sessionCreator">                    
                             <map:aggregate element="page" >
                                  <map:part src="cocoon://request.params"/>          
                             <map:part src="cocoon://session.params"/>
                             <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
              <map:part src="cocoon://{../../locale-path}/mobility/contactus/image.type"/>
    <map:part src="cocoon://{../../locale-path}/mobility/contactus/Mb_Relatedlinks.type"/>
                                  <map:part strip-root="true" src="cocoon://contact/common_{../../locale-path}.xml?section-header-id=/{../../locale-path}/contact/{../1}"/>     
                                  <map:part element="" strip-root="true" src="../content/contact/{../../locale-path}/common/more-static.xml"/>
                                  <map:part strip-root="true" src="cocoon://{../../locale-path}/contact.chan_errcheck"/>
                                  <map:part strip-root="false" src="../content/contact/received-files/Leisure_{../../locale-path}.xml"/>
                                  <map:part strip-root="false" src="../content/contact/received-files/Sport_{../../locale-path}.xml"/>
                                  <map:part strip-root="false" src="../content/contact/received-files/FinanceType_{../../locale-path}.xml"/>
                                  <map:part strip-root="false" src="../content/contact/received-files/FuelType_{../../locale-path}.xml"/>
                             </map:aggregate>
                             <map:call resource="get_{../3}">
                                  <map:parameter name="filename" value="more" />
                                  <map:parameter name="file-path" value="/{nsc-short-name}/{locale-path}/site-media/contact/"/>                              
                                  <map:parameter name="nedstat-path" value="{../../country-upper}.contact.{2}.more"/>
                             </map:call>
                        </map:act>
                   </map:match>
         <!--============================ confirmation2 ================================-->
    <map:match pattern="*/*/confirm_more.*">
    <map:act type="sessionWriter">
    <map:act type="data-submit">
    <map:aggregate element="page" >
    <map:part src="cocoon://request.params"/>
    <map:part src="cocoon://session.params"/>
    <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                   <map:part src="cocoon://{../../../locale-path}/mobility/contactus/image.type"/>
    <map:part strip-root="true" src="cocoon://contact/common_{../../../locale-path}.xml?section-header-id=/{../../../locale-path}/contact/{../../1}"/>
    <map:part element="" strip-root="true" src="../content/contact/{../../../locale-path}/common/confirmation-static.xml"/>
    </map:aggregate>
    <map:call resource="get_{../../3}">
    <map:parameter name="filename" value="confirmation_more" />
    <map:parameter name="file-path" value="{../../1}/{../../2}"/>
    </map:call>
    </map:act>
    </map:act>
    </map:match>
    <!--============================ Sitemap page ================================-->
              <map:match pattern="sitemap/index.*">
                        <map:aggregate element="page" label="beautify">
                             <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
                             <map:part src="cocoon:/navigation_gen.xml"/>
                             <map:part src="cocoon://{../locale-path}/mobility/sitemap.chan"/>
              </map:aggregate>
                        <map:call resource="get_{1}">
                             <map:parameter name="filename" value="sitemap"/>
                        </map:call>
         </map:match>
         <!-- =========================== Image PopUp ================================= -->
    <map:match pattern="*/image-popup.*">
         <map:aggregate element="page" label="beautify">
                        <map:part src="cocoon://{../locale-path}/mobility/scheme.chan"/>
                   </map:aggregate>
    <map:call resource="get_{2}">
                        <map:parameter name="filename" value="image-popup"/>
              </map:call>
         </map:match>
    <!-- ======================== Editorial - PopUp ================================== -->
    <map:match pattern="scheme/editorial-popup.*">
              <map:aggregate element="page" label="beautify">
                   <map:part src="cocoon://{../locale-path}/mobility/scheme/editorial-page-standard.type"/>
                   </map:aggregate>
    <map:call resource="get_{1}">
                   <map:parameter name="filename" value="editorial-popup"/>
              </map:call>
         </map:match>
    <!--=========================== Terms and Conditions =================================-->
    <map:match pattern="terms-conditions/index.*">
    <map:aggregate element="page" label="beautify">
    <map:part element="" strip-root="true" src="cocoon:/navigation.xml"/>
    <map:part src="cocoon://{../locale-path}/mobility/home/editorial-page-faq-short.type"/>
    <map:part src="cocoon://{../locale-path}/mobility/home/image.type"/>
    </map:aggregate>
    <map:call resource="get_{1}">
    <map:parameter name="filename" value="terms-conditions"/>
    </map:call>
    </map:match>
         </map:act>
         </map:pipeline>
    </map:pipelines>
    <!--=========================== Resources =================================-->
         <map:resources>
              <map:resource name="get_html">
                   <map:act type="nscData">     
                   <map:transform type="i18n">
                             <map:parameter name="locale" value="{../locale}" />
                        </map:transform>               
                        <map:transform type="xslt" src="cocoon://stylesheets/mobility/{../filename}.xsl">
                             <map:parameter name="pageName" value="{../filename}"/>
                             <map:parameter name="titlePage" value="{../titlefilename}"/>
                             <map:parameter name="keyword" value="{../keywordname                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Works for me. What happened when you tried?
    <pre style="
    font-family: Monaco, 'Courier New', Courier, monospace;
    font-size: 10px;
    font-weight: normal;
    margin: 0px;
    padding: 5px;
    border: 1px solid #000000;
    width: 720px;
    color: #000000;
    background-color: #E6E6EE;
    overflow: auto;"
    title="this text can be pasted into the AppleScript Editor">
    tell application "Finder" to display dialog "I need ® or ™ in dialog box text" with title "I need ® or ™ in dialog box text" buttons {"Aha!"} default button 1</pre>

  • How Can I speed  up the results on my JSP page with the help of Caching.

    I am generating a dropdown listbox by merging an xml file with a style sheet(xsl).
    This list box comes up fine without any problems. Now, I am adding some advanced
    logic to the
    style sheet (xsl) to use the same xml file in a more efficient way. This time
    the generation
    of the list box is taking much longer (upto 25 seconds) although I get the results
    I want.
    Is there any way I could speedup this process by using weblogics caching. I know
    the process is slowing down
    due to the code in the stylesheet. Will caching resolve this issue?. I tried
    using
    <wl:cache> </wl:cache> on the jsp page generating this listbox but found no improvement.
    Any help will be very much appreciated.

    turn off your phone, unplug your router, leace it off for 30 seconds, and then power it back on and turn the iphone back on

  • XSLT and Java lookup cache

    Hi,
    I´m trying the "Easy RFC lookup from XSLT mappings using a Java helper class" article and I getting a weird problem.
    The result of the RFC lookup called inside the java class is maintained in a kind of cache and  I always get the same results independent of the parameters I use in the following calls.
    Just after calling a Complete Cache Refresh (SXI_CACHE) I got a new result to the lookup.
    If I call in the Interface Mapping Test option it runs fine. However, when I call it from my scenario (SOAP Adapter Sender) the first result of the lookup will be returned until a forced cache refresh.
    Any ideas?
    Thank you,
    Fabiano.

    Hello Fabiano,
    I had the same problem like you had.
    The main Problem is that with the example code the request variable is created as NodeList object. In XSLT a variable is somekind of a constant and can't be changed. As the request object is empty after the first request the programm fails at the following line:
    Source source = new DOMSource(request.item(0));
    So I've created a workaround for this problem.
    In the call of the template I've put the request as a parameter object at the template call:
    <xsl:with-param name="req">
    <rfc:PLM_EXPLORE_BILL_OF_MATERIAL xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
      <APPLICATION>Z001</APPLICATION>
      <FLAG_NEW_EXPLOSION>X</FLAG_NEW_EXPLOSION>
      <MATERIALNUMBER><xsl:value-of select="value"/></MATERIALNUMBER>
      <PLANT>FSD0</PLANT>
      <VALIDFROM><xsl:value-of select="//Recordset/Row[name='DTM-031']/value"/></VALIDFROM>
      <BOMITEM_DATA/>
    </rfc:PLM_EXPLORE_BILL_OF_MATERIAL>
    </xsl:with-param>
    With this change the request will be provided as a String object and not as a NodeList object.
    Afterwards the RfcLookup.java has to be changed to the following:
    package com.franke.mappings;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import java.io.StringWriter;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.sap.aii.mapping.lookup.Channel;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.lookup.RfcAccessor;
    import com.sap.aii.mapping.lookup.LookupService;
    import com.sap.aii.mapping.lookup.XmlPayload;
    * @author Thorsten Nordholm Søbirk, AppliCon A/S
    * Helper class for using the XI Lookup API with XSLT mappings for calling RFCs.
    * The class is generic in that it can be used to call any remote-enabled
    * function module in R/3. Generation of the XML request document and parsing of
    * the XML response is left to the stylesheet, where this can be done in a very
    * natural manner.
    * TD:
    * Changed the class that request is sent as String, because of IndexOutOfBound-exception
    * When sending multiple requests in one XSLT mapping.
    public class RfcLookup {
         * Execute RFC lookup.
         * @param request RFC request - TD: changed to String
         * @param service name of service
         * @param channelName name of communication channel
         * @param inputParam mapping parameters
         * @return Node containing RFC response
         public static Node execute( String request,
                 String service,
                 String channelName,
                 Map inputParam)
              AbstractTrace trace = (AbstractTrace) inputParam.get(StreamTransformationConstants.MAPPING_TRACE);
              Node responseNode = null;
              try {
                  // Get channel and accessor
                  Channel channel = LookupService.getChannel(service, channelName);
                  RfcAccessor accessor = LookupService.getRfcAccessor(channel);
                   // Serialise request NodeList - TD: Not needed anymore as request is String
                   /*TransformerFactory factory = TransformerFactory.newInstance();
                   Transformer transformer = factory.newTransformer();
                   Source source = new DOMSource(request.item(0));
                   ByteArrayOutputStream baos = new ByteArrayOutputStream();
                   StreamResult streamResult = new StreamResult(baos);
                   transformer.transform(source, streamResult);*/
                    // TD: Add xml header and remove linefeeds for the request string
                    request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+request.replaceAll("[\r\n]+", ""); 
                    // TD: Get byte Array from request String to send afterwards
                    byte[] requestBytes = request.getBytes();
                   // TD: Not used anymore as request is String
                    //byte[] requestBytes = baos.toByteArray();
                    trace.addDebugMessage("RFC Request: " + new String(requestBytes));
                    // Create input stream representing the function module request message
                    InputStream inputStream = new ByteArrayInputStream(requestBytes);
                    // Create XmlPayload
                    XmlPayload requestPayload =LookupService.getXmlPayload(inputStream);
                    // Execute lookup
                    XmlPayload responsePayload = accessor.call(requestPayload);
                    InputStream responseStream = responsePayload.getContent();
                    TeeInputStream tee = new TeeInputStream(responseStream);
                    // Create DOM tree for response
                    DocumentBuilder docBuilder =DocumentBuilderFactory.newInstance().newDocumentBuilder();
                    Document document = docBuilder.parse(tee);
                    trace.addDebugMessage("RFC Response: " + tee.getStringContent());
                    responseNode = document.getFirstChild();
              } catch (Throwable t) {
                   StringWriter sw = new StringWriter();
                   t.printStackTrace(new PrintWriter(sw));
                   trace.addWarning(sw.toString());
              return responseNode;
         * Helper class which collects stream input while reading.
         static class TeeInputStream extends InputStream {
               private ByteArrayOutputStream baos;
               private InputStream wrappedInputStream;
               TeeInputStream(InputStream inputStream) {
                    baos = new ByteArrayOutputStream();
                    wrappedInputStream = inputStream;
               * @return stream content as String
               String getStringContent() {
                    return baos.toString();
              /* (non-Javadoc)
              * @see java.io.InputStream#read()
              public int read() throws IOException {
                   int r = wrappedInputStream.read();
                   baos.write(r);
                   return r;
    Then you need to compile and upload this class and it should work.
    I hope that this helps you.
    Best regards
    Till

  • XSLT Cache problem including remote host stylesheets

    Hi.
    We are building an XSL page that includes changing named templates through xsl:includes where the included stylesheet is on a remote server.
    The content of the remote stylesheet can change at any time. The problem is that the Oracle XSLT caching mecanism does not "see" this, so we get the old page..
    How can we turn the caching off? Is it possible to turn caching off for selected stylesheets?
    Any clues or pointers?
    Regards
    Lionel

    Hi.
    We are building an XSL page that includes changing named templates through xsl:includes where the included stylesheet is on a remote server.
    The content of the remote stylesheet can change at any time. The problem is that the Oracle XSLT caching mecanism does not "see" this, so we get the old page..
    How can we turn the caching off? Is it possible to turn caching off for selected stylesheets?
    Any clues or pointers?
    Regards
    Lionel

  • XSLT Caching

    HI,
    I am using JAXP Template object to cache my XSLT files. Can my code pass parameters to a cached XSLT file?
    Thanks,
    Java-Junkie

    I am using the following code to handle my transforms, can you suggest how I would cache the xslt files?
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    import java.util.*;
    import java.io.*;
    public class TransformerPool
    /** Source control version number. */
    public final static String SOURCE_VERSION_INFO = "%R%";
    /** Minimum number of transformers per transformation. */
    public final static int MIN_INSTANCES = 1;
    /** Maximum number of transformers per transformation. */
    public final static int MAX_INSTANCES = 5;
    // class members
    private static TransformerFactory tFactory;
    private static TransformerPool thisTP;
    // data members
    private Map transformers;
    private int defaultMinInstances;
    private int defaultMaxInstances;
    private class PoolEntry
    private int minInstances;
    private int maxInstances;
    private int currentInstances;
    private int hits;
    private int waitStates;
    private int waitIter;
    private StreamSource xslDocument;
    private boolean busy[];
    private Transformer processors[];
    public PoolEntry(TransformerPool source, String xslDocument)
    init(source);
    initTransformer(xslDocument);
    public PoolEntry(TransformerPool source, StreamSource streamSource)
    init(source);
    initTransformer(streamSource);
    public void init(TransformerPool source)
    minInstances = source.defaultMinInstances;
    maxInstances = source.defaultMaxInstances;
    currentInstances = minInstances;
    hits = 0;
    waitStates = 0;
    waitIter = 0;
    public void initTransformer(String xslDocument)
    initTransformer(new StreamSource(new StringReader(xslDocument)));
    public void initTransformer(StreamSource xslDocument)
    this.xslDocument = xslDocument;
    busy = new boolean[maxInstances];
    processors = new Transformer[maxInstances];
    for ( int i=0; i<maxInstances; i++ )
    busy[i] = false;
    processors[i] = i < currentInstances ? newTransformer() : null;
    private Transformer newTransformer()
    synchronized (TransformerPool.tFactory)
    try
    Templates cashedXSLT = TransformerPool.tFactory.newTemplates(xslDocument);
    Transformer trans = cashedXSLT.newTransformer();
    return trans;
    //return TransformerPool.tFactory.newTransformer(xslDocument);
    catch (TransformerConfigurationException e)
    return null;
    public boolean transform(Source xml, Result result, Properties params)
    boolean isBusy = false;
    boolean allNull = false;
    Transformer xform = null;
    int index = -1;
    do
    if (isBusy)
    try
    Thread.currentThread().sleep(100);
    catch (InterruptedException e)
    synchronized (this)
    allNull = true;
    for ( int i=0; i<maxInstances; i++ )
    if (processors[i] != null)
    allNull = false;
    if (processors[i] != null && busy[i] == false)
    index = i;
    xform = processors;
    busy[i] = true;
    isBusy = false;
    break;
    if (allNull == true) // theres nothing we can do; fail
    return false;
    if (index == -1)
    waitIter++;
    isBusy = true;
    } while (isBusy);
    // we should have a transformer now
    try
    String paramName;
    xform.clearParameters();
    if(params!=null){
    for ( Enumeration e=params.propertyNames(); e.hasMoreElements(); )
    paramName = (String)e.nextElement();
    xform.setParameter(paramName, params.get(paramName));
    Message.out(Message.DEBUG, "starting transform");
    xform.transform(xml, result);
    Message.out(Message.DEBUG, "ending transform");
    catch (Exception e)
    e.printStackTrace();
    Message.out(Message.DEBUG, "exception? " + e.toString());
    return false;
    finally
    if (xform != null)
    synchronized (this)
    busy[index] = false;
    // increment counters
    if (isBusy)
    waitStates++;
    hits++;
    return true;
    * Create a new {@link TransformerPool}.
    private TransformerPool()
    if (tFactory == null)
    tFactory = TransformerFactory.newInstance();
    transformers = new HashMap();
    defaultMinInstances = MIN_INSTANCES;
    defaultMaxInstances = MAX_INSTANCES;
    * Create a new {@link TransformerPool}.
    * @return A {@link TransformerPool} instance.
    public static synchronized TransformerPool getInstance()
    if (thisTP == null)
    thisTP = new TransformerPool();
    return thisTP;
    private synchronized PoolEntry newEntry(StreamSource xsl)
    return xsl == null ? null : new PoolEntry(this, xsl);
    public synchronized void dump(PrintWriter out)
    PoolEntry entry;
    String key;
    out.println("Default instances: " + defaultMinInstances +
    " (minimum), " + defaultMaxInstances + " (maximum)");
    out.println("Transfomers: " + transformers.size());
    out.println();
    for ( Iterator iter=transformers.keySet().iterator(); iter.hasNext(); )
    key = (String)iter.next();
    entry = (PoolEntry)transformers.get(key);
    out.println("Transformer: " + key);
    out.println(" Instances: " + entry.minInstances + " (minimum), " +
    entry.maxInstances + " (maximum), " + entry.currentInstances +
    " (current)");
    out.println(" Hits: " + entry.hits + " (" + entry.waitStates + " busy)");
    for ( int i=0; i<entry.maxInstances; i++ )
    out.println(" (" + i + ") " + entry.processors[i] + " " + (entry.busy[i] ? "busy" : "not busy"));
    out.println();
    out.flush();
    * Add a new transformation.
    * @param name Transformation name as a String.
    * @param xsl Transformation XSLT document as a StreamSource.
    public synchronized void addTransformation(String name, StreamSource xsl)
    PoolEntry entry = newEntry(xsl);
    if (entry != null)
    transformers.put(name, entry);
    * Remove a given transformation.
    * @param name Transformation name as a String.
    public synchronized void removeTransformation(String name)
    transformers.remove(name);
    * Determines if a given transformation exists.
    * @param name Transformation name as a String.
    * @return <code>true</code> if there is a transformation by that
    * name, otherwise <code>false</code>.
    public synchronized boolean isTransformation(String name)
    return transformers.containsKey(name);
    * Transform an XML document using a named transformation.
    * @param name Transformation name as a String.
    * @param xml XML document to transform as a Source.
    * @param result Transformed document as a Result.
    * @return <code>true</code> if the transformation succeeded or
    * <code>false</code> if the transformation couldn't be completed
    * for any reason.
    public synchronized boolean transform(String name, Source xml, Result result)
    // find the entry
    PoolEntry entry = (PoolEntry)transformers.get(name);
    if (entry == null)
    return false;
    // transform
    return entry.transform(xml, result, null);
    * Transform an XML document using a named transformation.
    * @param name Transformation name as a String.
    * @param xml XML document to transform as a Source.
    * @param result Transformed document as a Result.
    * @param params Collection of transformation parameters as Properties.
    * @return <code>true</code> if the transformation succeeded or
    * <code>false</code> if the transformation couldn't be completed
    * for any reason.
    public synchronized boolean transform(String name, Source xml, Result result, Properties params)
    // find the entry
    PoolEntry entry = (PoolEntry)transformers.get(name);
    if (entry == null)
    return false;
    // transform
    return entry.transform(xml, result, params);

  • Cache problem for included stylesheets on remote server

    Hi.
    We are building an XSL page that includes changing named templates through xsl:includes where the included stylesheet is on a remote server.
    The content of the remote stylesheet can change at any time. The problem is that the Oracle XSLT caching mecanism does not "see" this, so we get the old page..
    How can we turn the caching off? Is it possible to turn caching off for selected stylesheets?
    Any clues or pointers?
    Regards
    Lionel

    I by no means want to sound belittling... so don't take me that way..
    You need to understand the basics of files, and networks. You can't check if a file exists on another machine if you don't have a network protocol to communicate with. The reason \\ works under windows is because you are using an invisible (to you) network protocol. You probably know it as windows sharing. If your file were not shared under it's own name, that method wouldn't work (I'm assuming your entire drive is shared without a password... a horrible security flaw...but one thing at a time)
    You can use FTP protocol to check if a file exists. You can either send the raw text FTP commands through a socket connection in java, or you can use a freely available FTP java API to make it a bit more simple. You could also write a small java server on the other machine, and have it tell you what you need to know with a socket connection. In this way, you have created your very own network protocol.

  • Cannot view XML input using XSL style sheet. Please correct the error and..

    Hi All,
    Scenario XML to IDOC.
    The interface determination decides whether to create IDOC X or IDOC Y based on a xml segment value.
    I have an error in the SXMB_MONI:
    <!--  Interface Determination
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="IF_DETERMINATION">CX_ID_PLSRV</SAP:Code>
      <SAP:P1>Problem evaluating a condition: Exception CX_SWF_RLS_RULE occurred (program: CL_SWF_RLS_CONDITION==========CP, include: CL_SWF_RLS_CONDITION==========CM00Q, line: 160).</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Error when determining the inbound interface: Problem evaluating a condition: Exception CX_SWF_RLS_RULE occurred (program: CL_SWF_RLS_CONDITION==========CP, include: CL_SWF_RLS_CONDITION==========CM00Q, line: 160). Problem evaluating a condition: Exception CX_SWF_RLS_RULE occurred (program: CL_SWF_RLS_CONDITION==========CP, include: CL_SWF_RLS_CONDITION==========CM00Q, line: 160). Exception CX_SWF_RLS_RULE occurred (program: CL_SWF_RLS_CONDITION==========CP, include: CL_SWF_RLS_CONDITION==========CM00Q, line: 160). Exception CX_SWF_RLS_OPERAND_MISSING occurred (program: CL_SWF_RLS_COMPARISON=========CP, include: CL_SWF_RLS_COMPARISON=========CM002, line: 63). Exception CX_SWF_RLS_OPERAND_MISSING occurred (program: SAPMSSY1, include: , line: 0). Exception CX_SWF_EXP_EVALUATE occurred (program: CL_SWF_EXP_EXPRESSION=========CP, include: CL_SWF_EXP_EXPRESSION=========CM027, line: 38). Exception CX_SWF_EXP_EXPRESSION occurred (program: CL_SWF_EXP_EXPRESSION=========CP, include: CL_SWF_EXP_EXPRESSION=========CM01Z, line: 520). Exception CX_SWF_EXP_EXPRESSION occurred (program: CL_SAI_SWF_RULE_ENGINE========CP, include: CL_SAI_SWF_RULE_ENGINE========CM00S, line: 42). Problem extracting values from the Payload: Check line 2 column 1 of the XML document</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    From the SXMB_MONI, the inbound message payload is truncated with an error:
    - <ProductIdentification>
      <GlobalProductIdentifier />
    - <PartnerProductIdentification>
    The XML page cannot be displayed
    Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
    The following tags were not closed: Pip3B12ShippingOrderConfirmation, ShippingOrder, ShipmentLineItem, isContainsHazardousMa...
    ">   <GlobalPartnerClassificationCode />
      <ProprietaryProductIdentifier>000000000000101369</ProprietaryProductIdentifier>
      </PartnerProductIdentification>
      </ProductIdentification>
    - <QuantityInformation>
    - <confirmedQuantity>
      <ProductQuantity>1.00</ProductQuantity>
      </confirmedQuantity>
    I've checked that the xml format is OK.
    As a matter of fact, if I try to resend the xml file from directory, the message is processed correctly and the payload shows all the xml file.
    Thanks.
    Daniele
    Edited by: Daniele*Verdone on Feb 1, 2010 11:22 AM
    Edited by: Daniele*Verdone on Feb 1, 2010 11:23 AM

    Hi Suraj,
    That option is not available in FTP mode..
    This option is applicable only for the File adapter. If you enter a value in this field when configuring the sender FTP adapter, it will have no effect.
    Yes, you're right !!
    Are you sure that the message is not getting picked in half-way
    Now, at this time, I can't see the XML data in the CC monitoring because the tool shows only the recent polling execute in the last 10 minutes. If the error recurs, I will check the payload of CC.
    How can I solve the problem with reading incomplete file (FTP mode)?
    ...Meanwhile I will try with Full cache refresh.
    Thanks
    Daniele

  • Error occured while transforming payload using XSL

    Hi,
    When i deployed the SOAOrderBooking BPEL process, an instance created successfully in BPEL console (after submitting orders successfully), but when i clicked the instance window in ESB control to confirm that the service instance successfully received the order and initiated the SOAOrderBooking BPEL process, i can see 2 instances there OrderBookingESB and FulfillmentESB, so now the issue is the FulfillmentESB instance created with some error which is given below:
    Error Message
    Error occured while transforming payload using XSL "esb:///ESB_Projects/SOAEssentials_FulfillmentESB/PurchaseOrder_To_FedexshipmentCollection.xsl". Reason : Could not load XSL transform into the cache for XSL/XSLT "esb:///ESB_Projects/SOAEssentials_FulfillmentESB/PurchaseOrder_To_FedexshipmentCollection.xsl"! Reason : org.apache.slide.structure.ObjectNotFoundException: No object found at /files/ESB_Projects/SOAEssentials_FulfillmentESB!
    at oracle.tip.esb.server.service.EsbRouterSubscription.transform(Unknown Source)
         at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(Unknown Source)
         at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(Unknown Source)
         at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(Unknown Source)
         at oracle.tip.esb.server.dispatch.BusinessEvent.raise(Unknown Source)
         at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(Unknown Source)
         at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(Unknown Source)
         at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(Unknown Source)
         at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(Unknown Source)
         at oracle.tip.esb.server.dispatch.BusinessEvent.raise(Unknown Source)
         at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(Unknown Source)
         at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.........
    Besides after submitting orders, when i clicked "View Current Orders", iam getting 500 internal server error: Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.
    If anyone know how to solve this issue plz let me know...
    Thanks in advance....
    - Indhu
    Message was edited by:
    Indhu

    Looks like you might not have imported the xsl within the project. When you import the files from outside your project you have to have "Add to project" checked.
    Check if you see the xsl file within the project folder.
    DP

  • XSL-1009 XSL:Version

    The following xsl sample will translate with ORAXSL without errors in one of my docs:
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:import href="../generic/parsePOHeader.xsl"/>
    <xsl:import href="../generic/parsePOLine.xsl"/>
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
    <xsl:value-of disable-output-escaping="yes" select="'&lt;?soxtype urn:x-commerceone:document:com:commerceone:XCBL30:XCBL30.sox$1.0?&gt;'"/>
    <xsl:element name="Order">
    <xsl:element name="OrderHeader">
    <xsl:call-template name="parsePOHeader">
    <xsl:with-param name="HEADER" select="//POHEADER"/>
    <xsl:with-param name="ProcessPO" select="'Y'"/>
    </xsl:call-template>
    </xsl:element>
    <xsl:if test="count(//POLINE) &gt; 0">
    <xsl:element name="OrderDetail">
    <xsl:element name="ListOfItemDetail">
    <xsl:for-each select="//POLINE">
    <xsl:call-template name="parseLINE">
    <xsl:with-param name="LineItem" select="."/>
    </xsl:call-template>
    </xsl:for-each>
    </xsl:element>
    </xsl:element>
    </xsl:if>
    <xsl:call-template name="createOrderSummary">
    <xsl:with-param name="NumLines" select="count(//POLINE) + count(//POSUBLINE)"/>
    <xsl:with-param name="Amount" select="//POHEADER/OPERAMT[@qualifier='EXTENDED' and @type='T']"/>
    </xsl:call-template>
    </xsl:element>
    </xsl:template>
    </xsl:stylesheet>
    The following xsl with the same stylesheet statement errors out.
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:import href="../generic/parsePOHeader.xsl"/>
    <xsl:import href="../generic/parsePOLine.xsl"/>
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
    <xsl:value-of disable-output-escaping="yes"
    select="'&lt;?soxtype
    urn:x-commerceone:document:com:commerceone:XCBL30:XCBL30.so
    x$1.0?&gt;'"/>
    <xsl:element name="Order">
    <xsl:element name="OrderHeader">
    <xsl:call-template name="parsePOHeader">
    <xsl:with-param name="HEADER"
    select="//POHEADER"/>
    </xsl:call-template>
    </xsl:element>
    <xsl:if test="count(//POLINE) &gt; 0">
    <xsl:element name="OrderDetail">
    <xsl:element name="ListOfItemDetail">
    <xsl:for-each select="//POLINE">
    <xsl:call-template name="parseLINE">
    <xsl:with-param name="LineItem"
    select="."/>
    </xsl:call-template>
    </xsl:for-each>
    </xsl:element>
    </xsl:element>
    </xsl:if>
    <xsl:call-template name="createOrderSummary">
    <xsl:with-param name="NumLines"
    select="count(//POLINE) + count(//POSUBLINE)"/>
    <xsl:with-param name="Amount"
    select="//POHEADER/OPERAMT[@qualifier='EXTENDED' and
    @type='T']"/>
    </xsl:call-template>
    </xsl:element>
    </xsl:template>
    </xsl:stylesheet>
    ERROR:
    A nonfatal internal JIT (3.10.107(x)) error 'GetRegisterA' has occurred in :
    'oracle/xml/parser/v2/XSLNodeList.indexOf (Lorg/w3c/dom/Node;)I': Interpreting method.
    Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cgi
    oracle.xml.parser.v2.XSLException: XSL-1016: Extension function namespace should start with 'http://www.oracle.com/XSL/Transform/java/'.
    Error occurred while processing OAGIShowPONeal.xml: XSL-1016: Extension function namespace should start with 'http://www.oracle.com/XSL/Transform/java/'.
    I made the suggested change to the XSL
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="'http://www.oracle.com/XSL/Transform/java/" version="1.0">
    <xsl:import href="../generic/parsePOHeader.xsl"/>
    <xsl:import href="../generic/parsePOLine.xsl"/>
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">.
    And I get the following error:
    Error occurred while processing ORATransformShowPO.xsl: XSL-1009: Attribute 'xsl:version' not found in 'xsl:stylesheet'.
    I searched Technet.oracle.com for an explanation. According to Steve Muench, 7/24/2000, I need to use the following : <xsl:stylesheet version="1.0" xmlns:xsl=" " target="_new">http://www.w3.org/1999/XSL/Transform">
    This makes no sense because it has an odd number of quotes and > symbols but I tried it. I have the same error, again.
    Can anyone make sense of this?
    Big Hurrah for the solution!

    I typed the words "turn off jit" into Google and came up with a link like:
    http://java.apache.org/faq/fom-serve/cache/152.html
    that might help.

  • XSL-1009 error in XML to XML using XSL

    I'm using XSL to transform one XML format to another using and XSL transform file. I'm initiating this with ORAXSL in.xml transform.xsl out.xml. The XSL file has in it:
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.oracle.com/XSL/Transform/Java" version="1.0">
    <xsl:import href="../generic/parsePOHeader.xsl"/>
    <xsl:import href="../generic/parsePOLine.xsl"/>
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
    ORAXSL gives an error of XSL-1009: Attribute xsl:version not found in XSL:Stylesheet.
    Putting an XSL: prefix on the version doesn't help. A search for help on this site had a solution for XSL that create HTML.
    Has anyone else solved this problem?

    Thanks everyone for th ereply. Yes, I tested the mapping in integration bulider and it works fine. Even the file conversion works fine intermittantly! Sometimes it converts successfully and wrties file to target location and sometimes I get this error. I checkd in sxi_cache and I see the mapping xsl files there. I jus had basis reboot PI server and run some cache commands but still same problem! Also, when I have to files in source directory sometimes it converts both, sometimes one and sometimes both fails! I haveno clue what els to try.
    What are adapter nodes and wher can I check for that?
    Thanks.
    Mithun

  • XML Parsing with XSL Performance lag

    Hi there
    I should qualify this post by saying I am fairly new to EJB's and have based the below on a Java Working with XML Tutorial I read.
    I have an EJB which is being developed to parse XML documents with an XSL stylesheet and return HTML for display. The code is working fine however there is a fairly hefty performance lag when using the EJB to generate the HTML as opposed to the straight HTML. I am getting an average response time of 95000ms using the EJB as opposed to 45000ms when viewing the straight HTML. The code I am using to do the parsing is :
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.parse(dataFile);
    // Convert docs into StreamSource
    StreamSource stylesource = new StreamSource(styleSheet);
    StreamSource source = new StreamSource(dataFile);
    StringWriter strWrite = new StringWriter();
    StreamResult result = new StreamResult(strWrite);
    // Use a Transformer for output
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer(stylesource);
    transformer.transform(source, result);
    There is then some error handling and the strWrite object is placed into an array to be returned.
    I am really looking to find out if the performance lag I am experiencing is normal or if there is anything I can do to improve the speed of the code.
    All comments and help is most appreciated.
    Cheers
    Justin.

    You should be able to increase performance by caching Templates objects in memory as a previous post suggested.
    Here is some untested code:public final class TransformerCache
         private static Map cache = new Vector();
         private TransformerCache(){}
         public static Transformer getTransformer( String filename )
              if( ! cache.containsKey( filename ) )
                   TransformerFactory tf = TransformerFactory.newInstance();
                   Templates template = tf.newTemplates( new StreamSource( filename ) );
                   cache.put( filename, template );     
              return ( ( Templates ) cache.get( filename ) ).newTransformer();
    }This aproach works in a clustered environment, just bear in ming that there will be an instance of the cache on each server instance (virtual machine).

  • Xsl version

    We have following two queries
    1. We are trying to import xml data into Oracle database. For this purpose we are using dbms_xmlsave and other related packages. Our requirement is: We would like to ignore some of the elements/objects in xml while performing the insertXML operation. We do not want to create all the columns and then specify the update property for those. Is there any way by which we can achieve this?
    For ex:
    <Employee>
    <Name>John</Name>
    <Home_address>NY</Home_address>
    <Office_address>
    <Street>Main street</Street>
    <Zip>06905</Zip>
    <State>CT</State>
    </Office_address>
    <Sal>4521</Sal>
    </Employee>
    For this table is:
    employee (name varchar2(20),Home_address varchar2(50))
    How we can update employee table from above xml?
    2. While using stylesheet in xmlparser, we have specified xsl:version="1.0" in xsl:stylesheet. But still it gives us error
    xsl:1009 attribute xsl:version not specified in xsl:stylesheet.
    we have xml namespace as xmlns:xsl="http://www.w3.org/1999/xsl/Transform"

    I typed the words "turn off jit" into Google and came up with a link like:
    http://java.apache.org/faq/fom-serve/cache/152.html
    that might help.

Maybe you are looking for

  • Windows Contacts and Windows 8?

    This is a question for people on the operating system team: What is the role of the Contacts Folder in Windows 8?  Do the Contacts sync with the metro People app, Windows Live Mail, or Windows Messenger?  If not, is it pretty much an abandoned featur

  • Cannot Install iTunes 7.7 in Vista-stupid question?

    I'm a long-time iTunes user, but brand new to Vista (only choice on my new Dell laptop). I downloaded the iTunes installer, double clicked the .exe file, and Vista tells me I need an application to open it. I can't figure out what the problem is. Mic

  • DumpLoad Task list & "Clear existing data" option

    Hi, I'm going to use the standard package DumpLoad task in order to load a file and to clear the existing data before loading the new data. I have configured the task directly in the SSIS package with the following options: - select "Import into cube

  • Delay selecting text in Indesign CC and Acrobat XI

    Do you know any tricks to speed up these two products? Or – is how they work – now they've been re-written? Maybe a list of bullet points – "Ways to ensure text selection is as good as can be." would be helpful.

  • May be a BUG: DELETE with same predicate as SELECT fails

    Hi, I select a concatenation of rowid and ora_rowscn as SQL>SELECT ROWID||ORA_ROWSCN FROM TT; OUTPUT: ROWID||ORA_ROWSCN AAADkOAAEAAAADWAAA1006305 Now when i select as SQL> SELECT * FROM TT   2  WHERE   3  ROWID = 'AAADkOAAEAAAADWAAA'   4  AND   5  OR