Xpath function and XSLT reusability in OSB

Hi Experts,
I have xslt which using custome xpath functions and working fine in bpel layer.Can I reuse the same jar,xslt and with some configuration(http://eelzinga.wordpress.com/2010/05/10/oracle-service-bus-11g-using-custom-xpath-functions/) in the OSB layer? its urgent,please respond asap.
Thanx in advance.-Aswini

I would think so... after all custom XPath is just Java static functions called from OSB... as long as you stick to the guidelines for method signature exposed here http://docs.oracle.com/cd/E21764_01/doc.1111/e15866/custom_xpath.htm#CBAFHDIJ you should be fine

Similar Messages

  • Ora:processXSLT xpath function and absolute paths

    It looks like ora:processXSLT xpath function does not honor absolute paths when specifying the location of the xslt to use in the first parameter. For example, if I call it like this:
    <copy>
    <from expression="ora:processXSLT('/u01/transforms/mytransform.xsl',bpws:getVariableData('xslInput','payload'))"/>
    <to variable="xslOutput"/>
    </copy>
    I get the following error in the bpel logs:
    Error while processing xpath expression, the expression is "ora:processXSLT('/u01/transforms/mytransform.xsl', bpws:getVariableData("xslInput", "payload"))", the reason is javax.xml.transform.TransformerException: java.io.FileNotFoundException: /u01/oracle/bpel/integration/orabpel/domains/test/tmp/.bpel_transformTest_1.0.jar/u01/transforms/mytransform.xsl (No such file or directory).
    Please verify the xpath query.
    It is assuming that the xsl will be relative to the bpel suitcase and just appending the supplied path to the relative path for the bpel process. Why would I want to do this? Well, I have hundreds of these maps and I want to be able to select one at runtime. I'm also adding new ones every day and I don't want to have to redeploy the process that uses them each time I add a new map. Is there any way to force this process to recognize the absolute path? I can work around it for now by using a bunch of ../../../../ stuff but that's a kludge and I'd like to find a better way to do it.
    I get the same error with xdk:processXSLT.
    Any suggestions?
    Thanks!
    Sean

    Hi Sean,
    Did you try to the file path with the file:// prefix and not just the path?
    ~ronen

  • ABAP , JAVA And XSLT Mapping Doc's

    Hi,
    I am new to SAP XI Any body please send me the Doc's Related to ABAP, JAVA And XSLT Mappings. Thanks in Advance.
    Regards
    Kiran.B

    Hi
    Refer to
    ABAP mapping:
    How to Use ABAP Mapping in XI 3.0
    JAVA mapping:
    http://help.sap.com/saphelp_nw04/helpdata/en/bd/c91241c738f423e10000000a155106/frameset.htm (Java mapping)
    XSLT mapping:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1
    /people/prasadbabu.nemalikanti3/blog/2006/03/30/xpath-functions-in-xslt-mapping
    /people/sreekanth.babu2/blog/2005/01/05/design-time-value-mappings-in-xslt
    /people/anish.abraham2/blog/2005/12/22/file-to-multiple-idocs-xslt-mapping
    XSLT Mapping with java enhancement
    /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
    XSLT - /people/dirk.roeckmann/blog/2006/07/26/grouping-xml-with-xslt--from-muenchian-method-to-xslt-20
    Regards,
    Kumar.
    Reward points if helpful!!

  • Can someone pleas tell me about abap, java and xslt mappings

    Hi,
    can someone please tell me about abap, java and xslt mappings.
    Thanks,
    Bernard.

    HI,
    JAVA mapping
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii /people/ravikumar.allampallam/blog/2005/06/24/convert-any-flat-file-to-any-idoc-java-mapping /people/amol.joshi2/blog/2006/03/10/think-objects-when-creating-java-mappings /people/sameer.shadab/blog/2005/09/29/testing-abap-mapping sample code for java mapping blog=/pub/wlg/4143 tutorial sax and dom
    ABAP mapping
    ABAP mappings run on ABAP Stack and are developed in the ABAP workbench of the Integration Server.
    You normally do not need to use the ABAP mappings and is preferable for someone with ABAP programming background. I should say JAVA functions would suffice any complex scenarios.
    refer step by step guides for ABAP Mapping
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5c46ab90-0201-0010-42bd-9d0302591383
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e3ead790-0201-0010-64bb-9e4d67a466b4
    /people/sameer.shadab/blog/2005/09/29/testing-abap-mapping
    ABAP Mapping
    /people/udo.martens/blog/2006/08/23/comparing-performance-of-mapping-programs
    https://websmp101.sap-ag.de/~sapdownload/011000358700003082332004E/HowToABAPMapping.pdf
    /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    /people/r.eijpe/blog
    ABAP Mapping Vs Java Mapping.
    Re: Message Mapping of type ABAP Class not being shown
    Re: Performance of mappings (JAVA, XSLT, ABAP)
    XSLT Mapping
    XSLT stands for EXtensible Stylesheet Language Transformations. It is an XML based language for transforming XML documents into any other formats suitable for browser to display, on the basis of set of well-defined rules.
    /people/sap.user72/blog/2005/03/15/using-xslt-mapping-in-a-ccbpm-scenario
    /people/anish.abraham2/blog/2005/12/22/file-to-multiple-idocs-xslt-mapping
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/9692eb84-0601-0010-5ca0-923b4fb8674a
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/006aa890-0201-0010-1eb1-afc5cbae3f15
    /people/prasadbabu.nemalikanti3/blog/2006/03/30/xpath-functions-in-xslt-mapping
    https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=xslt+mapping&adv=false&sortby=cm_rnd_rankvalue#
    Steps required for developing XSLT Mapping
    u2022 Create a source data type and a target data type
    u2022 Create Message types for the source and target data types.
    u2022 Create Message Interfaces includes Inbound Message interface and Outbound Message interface.
    u2022 XSLT Mapping does not require creation of Message mapping, so donu2019t create any Message mapping.
    u2022 Create an .XSL file which converts source data type into target data type.
    u2022 Zip that .xsl file and import it into Integration Repository under Imported Archives.
    u2022 In Interface Mapping choose mapping program as XSL and specify this zip program. (Through search help you will get XSL Mapping programs that you imported under Imported Archives, select your corresponding XSL Program)
    u2022 Test this mapping program by navigating to Test tab.
    By having look at above steps you can easily find out that this mapping is no where different from other mapping programs, here the challenging lies in creating an XSLT file. If you spend couple of minutes in studying XPATH tutorial you would be in ideal position to create an XSL Transformation (.xsl extension).
    If you still find difficulties in generating XSL Transformation, then you can make use of a tool u201CAltova MapForceu201D which will create XSL file for you.
    Steps for creating XSL file using this tool:
    1. Open the Alto MapForce, import the source .xml and .xsd file in it
    2. Similarly import the target .xml and .xsd in MapForce.
    3. These two data files should match with source and target data types in Integration Repository.
    4. Complete the graphical mapping using extensive list of XSLT functions available there.
    5. Save the mapping file.
    6. Click the XSLT tab. You will have the entire xslt logic there.
    7. Copy that content and save it as .xsl file.
    8. Zip above .xsl file and import the same into IR under Imported Archives.
    Hope this clears your doubts
    Thanks
    Saiyog

  • What are the Built-In-Functions in XSLT mapping?

    what are the Built-In-Functions in XSLT mapping?

    hi praveen
    check the below blogs
    XSLT MAPPING                                   
    Step u2013 By u2013 Step Simple Approach for XSLT Mapping                                   
    Step – By – Step Simple Approach for XSLT Mapping                                   
    XSLT mapping for multiple segments of XML                                   
    XSLT mapping for multiple segments of XML                                   
    IF - ELSE IF and XSLT - A Better work around ?                                   
    IF - ELSE IF and XSLT - A Better work around ?                                   
    Calling instance (object) method of ABAP Class into xslt mapping by using SAP: CALL-EXTERNAL                                             
    Calling instance (object) method of ABAP Class into xslt mapping by using SAP: CALL-EXTERNAL                                             
    xpath functions in xslt mapping                                             
    xpath functions in xslt mapping                                             
    Using XSLT Mapping within the J2EE Adapter Framework                                             
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3823 [original link is broken] [original link is broken] [original link is broken]                                             
    EDIFACT to XML - Stylus Studio Solution                                             
    EDIFACT to XML - Stylus Studio Solution                                             
    Running NetWeaver's XSLT processor from XMLSpy                                             
    Running NetWeaver's XSLT processor from XMLSpy                                             
    generic xslt mapping part 1                                             
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1                                             
    generic xslt mapping part 1          part2                                   
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9692eb84-0601-0010-5ca0-923b4fb8674a                                             
    xslt recursive templates                                             
    XSLT: Recursive Templates                                             
    Generating Generic XML / HTML files without using XSLT Mappings                                                       
    Generating Generic XML / HTML files without using XSLT Mappings                                                       
    regards
    kummari

  • Xpath-functions

    hi
    what are the various xpath fuctions in xslt mapping?

    hi
    various xpath functions like translate(),concat(),Subsrting(),sum(),count() string() in xslt mapping with an example...
    the syntax and number of parameters accepted by each xpath funtion are:
    substring()
    This Function is used to extract some portions of the string from the original string.It takes a specified number of characters out of a string
    syntax: substring("PRASAD BABU",1,6)
    translate()
    The translate function takes the string in the value argument,replaces all occurrecnes of a string specified in the string1 argument with substitue characters specified in string2 argument and returns the modified string.
    syntax: translate("prasad babu","abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
    string()
    The string function converts the input to a string.
    syntax: string("prasad babu")
    concat()
    The concat function takes all the individual arguments,concatenates them together in order,and returns the resultstant string
    syntax: concat("prasad","babu")
    sum()
    The sum function converts PCDATA text to a numeric value
    syntax: sum(p2:marks/score)
    count()
    This function is used to count the nodes
    syntax: count(p2:marks/subjects)
    for clear picture
    check the below link
    /people/prasadbabu.nemalikanti3/blog/2006/03/30/xpath-functions-in-xslt-mapping
    note:reward points if solution found helpfull.....
    regards
    chandrakanth.k

  • Custom XPath function & customize XPath expression builder

    Hi,
    I have made several custom XPath functions and apparently it is not possible to customize the UI and add these functions to the XPath expression builder.
    Could someone confirm this ?
    Thanks

    Nobody knows the answer?
    I just have the same question.

  • XPath function failed in XSLT (OSB 10.3.1)

    Platform : OSB 10.3.1 in Windows XP
    Error : Test following XSLT scripts in OSB Console by getting error
    Error executing the XSLT transformation: java.lang.NoSuchMethodException: For extension function, could not find method weblogic.apache.xpath.axes.WalkingIteratorSorted.upper-case([ExpressionContext,] ).
    XSLT :
    <xsl:stylesheet version="1.0"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fn="http://www.w3.org/2004/07/xpath-functions"
         xmlns:imp1="http://www.example.org/FaultMessage">
    <xsl:template match="/">
              <imp1:FaultMessage>
                   <imp1:code>
                        <xsl:text disable-output-escaping="no">Hard-Coding-Error-Code</xsl:text>
                   </imp1:code>
                   <imp1:summary>
                        <xsl:value-of select="/imp1:FaultMessage/imp1:summary" />
                   </imp1:summary>
                   <imp1:detail>
                   <xsl:value-of select="fn:upper-case(/imp1:FaultMessage/imp1:detail)" />
    </imp1:detail>
         </imp1:FaultMessage>
    </xsl:template>
    </xsl:stylesheet>
    Any ideas?
    Thank you
    -Simon
    Edited by: user10981433 on Jun 11, 2009 9:05 PM

    exporting and importing your osb projects to the new environment won't migrate the webservice you were calling from within the Oracle Service Bus.
    if these were created in Eclipse too you can just regenerate an ear-file from them or use the build-scripts to deploy them to you new Weblogic Server.
    don't mix up 2 things
    the osb is only intermediar in here, so you can export/impot the resources from your osb workspace for these.
    but if your process call any external webservice, the webservice itself will also need to get redeployed to the new enviroment, and this is something which has nothing to do with your osb projects.
    it could be these webservice are also build in Eclipse, but they won't be part of the export/import of OSB.
    so check if you have some build.xml script in these webservice projects so you can regenerate the ear archive, or try importing the project in your workspace (if not already done) and rightmouseclick on it > export > ear file
    and use this ear file to deploy the webservice again in the Weblogic Console ( see : http://docs.oracle.com/cd/E13218_01/wlp/docs81/prodOps/deployment.html )

  • Why don't standard XPath functions work in XSLT?

    I'm having a lot of trouble trying to do some simple string processing in XSLT. What I would like to do is make selection using the standard xpath functions defined by the w3c. I'm using this as my cheat sheet:
    http://w3schools.com/xpath/xpath_functions.asp
    I've tried the default XSLT parser that comes with Java, the latest distro of Xalan and the latest distro of Saxon. Nothing seems to recognize the fn namespace:
    xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
    In particular, I'm trying to use the tokenize(string, regex) function. Only Xalan seems to support this at all, only recognizes {http://xml.apache.org/xalan}tokenize, and it is treating the regex as a literal.
    This is very frustrating. Is it possible to get the standard Xpath functions to work for XSLT?

    How did you get it to work with Saxon? I have saxon9he.jar on my classpath. When I try to transform this:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:src="http://xml.kitfox.com/schema/game/tileWorld/textTable"
        xmlns:xalan="http://xml.apache.org/xalan"
        xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
        version="1.0">
        <xsl:output method="text"/>
    <xsl:template match="/">
        <xsl:for-each select="fn:tokenize('a b c', '\s+')">
            "<xsl:value-of select="."/>"
        </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>I get the error
    Error on line 100
      Cannot find a matching 2-argument function named
      {http://www.w3.org/2005/02/xpath-functions}tokenize()Is there some other jar you need to include to get http://www.w3.org/2005/02/xpath-functions to resolve?

  • OSB: class not found in custom xpath function

    Hi,
    This week I was struggling with custom xpath functions in OSB. First I created a jar file that contained the class and the complete functionality including logging. It contains a class that does a DVM Lookup from the database. As a standalone function, called from JUnit test cases it functions perfectly. I use Apache commons logging with the libraries from the Weblogic installation.
    But when I put this OSB Util Services jar in the osb-home/config/xpath-function, it turns out that somehow the Weblogic Console gets a conflict with the commons-logging libraries. So I deployed it just as an application library in weblogic console, to solve this breakage.
    Then I created a simple separate class that only calls the method in the deployed library. I packaged that as a custom-osb-functions.jar for the osb-home/config/xpath-function. I managed to get if visible in OEPE. But when I test the xquery transformation resource on the server, I get:
    Error executing the XQuery transformation: {http://www.bea.com/wli/common/xquery}XQueryException: Error invoking custom xquery java function: java.lang.reflect.InvocationTargetException
    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.wli.sb.stages.functions.XQueryExternalFunction.execute(XQueryExternalFunction.java:111)
    at com.bea.wli.sb.stages.functions.XQueryExternalFunction.init(XQueryExternalFunction.java:61)
    at weblogic.xml.query.iterators.FirstOrderIterator.open(FirstOrderIterator.java:169)
    at weblogic.xml.query.runtime.typing.SeqTypeMatching.open(SeqTypeMatching.java:129)
    at weblogic.xml.query.iterators.FirstOrderIterator.open(FirstOrderIterator.java:167)
    at weblogic.xml.query.runtime.core.ExecutionWrapper.open(ExecutionWrapper.java:58)
    at com.bea.wli.common.xquery.iterators.XQueryVariableMapper.getObjects(XQueryVariableMapper.java:459)
    at com.bea.wli.common.xquery.iterators.XQueryVariableMapper.getObjects(XQueryVariableMapper.java:447)
    at com.bea.wli.sb.test.transform.XQueryProcessor.invoke(XQueryProcessor.java:165)
    at com.bea.wli.sb.test.TestServiceImpl.invoke(TestServiceImpl.java:172)
    at com.bea.wli.sb.test.client.ejb.TestServiceEJBBean.invoke(TestServiceEJBBean.java:167)
    at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl.__WL_invoke(Unknown Source)
    at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
    at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl.invoke(Unknown Source)
    at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
    at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
    at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:252)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Caused by: java.lang.NoClassDefFoundError: nl/darwin-it/osb/dvm/DomainValueMap
    at nl.darwin-it.osb.xpath.DomainValueMapLookup.lookupDVM(DomainValueMapLookup.java:35)
    ... 28 more
    Caused by: java.lang.ClassNotFoundException: nl.darwin-it.osb.dvm.DomainValueMap
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
    ... 29 more
    Can any one explain to me how I can get the OSB Util Services jar library in the same classpath as the custom-xpath-functions jar, without having it put along the custom-xpath-functions jar in the osb-home/config/xpath-functions folder (since that somehow breaks the weblogic console)?
    How does the OSB classpath/classloading mechanisms work in this?
    Thanks in advance,
    Regards,
    Martien

    I am running the plugin registration utility but it generates the error mentioned below. I have verified the structure of my zip file and the structure of zip file is:
    -> SelfRegisterUserCustomValidator.zip
    ->Plugin.xml
    ->/lib/SelfRegisterUserCustomValidator.jar
    ->/resources/
    Following our contents of plugin.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.request.plugins.RequestDataValidator">
    <plugin pluginclass= "com.infotech.tra.CustomValidator.SelfRegisterUserCustomValidator" version="1.0.0" name="SelfRegisterUserCustomValidator">
    </plugin>
    </plugins>
    </oimplugins>
    Following is the error being generated:
    Enter name (complete file name with path) of the plugin file:
    /u01/oracle/Middleware/Oracle_IDM1/server/plugin_utility/SelfRegisterUserCustomValidator.zip
    [java] Java Result: 1
    [echo] Exception in thread "main" java.lang.NoClassDefFoundError: oracle/iam/platformservice/utils/PluginUtility
    [echo] Caused by: java.lang.ClassNotFoundException: oracle.iam.platformservice.utils.PluginUtility
    [echo] at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    [echo] at java.security.AccessController.doPrivileged(Native Method)
    [echo] at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    [echo] at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    [echo] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    [echo] at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    [echo] Could not find the main class: oracle.iam.platformservice.utils.PluginUtility. Program will exit.

  • Osb-custom xpath function in 11g

    is it possible to place osb-custom.xml in some other locations other than C:\<middlewarehome>\oracle_osb1\config\xpathfunctions and refer it during server startup as we have only read access to oracleOSB1 in production environments???

    I understand your reply and we are already doing that.
    the osb installation is common across the domains .but i need these custom xpath function reflected only for my domain.
    so my query is "whether we can set/overwrite any -D property at server startup or any server/domain level settings rather than updating the installation path?"
    I am just trying to understand whether we can avoid conflicts with multiple domains sharing the same installation.

  • Whats the difference between extending the xls mapper functions and xpath

    What is the whole deal about extending the xlst mapper functions or the xpath functions?
    any insight about the diferences would be greatly appreciated. I mena shouldnt the functions for xlst be the sames that are available for xpath?
    regards,
    gabs

    Unfortunately, XPath and XSL are two different standards, and the implementation of functions at the Java level uses a different interface. So a custom XPath function is not automatically reusable in XSL and vice versa.
    The core java code might be the same, but you need to code different "wrappers" for XPath and XSL.
    Marc

  • UDF's and XSLT Mapping

    Hi,
         I am very much confused when to use UDF's and when to use XSLT etc. Please make me to understand with good examples.

    HI,
    UDF's are user defined functions are of two types,simple UDF which takes in one input and gives out one output and the second one is advanced UDF where in u can access more than one fields,and the result is passed on to ResultList.
    UDF can be used in graphical mapping depends upon the requirement.
    1) If u wanted to do manuplication in data which can not be done by using the standared XI function that time we go for UDF.
    2) For doing Lookup we write the code in UDF and pass the value to R3 system.
    3) If u need to compare the input value and pass the other value based on comparision that time can go for UDF.
    There are many different requirement for which we can go ahead with UDF.
    What is XSLT:
    XSLT stands for EXtensible Stylesheet Language Transformations. It is an XML based language for transforming XML documents into any other formats suitable for browser to display, on the basis of set of well-defined rules.
    It can be used to transform
    •     XML to XML - From one XML data format to another
    •     XML to Text
    •     XML to HTML/XHTML
    •     XML to PDF
    A few example cases in which an XSLT mapping can be used:-
    &#61692;     When the required output is other than XML like Text, Html or XHTML (html displayed as XML )
    &#61692;     When default namespace coming from graphical mapping is not required or is to be changed as per requirements.
    &#61692;     When data is to be filtered based on certain fields (considering File as source)
    &#61692;     When data is to be sorted based on certain field (considering File as source)
    &#61692;     When data is to be grouped based on certain field (considering File as source).
    Advantages of using XSLT mapping
    &#61692;     XSLT program itself defines its own target structure.
    &#61692;     XSLT programs can be imported into SAP XI. Message mapping step can be avoided. One can directly go for interface mapping once message interfaces are created and mapping is imported.
    &#61692;     XSLT provides use of number of standard XPath functions that can replaces graphical mapping involving user defined java functions easily.
    &#61692;     File content conversion at receiver side can be avoided in case of text or html output.
    &#61692;     Multiple occurrences of node within tree (source XML) can be handled easily.
    &#61692;     XSLT can be used in combination with graphical mapping.
    &#61692;     Multi-mapping is also possible using xslt.
    &#61692;     XSLT can be used with ABAP and JAVA Extensions.
    But at the same XSLT has the disadvantages also.
    Thnx
    Chirag

  • How to apply an XSLT transformation in OSB

    Hello all ,
    I tried to made a simple example - that apply a simple XSLT transformation in OSB .
    I followed the http://blog.jayway.com/2010/05/07/xslt-transformations-in-oracle-service-bus/ example but still is not working in my project .
    If I apply the imported xslt over the xml in testing window is working fine .
    But the action to replace the content of the xml with the new one is not working.
    Here is the xslt
    <xsl:template match="/">
    <ns0:donateToFund>
    <arg0>
    <xsl:value-of select="/Report/CustomerName"/>
    </arg0>
    <arg1>
    <xsl:value-of select="/Report/CustomerNumber"/>
    </arg1>
    <arg2>
    <xsl:value-of select="/Report/ReportName"/>
    </arg2>
    </ns0:donateToFund>
    </xsl:template>
    and here is a xml sample
    - <Report>
    <ReportName>Customer Report</ReportName>
    <CustomerName>XXX</CustomerName>
    <CustomerNumber>3423</CustomerNumber>
    <GeneratedDate>2010-11-25 08:15:24.695</GeneratedDate>
    - <Rowset>
    - <Row>
    <Quantity>100154</Quantity>
    <CustomerPartNo>ee</CustomerPartNo>
    <eSiliconPartNo>ee</eSiliconPartNo>
    <Sector>ee</Sector>
    <Location>eee</Location>
    </Row>
    - <Row>
    In my action I put /Report as XPath ; body as variable and XSL fro transformation .
    Can anyone help to fix this ?
    Many thanks in advance,
    Stefan

    Following works for me:
    XSLT
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" omit-xml-declaration="yes"/>
    <xsl:template match="/" xmlns:ns0="http://tempuri.org">
    <ns0:donateToFund>
    <arg0>
    <xsl:value-of select="/Report/CustomerName"/>
    </arg0>
    <arg1>
    <xsl:value-of select="/Report/CustomerNumber"/>
    </arg1>
    <arg2>
    <xsl:value-of select="/Report/ReportName"/>
    </arg2>
    </ns0:donateToFund>
    </xsl:template>
    </xsl:stylesheet>Input to Proxy
         <Report>
         <ReportName>Customer Report</ReportName>
         <CustomerName>XXX</CustomerName>
         <CustomerNumber>3423</CustomerNumber>
         <GeneratedDate>2010-11-25 08:15:24.695</GeneratedDate>
         <Rowset>
         <Row>
         <Quantity>100154</Quantity>
         <CustomerPartNo>ee</CustomerPartNo>
         <eSiliconPartNo>ee</eSiliconPartNo>
         <Sector>ee</Sector>
         <Location>eee</Location>
         </Row>
         <Row>
         <Quantity>100154</Quantity>
         <CustomerPartNo>aa</CustomerPartNo>
         <eSiliconPartNo>aa</eSiliconPartNo>
         <Sector>aa</Sector>
         <Location>aaa</Location>
         </Row>
         </Rowset>
         </Report>Output of Proxy:
         <ns0:donateToFund       xmlns:ns0="http://tempuri.org">
         <arg0>XXX</arg0>
         <arg1>3423</arg1>
         <arg2>Customer Report</arg2>
         </ns0:donateToFund>I am using a single Replace action in the request pipeline.
    It works for both configs below:
    Replace [ entire node ] of [ ./* ] in [ body ] with [Xslt Resource: default/OTN/temp
    Input Document: $body/Report
    Variable Names And Bindings ]
    Or
    Replace [ Node Contents ] of [ . ] in [ body ] with [Xslt Resource: default/OTN/temp
    Input Document: $body/Report
    Variable Names And Bindings ]
    You need to ensure that if you are doing replace entire node of . in body or / in body then you should replace it with an XML whose root node is soap:Body. To achieve that you will need to change the XSL and add soap:Body as root of the output. Easier solution is to use replace contents of . body or replace entire node of ./* in body.

  • Xmlanonymizer bean and xslt - both not working for namespace change

    Hi All
    I have a source structure below
    <ns1:Product_MT xmlns:ns1="urn:alpha:websub" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Header>
    </Header>
    <Item>
    </Item>
    </ns1:Product_MT>
    I am using a soap sender getting called from SOAP UI to consume a PI web service and  send the output message to receiver HTTP channel
    the receiver needs the namespace of the XML structure as below (ns1 changed to ns)
    <ns:Product_MT xmlns:ns="urn:alpha:websub" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Header>
    </Header>
    <Item>
    </Item>
    </ns:Product_MT>
    I tried to put the xmlanonymizer bean in receiver HTTP but its not doing anything. I am stil getting the output with ns1 namespace
    Attached screenshot of receiver http adapter configuration in module
    also, I tried to use XSLT mapping as below but this is also not doing anything. Probably, the XSL has to be modified to use in my case . Please help. and let me know.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
      <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
    <ns:Product_MT xmlns:ns="urn:alpha:websub">
      <xsl:copy-of select="." />
    </ns:Product_MT>
    </xsl:template>
    </xsl:stylesheet>
    thx
    mike

    I had to tweak the XSL little bit to make it work in PI. See updated version below -
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
       <xsl:output encoding="UTF-8" indent="yes" method="xml" version="1.0"/>
       <xsl:variable name="root">MT_Product</xsl:variable>
       <xsl:variable name="rootns">urn:mdt:udiwebsubmission</xsl:variable>
       <xsl:template match="*">
         <xsl:choose>
           <xsl:when test="local-name()=$root">
             <xsl:element name="ns:{local-name()}" namespace="{$rootns}">
               <xsl:apply-templates select="node()"/>
             </xsl:element>
           </xsl:when>
           <xsl:otherwise>
             <xsl:element name="{local-name()}">
               <xsl:apply-templates select="node()"/>
             </xsl:element>
           </xsl:otherwise>
         </xsl:choose>
       </xsl:template>
    </xsl:stylesheet>
    Regards,
    Sameej

Maybe you are looking for

  • How to get back the data from 'AddressBook.data.previous' ?

    Hi! First of all: After using iSync all my address book data were duplicated, and I deleted all duplicated data manually. Then, I resetted the iSync data under 'Advanced' in '.Mac Sync Preferences'. Unfortunately, iSync deleted all my AddressBook dat

  • Ideas for a Price Lists

    We are about to start implementing another site and they have some specific price schedules we are trying to meet the requirements for. I thought I would get some ideas from the group on the Price Structure to handle it. There are three Customer Grou

  • Split file into multiple Instance of an IDoc .

    My file (only one file) in the file system contains multiple entities(lets say sales order).Now using File adapter I want to transfer this file into XI and want XI to create multiple instance of an IDoc(for each sales order) and send them to the targ

  • Safari on Leopard Crashes:  "Safari is missing important resources..."

    I installed Leopard, all was working, today I get: "Safari is missing important resources and should be reinstalled." Outside of the normal install, I installed all the optional stuff. I don't know if that contrbutes to the failure or not. The browse

  • Report Painter selection variables sorting

    I have added a number of characteristics to my report painter report and set some as variables i.e. plan version 1, plan version 2, plan version 3, plan version 1 year, plan version 2 year, plan version 3 year. These variables appear on the selection