XSL Translets on ALSB

I've been doing some performance testing on ALSB, my results show that transformations with XSL are faster and less CPU intensive with XSL rather than XQuery. I wondering if anybody new of a way to turn XSL into translets, to improve the situation further ? Or is this happening already ?

Any time your specs include the word WHERE you should be using a predicate. You aren't doing that. So:
foobar[@searchKeyAttribute='_ENCODINGVALUE_1' and text()='fooBar_TEXT_1']

Similar Messages

  • Error with xalan xsltc transformation

    Hi Everybody,
    I am currently working on a performance enhancement change for my project which uses xsl for jsp html display. Due to some client requirement, we have decided to convert all our xsl stylesheets to XSLTC translet class files. Although I have managed to compile all the stylesheets to java classes, I am getting a strange runtime error for some of the xsl-jsp pages. please kindly help me as I have no clue about this error. It has now become a showstopper issue for my project delivery. I am using Websphere 5.1 jre and xml jar libraries for doing the transform. The tranformation works fine with the default xalan transformer(not xsltc). The XSLTC version is 4.0 .
    [2/6/06 17:41:33:979 IST] beb3ed2 WebGroup E SRVE0026E: [Servlet Error]-[(class: com/synergy/xsl/translet/mmtoolb, method: topLevel signature: (Lorg/apache/xalan/xsltc/DOM&#59;Lorg/apache/xml/dtm/DTMAxisIterator&#59;Lorg/apache/xml/serializer/SerializationHandler&#59;)V) Incompatible object argument for method call]: java.lang.VerifyError: (class: com/synergy/xsl/translet/mmtoolb, method: topLevel signature: (Lorg/apache/xalan/xsltc/DOM;Lorg/apache/xml/dtm/DTMAxisIterator;Lorg/apache/xml/serializer/SerializationHandler;)V) Incompatible object argument for method call
         at java.lang.Class.getDeclaredConstructors0(Native Method)
         at java.lang.Class.privateGetDeclaredConstructors(Class.java(Compiled Code))
         at java.lang.Class.getConstructor1(Class.java(Compiled Code))
         at java.lang.Class.newInstance3(Class.java(Compiled Code))
         at java.lang.Class.newInstance(Class.java(Compiled Code))
         at org.apache.xalan.xsltc.trax.TemplatesImpl.getTransletInstance(TemplatesImpl.java:345)
         at org.apache.xalan.xsltc.trax.TemplatesImpl.newTransformer(TemplatesImpl.java:374)
         at org.apache.xalan.xsltc.trax.TemplatesImplProxy.newTransformer(TemplatesImplProxy.java:106)
         at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:570)
         at com.synergy.service.XSLTTransformServiceHelper.getTransformer(XSLTTransformServiceHelper.java:296)
         at com.synergy.service.XSLTTransformServiceHelper.getTransformer(XSLTTransformServiceHelper.java:243)
         at com.synergy.service.XSLTTransformServiceHelper.transform(XSLTTransformServiceHelper.java:155)
         at com.synergy.tags.xslt.XSLTTransformTag.doEndTag(Unknown Source)
         at org.apache.jsp._mmtoolb._jspService(_mmtoolb.java:2392)
         at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
         at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java(Compiled Code))
         at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:683)
         at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:781)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
         at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java(Compiled Code))
         at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java(Compiled Code))
         at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
         at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java(Inlined Compiled Code))
         at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java(Compiled Code))
         at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java(Compiled Code))
         at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java(Compiled Code))
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:61)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java(Compiled Code))
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java(Compiled Code))
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)
         at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:125)
         at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:286)
         at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
         at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
         at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
         at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
         at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:615)
         at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
    Please reply incase you need more information about the error.
    Thanks and Regards,
    sunil kumar
    Polaris software lab ltd
    India

    The XSLTC version is 4.0Is that the version under which you compiled the classes, or the version in Websphere where you are running the classes? The error message seems to suggest there is some incompatibility happening.

  • Accessing translets in a JSP

    Hi,
    I have a tranlset[compiled XSLT].I want to use it in a JSP page for transforming a XML into HTML.Is there any methods available to use the translet class file in a JSP page.Give a solution.

    using class files in jsp
    <%@ page import="import org.w3c.dom.*,import javax.servlet.http.*,import javax.xml.transform.*,import javax.xml.transform.stream.*,import java.io.*"%>
    <%
    try
    String strXML= "employee.xml";
    String xslFile = "employeeId.xsl";
    TransformerFactory tFactory = TransformerFactory.newInstance();
    StreamResult theTransformationResult = new StreamResult( new ByteArrayOutputStream() );
    Transformer transformer = tFactory.newTransformer(new StreamSource(xslFile));
    transformer.transform(new StreamSource(new StringReader(strXML)), theTransformationResult);
    out.println( theTransformationResult.getOutputStream());
    catch(Exception e){}
    %>
    check this code
    good luck

  • Running problem with a translet & Java

    Hi!
    I'm usign JDK 1.4 and Xalan 2.6.0.
    I'm able to compile the stylesheet filterAbsolutePathEscanearFuentes.xsl with the command line utility:
    java org.apache.xalan.xsltc.cmdline.Compile filterAbsolutePathEscanearFuentes.xsl
    However, when I try to run the XSL transformation using the generated translet, with the command line utility:
    java org.apache.xalan.xsltc.cmdline.Transform input.xml filterAbsolutePathEscanearFuentes
    the next error appear:
    Exception in thread "main" java.lang.VerifyError: (class: filterAbsolutePathEscanearFuentes, method: topLevel signature: (Lorg/apache/xalan/xsltc/DOM;Lorg/apache/xml/dtm/DTMAxisIterator;Lorg/apache/xml/serializer/SerializationHandler;)V) Bad type in putfield/putstatic
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:1610)
    at java.lang.Class.getConstructor0(Class.java:1922)
    at java.lang.Class.newInstance0(Class.java:278)
    at java.lang.Class.newInstance(Class.java:261)
    at org.apache.xalan.xsltc.cmdline.Transform.doTransform(Transform.java:100)
    at org.apache.xalan.xsltc.cmdline.Transform.main(Transform.java:297)
    Could you help me, please? I don't know what's the problem.
    Thank you so much for read this e-mail.

    It blocks because whoever is reading the other end is
    slow and all the intermediate buffers have been
    filled up. There is nothing short of NIO that you can
    do about it at the writing end. You need to
    investigate why the reader is slow.That was it! The application was running in debug mode, and my read loop sometimes logs statistic info. Which is bad when blocked. Now I have thrown out the unnecessary debug statements, and it runs smoothly. Thanks alot ejp!

  • Accessing Translets in a JSP Page

    Hi,
    I have a Translet[already compiled XSL file] named "pr.class" and I have a XML file named "pr.xml".
    I want to transform the pr.xml to a HTML format using pr.class in a JSP page.But I am getting some errors.My code goes like this,
    xml file="d:/translets/pr.xml"
    class file="d:/translets/pr.class"
    <%@ page
    import="javax.xml.parsers.*,
    org.w3c.dom.*,
    javax.xml.transform.*,
    javax.xml.transform.stream.*,
    java.io.*,
    java.io.OutputStreamWriter,
    javax.xml.transform.Transformer,
    javax.xml.transform.TransformerFactory,
    javax.xml.transform.stream.StreamResult,
    javax.xml.transform.stream.StreamSource,
    javax.xml.transform.Templates;" %>
    <% System.setProperty("javax.xml.transform.TransformerFactory","org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
    TransformerFactory tFactory = TransformerFactory.newInstance();%>
    try {
    StreamSource xsl = new StreamSource(new FileInputStream("D:/translets/pr.class"));
    StreamSource xml = new StreamSource(new FileInputStream( "D:/translets/pr.xml"));
    StreamResult htm = new StreamResult(new FileOutputStream( "D:/birds.htm"));
    Transformer transformer =tFactory.newTransformer(xsl);
    transformer.transform(xml,htm);}
    catch(Exception e){out.println("Compilation problem");}
    %>
    My catch block is getting executed and giving the output as "Compilation problem".
    Give me a solution.Very Urgent!!.

    You are missing <% before try :-
      <%@ page
    import="javax.xml.parsers.*,
    org.w3c.dom.*,
    javax.xml.transform.*,
    javax.xml.transform.stream.*,
    java.io.*,
    java.io.OutputStreamWriter,
    javax.xml.transform.Transformer,
    javax.xml.transform.TransformerFactory,
    javax.xml.transform.stream.StreamResult,
    javax.xml.transform.stream.StreamSource,
    javax.xml.transform.Templates;" %>
    <% System.setProperty("javax.xml.transform.TransformerFactory","org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
    TransformerFactory tFactory = TransformerFactory.newInstance();%>
    <%
    try {
    StreamSource xsl = new StreamSource(new FileInputStream("D:/translets/pr.class"));
    StreamSource xml = new StreamSource(new FileInputStream( "D:/translets/pr.xml"));
    StreamResult htm = new StreamResult(new FileOutputStream( "D:/birds.htm"));
    Transformer transformer =tFactory.newTransformer(xsl);
    transformer.transform(xml,htm);}
    catch(Exception e){out.println("Compilation problem");}
    %>

  • ALSB 3.0 - Problem adding CDATA Tags using XSLT

    Hi all,
    I am having a problem using ALSB to insert CDATA tags into some XML.
    Here's a simple example of the stylesheet I am using:
    &lt;?xml version="1.0"?&gt;
    &lt;xsl:stylesheet xmlns:xsl="[http://www.w3.org/1999/XSL/Transform]" version="1.0"&gt;
    &lt;xsl:template match="/"&gt;
    &lt;a&gt;
    &lt;xsl:value-of disable-output-escaping="no" select="'&lt;![CDATA['"/&gt;
    &lt;b/&gt;
    &lt;xsl:value-of disable-output-escaping="no" select="']]&gt;'"/&gt;
    &lt;/a&gt;
    &lt;/xsl:template&gt;
    &lt;/xsl:stylesheet&gt;
    In XMLSpy, this produces the following output:
    &lt;a&gt;
    &lt;![CDATA[
    &lt;b /&gt;
    ]]&gt;
    &lt;/a&gt;
    Which is correct.
    However, when running the same transformation as an XSLT in ALSB, I get the following output:
    &lt;a&gt;
    &lt;?javax.xml.transform.disable-output-escaping?&gt;
    & lt ;
    &lt;?javax.xml.transform.enable-output-escaping?&gt;
    ![CDATA[
    &lt;b /&gt;
    &lt;?javax.xml.transform.disable-output-escaping?&gt;
    & gt ;
    &lt;?javax.xml.transform.enable-output-escaping?&gt;
    &lt;/a&gt;
    From some digging about online, I've found that the
    "&lt;?javax.xml.transform.enable-output-escaping?&gt;" elements are
    processing instructions.
    Has anyone else had similar issues?
    Or more importantly, has anyone fixed this?
    Cheers,
    Dave
    Edited by: DaveFeeder on 10-Dec-2008 12:36

    I've found a solution to this now.
    I've used the fn-bea:serialize XQuery function to serialized the data, having the same effect as manually trying to insert the CDATA,and if anything, is a neater solution.
    Cheers
    Dave

  • Java Translets XML/XSLT Transformation

    Translets "are precompiled XSL documents that are optimized and converted into simple Java classes. When you compile your application Java files, you compile your XSL files into Java class files. During runtime, you can load translets like any regular Java class and perform XSL transformations over and over again.
    The syntax checking and parsing of XSL documents are done when the XSL files are compiled. The transformation therefore takes only as long as the compiled code takes to execute, which improves performance multiple folds.
    The downside to using XSL is that "it can take a considerable amount of time and reduce performance. The time needed to parse XML and XSL documents is directly proportional to the size of the documents. Each transformation requires the XML and XSL documents to be loaded, syntax checked, and parsed." I recommends using translets for the following reasons.
    I had written an application (<a href="http://www.simplygites.com" title="www.simplygites.com">SimplyGites</a>) using standard XSL / XML transformation and experienced some very slow server-side transformation on the very complex screens with large amounts of xml. Timings showed these problem screens took 2-3 seconds to transform, which was totally unacceptable non-functional requirements.
    I considered rewriting these screens as JSP or PHP, then I discovered Translets. And wow what a discovery the timings for these pages now compiled as Translets(java classes) are amazing in comparison to the original timings ? I now have them transforming in 500ms (all now under 1 second).
    I would recommend anyone using XSL/XML transformation to use Translets, these have now been running tried and tested on the <a href="http://www.simplygites.com" title="www.simplygites.com">SimplyGites</a> for the past 6months.
    Technolgies used:
    Weblogic 8.1 SP5
    Java 1.4.2
    Required Jars
    xsltc.jar
    runtime.jar
    BCEL.jar
    JLex.jar
    java_cup.jar
    regexp.jar
    xml-dtm.jar
    For more information see http://xml.apache.org/xalan-j/xsltc_usage.html
    I hope this helps anyone that has XML/XSLT performance issues.
    Mark
    MB Computer Ltd
    www.simplygites.com

    Thanks for your help.
    The problem was that my firewall was blocking my server.

  • Support of exslt in OSB/ALSB

    Hi,
    Does OSB/ALSb support extended xslt functions i.e exslt(http://exslt.org/functions)?
    When I tried to import/save an xslt having exslt functions, it gives an error
    An error occurred compiling the XSLT template: javax.xml.transform.TransformerException: weblogic.apache.xml.utils.WrappedRuntimeException: Could not find variable with the name of val.
    and the function is defined in xsl as :
    <func:function name="ctvf:convertToNumber">
    <xsl:param name="val"/>
    <xsl:variable name="strVal" select="string($val)"/>
    <xsl:choose>
    <xsl:when test="$strVal = 'NaN'">
    <func:result select="''"/>
    </xsl:when>
    <xsl:otherwise>
    <func:result select="$strVal"/>
    </xsl:otherwise>
    </xsl:choose>
    </func:function>
    where namespaces in the header are as:
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:func="http://exslt.org/functions"
    Thanks,
    Rajesh

    Hi all!
    Thanx for the answers! I have tried in the past the /text() I tried it again and didn´t worked, some body knows how can I post some screen shots so you can see that I´m using the /text() and maybe with the screen shot you can detect something, also I´m loging the $body in the default branch(cause it is not detecting the value between the tags it goes directly to the Defaul Branch) you will se some differences in the XML since I simplified the XML to make the example and tested this simplified XML it in the TEST Tool in the console and had the same results that with the original evendough I put the /text() at the end
    Here is the Body I loged in the default Branch:
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <imp:iniciarCambio xmlns:imp="http://bea.com/albpm/MMME/ImpactarCambiosClienteBILLING">
    <cambios xmlns:bea="http://bea.com/">
    <bea:ListaDeCambios>
    <!--1 or more repetitions:-->
    <bea:Cambio>
    <bea:campoNombre>Cambio1</bea:campoNombre>
    <bea:valorAnterior>antes</bea:valorAnterior>
    <bea:valorNuevo>despues</bea:valorNuevo>
    </bea:Cambio>
    </bea:ListaDeCambios>
    <bea:companiaId>32</bea:companiaId>
    <bea:companiaNombre>MMRedes</bea:companiaNombre>
    <bea:companiaTipo>Servicio</bea:companiaTipo>
    </cambios>
    </imp:iniciarCambio>
    </soapenv:Body>>
    as you can see it is Servicio and it should have gone to one of the branches instead of the default but it didn´t
    Can´t see what I´m doing wrong, but maybe some of you can.
    Thanx in advanced!
    Gerardo J

  • Xsl:if creates unwanted newline [SOLVED]

    Hi there.
    I'm making a report, with some images. This works fine (it's just an image of a checkbox, base64 data..). However, when printing many lines, I only want to print the checkbox if it's actually text there.
    Short explanation:
    Q1 Q2
    Q3 Q4
    Q5
    I don't want the last line (which WOULD have been Q6) to print the image aswell. (That is; I only want it to print once for the Q5)
    Here's my code:
    <xsl:if test="Q_NR!='' "><fo:instream-foreign-object content-type="image/jpg"><xsl:value-of select=".//IMG"/></fo:instream-foreign-object></xsl:if>
    And this mess up my entire report with newline with the image.
    If I use only
    <fo:instream-foreign-object content-type="image/jpg"><xsl:value-of select=".//IMG"/></fo:instream-foreign-object>
    then the images print exactly as I want them.
    How can I get around this issue?
    P.S: The if quoting is like this:
    if test=(double quotes)Q_NR != (two single quotes) (double quote)

    if@inlines should do the trick.

  • Customize Print Quote stylesheet ASOPRINT.xsl

    Hi,
    I have a requirement where I need to check if we can use the existing Print Quote functionality to generate custom Quote Reports. As i see we can create new XML templates by making changes to the standard style sheet ASOPRINT.XSL. According to what is mentioned in the oracle quoting guide we can add company logo, change height width etc.. of the report by modifying this style sheet. I need to know how do we cusomize the style sheet to include static text or add new tables etc.. I am very new to XSL so do not have much idea as to where is the data fetched from and where is the static text present.
    Thnaks
    AM

    Hi,
    Thanks a lot for the response. I went through the documents and they mainly talk about customizing the Quote report by including the company logo, Title and disclaimer. How can we add static text to the ASOPRINT.XSl style sheet in order to customize it and attach it to a custom tempalate. I am very new to this so do not have much idea. can we add the static test directly in the style sheet or is it fetched from somewhere?
    Regard
    AM

  • 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>

  • Weaknesses I've come across in the Oracle XML/XSL implementation

    Weaknesses I've come across in the Oracle XML/XSL implementation
    NOTE: I think Oracle is a fantastic database and the XML implementation is lovely to use - also I know these are not limited to XE and also that some are fixed in 11g enterprise however I'm not sure if all are so I am posting here in the hope that Oracle will include fixes for all if any have been missed
    1. getclobval() returns a spurious carriage return on end of the value returned
    2. extract does not handle mixed content tags well (for example it simply discards tags that only have whitespace between them
    3. XSL: using a xsl:number level="multiple" with anything beyond a simple count= xpath value crashes the database completely
    4. XSL: insists on pretty printing output XML which is extremely odd behaviour and causes problems when dealing with mixed content

    Another weakness I've seen is with the appendchildxml function and mixed content xml - it appears to likewise pretty print XML causing the injection of carriage returns and whitespace into mixed content nodes

  • Issue with reading a xml file from xsl

    Hi,
    When I am trying to read a xml file from xsl, I am getting unwanted output.
    Following is the XSL:
    <?xml version="1.0" encoding="UTF-8" ?>
    <?oracle-xsl-mapper
      <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
      <mapSources>
        <source type="XSD">
          <schema location="../xsd/B2BMarketProperties.xsd"/>
          <rootElement name="ReceipentIDType" namespace="http://www.example.org"/>
        </source>
      </mapSources>
      <mapTargets>
        <target type="XSD">
          <schema location="../xsd/B2BMarketProperties.xsd"/>
          <rootElement name="ReceipentIDType" namespace="http://www.example.org"/>
        </target>
      </mapTargets>
      <!-- GENERATED BY ORACLE XSL MAPPER 11.1.1.4.0(build 110106.1932.5682) AT [TUE DEC 03 16:06:03 EST 2013]. -->
    ?>
    <xsl:stylesheet version="1.0"
                    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
                    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
                    xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction"
                    xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
                    xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:ns0="http://www.example.org"
                    xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
                    xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:med="http://schemas.oracle.com/mediator/xpath"
                    xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
                    xmlns:bpm="http://xmlns.oracle.com/bpmn20/extensions"
                    xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
                    xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:ora="http://schemas.oracle.com/xpath/extension"
                    xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.adapter.socket.ProtocolTranslator"
                    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
                    exclude-result-prefixes="xsi xsl ns0 xsd bpws xp20 mhdr bpel oraext dvm hwf med ids bpm xdk xref ora socket ldap">
      <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
      <xsl:variable name="ReceipentID" select="document('../xsd/B2BMarketProperties.xml')"/>
      <xsl:template match="/">
        <ns0:ReceipentIDType>
        <xsl:for-each select="$ReceipentID">
          <ns0:ReceipentID>
            <xsl:value-of select="$ReceipentID"/>
          </ns0:ReceipentID>
          </xsl:for-each>
        </ns0:ReceipentIDType>
      </xsl:template>
    </xsl:stylesheet>
    Following is the XML ( B2BMarketProperties.xml)
    <?xml version="1.0" encoding="UTF-8" ?>
    <ReceipentIDType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="http://www.example.org B2BMarketProperties.xsd"
                     xmlns="http://www.example.org">
      <ReceipentID>123</ReceipentID>
      <ReceipentID>345</ReceipentID>
    </ReceipentIDType>
    The output i am getting with this code is
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:ReceipentIDType xmlns:ns0="http://www.example.org">
        <ns0:ReceipentID>123345</ns0:ReceipentID>
    </ns0:ReceipentIDType>
    But, I need output in the following format
    <ns0:ReceipentIDType xmlns:ns0="http://www.example.org">
        <ns0:ReceipentID>123</ns0:ReceipentID>
         <ns0:ReceipentID>345</ns0:ReceipentID>
    </ns0:ReceipentIDType>
    Could you guys let me know what i am doing wrong. Any help would be appreciated.
    Thanks,

    This worked for me :
      <xsl:template match="/">
        <ns0:ReceipentIDType>
          <xsl:for-each select="document('B2BMarketProperties.xml')/*:ReceipentIDType/*:ReceipentID">
            <xsl:variable name="count" select="position()"/>
            <ns0:ReceipentID>
              <xsl:value-of select="document('B2BMarketProperties.xml')/*:ReceipentIDType/*:ReceipentID[$count]"/>
            </ns0:ReceipentID>
          </xsl:for-each>
        </ns0:ReceipentIDType>
      </xsl:template>

  • ** How to use TO_DATE function in Stored Proc. for JDBC in ABAP-XSL mapping

    Hi friends,
    I use ABAP-XSL mapping to insert records in Oracle table. My Sender is File and receiver is JDBC. We use Oracle 10g database. All fields in table are VARCHAR2 except one field; this is having type 'DATE'.
    I use Stored procedure to update the records in table. I have converted my string into date using the Oracle TO_DATE function. But, when I use this format, it throws an error in the Receiver CC. (But, the message is processed successfully in SXMB_MONI).
    The input format I formed like below:
    <X_EMP_START_DT hasQuot="No" isInput="1" type="DATE">
    Value in Payload is like below.
    <X_EMP_START_DT hasQuot="No" isInput="1" type="DATE">TO_DATE('18-11-1991','DD-MM-YYYY')</X_EMP_START_DT>
    Error in CC comes as below:
    Error processing request in sax parser: Error when executing statement for table/stored proc. 'SP_EMP_DETAILS' (structure 'STATEMENT'): java.lang.NumberFormatException: For input string: "TO_DATE('18"
    Friends, I have tried, but unable to find the correct solution to insert.
    Kindly help me to solve this issue.
    Kind Regards,
    Jegathees P.
    (But, the same is working fine if we use direct method in ABAP-XSL ie. not thru Stored Procedure)

    Hi Sinha,
    Thanks for your reply.
    I used the syntax
    <xsl:call-template name="date:format-date">
       <xsl:with-param name="date-time" select="string" />
       <xsl:with-param name="pattern" select="string" />
    </xsl:call-template>
    in my Abap XSL.  But, its not working correctly. The problem is 'href' function to import "date.xsl" in my XSLT is not able to do that. The system throws an error. Moreover, it is not able to write the command 'extension-element-prefixes' in my <xsl:stylesheet namespace>
    May be I am not able to understand how to use this.
    Anyway, I solved this problem by handling date conversion inside Oracle Stored Procedure. Now, its working fine.
    Thank you.

  • GenericSortFilter.xsl unable to filter data in inline transformation.

    Hi,
        I am working on MII 12.0
        I need to filter an xml output of transaction. So I am using the inline transformation.
        I am passing filter column name, filter column value, filter exp and filter type.
        But the data is not getting filtered.
        When I am applying inline transformation for sorting, the data is getting sorted.
        When I apply generic sort filter action block in transaction to filter the data, itu2019s getting     filtered.
        Need help on this.
    Thanks
    Vishal Jadhav

    Hi,
        We can use generic sort filter in BLS.
        But MII has provided XLS transformation facility.
      I checked the xsl file used in genericsortfilter case.
      A code fragment is below
    <xsl:when test="$FilterType = 'lt'">
                                                 <xsl:choose>
                                                      <xsl:when test="$TestValue &lt; $FilterValue">Y</xsl:when>
                                                      <xsl:otherwise>N</xsl:otherwise>
                                                 </xsl:choose>          
    As you can see , instead of checking the FilterExp , it is checking the FilterType.
    That's where the problem lies.
    I made the necessary changes and now its working fine through the XSL transformation.
    Regards,
    Vishal Jadhav

Maybe you are looking for

  • Transfer i tunes music to a flash drive

    I want to opy my itunes library from my mac book to an 8 gig pen drive any easy sugestions Regards

  • How to remove the delete and edit toolbar buttons from the Overview page

    Hi, In the account/contact overview page, we see that the interaction history assignment block does not support the EDIT and DELETE options. However, when we click on the hyperlink description of an activity in the interaction history, we get into th

  • Poor Broadband Since Upgrade at Exchange

    Hi All, I wish someone could solve my problem. BT upgraded the exchange in mid-February. I received this email on the 16th - Good news This is to let you know that we've now upgraded your line and you should now have an improved, more consistent broa

  • Setting name of requested pdf in browser's title

    Hi, I have certain protected resources in my web application which requires user login. If login is successful, then we forward the user to the specified pdf resource. Problem which I am facing is that after the login is successful, title of the brow

  • Error while navigating planning 9.3.1 through workspace

    navigating in workspace to FILE>PREFERENCES>PLANNING errors out in: Required application context HyperionPlanning is not available. Please contact your administrator. navigating in workspace to applications>planning >APPLIC_NAME> errors out in: Pleas