XSLT-Mapping Exception:  Prefix not mapped:

Hi all,
I try to make a mapping using XSLT and get the exception: Prefix not mapped: ns0.
I wrote a simple xslt-script:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns1="http://me.home.com">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="//XIFCollection">
<Start>
  <xsl:for-each select="ns1:XIFTest">
   <Found>
    <xsl:number format="1"/>
   </Found>
  </xsl:for-each>
</Start>
</xsl:template>
</xsl:stylesheet>
Using this input XML:
<?xml version="1.0" encoding="UTF-8"?>
<XIFCollection  >
<ns0:XIFTest xmlns:ns0="http://me.home.com">
  <IFControl>
   <MeldungsId>1</MeldungsId>
  </IFControl>
  <XTest>
  </XTest>
</ns0:XIFTest>
<ns0:XIFTest xmlns:ns0="http://me.home.com">
  <IFControl>
   <MeldungsId>2</MeldungsId>
  </IFControl>
  <XTest>
  </XTest>
</ns0:XIFTest>
</XIFCollection>
In XML-Spy I get the following output:
<?xml version="1.0" encoding="UTF-8"?>
<Start xmlns:ns1="http://me.home.com">
<Found>1</Found>
<Found>2</Found>
</Start>
What I expected.
But using XI or the XML-Toolkit XI30xslt I get the exception:
java.lang.Exception: XMLParser: Prefix 'ns0' is not mapped to a namespace.
I tried everything and searched all dokumentation but have no idea.
Anyone with an idea?
Thanks

Hi,
you need to chage as Udo said
but also the other ns0 one:
check this:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://me.home.com">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="//XIFCollection">
<Start>
  <xsl:for-each select="ns0:XIFTest">
   <Found>
    <xsl:number format="1"/>
   </Found>
  </xsl:for-each>
</Start>
</xsl:template>
</xsl:stylesheet>
BTW
it works in Stylus Studio now
Regards,
michal

Similar Messages

  • XSLT Mapping: Namespace for prefix 'ns0' has not been declared

    Hello, I am working on a synchronous SOAP call and having some trouble with the response message. The web service has its own namespace and I am trying to convert this to my custom data type in PI. PI wants the message to be in format of having ns0 prefix and namespace like we have defined (http://foo for example).
    I have an XSLT mapping (see below) which works fine with my test response payload (pulled from SXMB_MONI source) on this online XSLT test site:
    http://www.freeformatter.com/xsl-transformer.html
    However when I import this archive to PI and test with operation mapping it always says "Namespace for prefix 'ns0' has not been declared."
    This is very confusing because when I test it online, I see both prefix and namespace declaration perfectly. Is there a way to see the results in the PI test tool? After this XSLT java error it doesn't give me the output even in Trace Level All mode.
    Please advise on this issue or if you know an easier way (such as altering my datatype/message type to match the inbound SOAP message). I tried working with the 3rd party WSDL but the response message types show a different root level node than what PI is receiving so I gave up to make my own matching datatype. I just have to solve this last inbound namespace issue and should be finished.
    FYI I have refreshed all PI caches and activated all objects.
    Thanks for your ideas!
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:ns0="http://foo"
      <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
      <xsl:template match="@* | node()">
        <xsl:copy>
          <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
      </xsl:template>
      <xsl:template match="/*">
        <xsl:element name="ns0:{local-name()}">
          <xsl:apply-templates select="@* | node()" />
        </xsl:element>
      </xsl:template>
      <xsl:template match="/">
        <xsl:element name="{local-name()}">
          <xsl:apply-templates select="@* | node()" />
        </xsl:element>
      </xsl:template>
    </xsl:stylesheet>

    Some additional info, here is an example payload which goes through the XSLT mapping perfectly, but in PI I get the error about missing ns0 declaration.
    XML input:
    <bar xmlns='http://irrelevantnamespace'
    xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'
    xmlns:xsd='http://www.w3.org/2001/XMLSchema'
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
    <foo/>
    </bar>
    XSLT mapped output using test tool and XSL above:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:bar xmlns:ns0="http://foo">
       <foo />
    </ns0:bar>

  • Reg - XSLT Mapping using stylesheet exception during test

    Hi experts,
    I am new to SAP PI. Currently i am working on PI's XSLT Mapping using Stylusstudio.
    I got error *Transformer Configuration Exception occurred when loading XSLT <name>.xsl; details: Could not compile stylesheet*.
    I tried test by selecting SAP XML TOOLKIT too, then i am facing
    *com.sap.engine.lib.xml.parser.NestedSAXParseException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XMLParser: Prefix 'a' is not mapped to a namespace (:main:, row:4, col:15)(:main:, row=4, col=15) -> com.sap.engine.lib.xml.parser.ParserException: XMLParser: Prefix 'a' is not mapped to a namespace (:main:, row:4, col:15)*.
    Kindly help me to overcome this issue.

    Hi,
    Simply your XSLT file is not a well-formed XML. Check your syntax. You could also use the XML Tools plugin to Notepad++ to help you determine where the syntax error is precisely.
    Moreover, this error "Prefix 'a' is not mapped to a namespace" might mean that you are using a tag: <a:something>, but "a" is not properly declared as a namespace, for instance like: xmlns:a="something.sap.com".
    Hope this helps,
    Greg

  • XSLT Mapping - problem with prefixes when calling template

    Hi all,
    I am having a problem with using an XSLT mapping in XI to combine various fields from 2 input messages of different structures into a single output message.  I understand that XI puts a wrapper around the 2 input messages so the structure of the XML I am mapping is:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns2:Messages xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge">
    <ns2:Message1>
    <ns:(root of first message)>
    </ns:(root of first message)>
    </ns2:Message1>
    <ns2:Message2>
    <ns:(root of second message)>
    </ns: (root of second message)>
    </ns2:Message2>
    </ns2:Messages>
    Currently my XSL looks like the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://example.co.uk/example" xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge" xmlns:javamap="java:systemDate.CurrentDate" version="2.0">
    <xsl:output method="xml" version="1.0" encoding="UTF-8"/>
    <xsl:param name="inputparam"/>
    <xsl:template match="ns2:Messages">
    ...<xsl:calltemplate name="FormattingTemplate"/>
    </xsl:template>
    <xsl:template name="FormattingTemplate">
    </xsl:template>
    </xsl:stylesheet>
    When I test the mapping it works fine until it calls the FormattingTemplate.  Then it throws out a "transformer exception" error saying the prefix 'ns2' is not mapped to a namespace.
    If anyone could tell me where I am going wrong I would be very grateful.
    Thanks,
    Mike

    Hi Udo,
    Thanks for your reply.
    When testing the stylesheet locally with XMLSpy, it works fine, but I have just noticed that it adds information in the root tag of the target message as follows:
    <(root of target message) xmlns:javamap="java:systemDate.CurrentDate" xmlns:ns="http://example.co.uk/example" xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge">
    I checked the root tag of the target message in XI and it does not automatically add this information. Thus I added it in my stylesheet so the information above is projected in the target message, but the same error message appears when the call template function is called.  Do you know if I need to somehow add a namespace to templates other than the main one? If so, do you know how I go about doing that?
    Thanks,
    Mike

  • XSLT Mapping with Java class not working in Integration Repository

    Hi,
    I have an XSLT mapping program with Java enhancement and I was able to successfully tested it in Stylus Studio. However, when I imported the Java class and the xslt program in Enterprise Service Builder and tested it, my program does not compile.
    Here is the error message: "Transformer Configuration Exception occurred when loading XSLT mapping_temp.xsl; details: Could not compile stylesheet".
    My java program is in a zip file containing SOAPHeaderHandler.java and SOAPHeaderhandler.class. My Java has a package com.nga.xslt.
    Here is the declaration of my Java class in the XSLT: xmlns:javamap="java:com.nga.xslt.SOAPHeaderHandler"
    It seems that it could not read the java class. Can you please advice what is wrong?

    Hi ,
    select XMLTOOLKIT option in Operation mapping and execute it.
    I am not sure we can call java program in XSLT Program,but alternative is copy the code and use it in XSLT mapping it self,that means your XSLT program will become with JAVA extensions.
    then in Operation mapping level select SAPXMLTOOL kit option and execute it. i hope it will work. if it is not working then you have deploy some JAXP files on server,because the way execution of XSLT Mpaping program got changed,like when eve you executing XSLT with extnasions( if you are not using XMLTOOL kit option) then you have to use latest version of JAXP.JDK files.
    Regards,
    Raj

  • Raising Exceptions in XSLT mapping.?

    Hi,
    When there is an mapping exception, in UDF, i raise an exception...
    Similar is the case with Java & ABAP mappings.
    Now, How do i raise mapping exceptions in XSLT mapping (Java & ABAP)..?
    --DJ

    You could use Java enhancement, but instead of just adding info to the trace, you could raise a real exception, using an ErrorHandler object. Ive successfully worked with the one below (not with XSLTs, tho, but I dont see why it shouldnt work.
    import java.util.Map;
    import org.xml.sax.ErrorHandler;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    * @author Henrique.Pinto
    * To change the template for this generated type comment go to
    * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
    public class MappingErrorHandler implements ErrorHandler {
         private static AbstractTrace trace = null;
         public MappingErrorHandler(Map param) {
              trace =
                   (AbstractTrace) param.get(
                        StreamTransformationConstants.MAPPING_TRACE);
         public void warning(SAXParseException exception) throws SAXException {
              trace.addInfo(
                   "**Parsing Warning**n"
                        + "  Line:    "
                        + exception.getLineNumber()
                        + "n"
                        + "  URI:     "
                        + exception.getSystemId()
                        + "n"
                        + "  Message: "
                        + exception.getMessage());
              throw new SAXException("Warning encountered");
         public void error(SAXParseException exception) throws SAXException {
              trace.addInfo(
                   "**Parsing Error**n"
                        + "  Line:    "
                        + exception.getLineNumber()
                        + "n"
                        + "  URI:     "
                        + exception.getSystemId()
                        + "n"
                        + "  Message: "
                        + exception.getMessage());
              throw new SAXException("Error encountered");
         public void fatalError(SAXParseException exception) throws SAXException {
              trace.addInfo(
                   "**Parsing Fatal Error**n"
                        + "  Line:    "
                        + exception.getLineNumber()
                        + "n"
                        + "  URI:     "
                        + exception.getSystemId()
                        + "n"
                        + "  Message: "
                        + exception.getMessage());
              throw new SAXException("Fatal Error encountered");
    Regards,
    Henrique.

  • XSLT mapping throws error in XI, but not in XMLSPY

    Hi everybody,
    I got a really complex XSLT mapping. It works fine in XMLSPY.
    But when I execute the mapping in XI, I get the following error:
    Error during XSLT Transformation: Could not load stylesheet.com.sap.engine.lib.xml.util.NestedException: Operator or ')' expected.
    I asume there is a special character that XI cannot execute.
    has anybody an idea of finding this character?
    Thanks, regards Mario

    Hi Mario
    Check your input data, and also try to see test in Interface mapping test tab,
    you will get an idea about the input is correct or not
    see the below links..
    <u><b>XSLT Mapping</b>[/u
    /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
    <u><b>XSLT Mapping with java enhancement</b></u>
    /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
    /people/r.eijpe/blog/2005/11/04/using-abap-xslt-extensions-for-xi-mapping - Using ABAP XSLT Extensions for XI Mapping
    Cheers..
    Vasu
    <i>** Reward Points if found useful **</i>

  • XSLT Mapping, Transformer configuration exception occurred when loading

    Hi,
    My source message is an IDOC HRMD, I need my target message to include exactly
    <EPERSON xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ContextPersonMessage">
    I have therefore suggested to use XSLT mapping.
    Here is the test_mapping.xsl that I Imported as Zip in Imported Archives.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://polyright.com/xi/HR">
         <xsl:template match="/">
              <EPERSON xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ContextPersonMessage">
                          <xsl:for-each select="HRMD_A07/IDOC/E1PLOGI">
                <CONTEXTPERSON personid="" id="">
                      <PERSON action="add">
                               <TITLE></TITLE>
                               <FIRSTNAME><xsl:value-of select="E1PITYP/E1P0002/VORNA"/></FIRSTNAME>
                               <SECONDNAME></SECONDNAME>
                               <NAME><xsl:value-of select="E1PITYP/E1P0002/NACHN"/></NAME>
                               <ADDRESS1></ADDRESS1>
                               <ADDRESS2></ADDRESS2>
                               <POSTALCODE></POSTALCODE>
                               <CITY></CITY>
                               <COUNTRY></COUNTRY>
                               <COUNTRYID></COUNTRYID>
                               <PROFESSION></PROFESSION>
                               <LANGUAGE></LANGUAGE>
                               <LANGUAGEID></LANGUAGEID>
                               <PERSONTYPEID></PERSONTYPEID>
                               <CREATIONDATE></CREATIONDATE>
                               <BIRTHDATE></BIRTHDATE>
                               <CATEGORY></CATEGORY>
                             </PERSON>
                      </xsl:for-each>
              </EPERSON>
         </xsl:template>
    </xsl:stylesheet>
    When I test the Interface mapping, I get the following error:
    Transformer configuration exception occurred when loading XSLT test_mapping.xsl (http://polyright.com/xi/HR, 783938d1-4463-11dd-b136-e03ac0a80c15, -1)
    Searching through the forum, it is probably an namespace issue, but I have no idea of what needs to be changed. Any suggestions ?

    Try running end-to-end scenario and check if you could get detailed error message.
    Also check if the problem arises from the "ns0" usage.
    Regards,
    Prateek

  • XSLT mapping not working b'coz " " & " " replaced with and

    Hello Experts,
      I have a RFC to JMS scenario. One of the parameter of RFC is a string field. This field will contain the XML data in it.
    I need to create a complete XML payload using this data in a string field. For this I am using XSLT map :
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
         <xsl:output method="xml" omit-xml-declaration="no"/>
         <xsl:template match="/">
              <xsl:for-each select="//Nem">
                   <xsl:copy-of select="."/>
              </xsl:for-each>
         </xsl:template>
    </xsl:stylesheet>
    This XSLT mapping works fine when tested independently.
    But in actual scenario at runtime the "<" & ">" used to indicate a node are getting replaced with < and >. Then the XSLT mapping fails and produces no output.
    The output of XSL will be passed in to a java mapping which signs the payload digitally.
    What is the issue with these signs? How can I overcome this problem?
    Any inputs will be of great help.
    Kind Regards,
    Abhijeet.
    Edited by: Abhijeet Ambekar on May 4, 2010 2:01 PM

    Hi Stefan,
      Yes - I want to get rid of & # 60. But these (& # 60 and & # 62) are not added by XSLT mapping. Rather they are in the input available to XSLT map.
    In sxmb_moni, i can see the inbound payload correctly :
    <?xml version="1.0" encoding="UTF-8" ?>
    - <rfc:HDK083_REFUS_SENDDOCU xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
      <P_SIGN_DOCUMENT />
      <P_XML_DOCUMENT><NemRefusionIndberetningSamling><NemRefusionIndberetningStruktur MessageID="1"><HeaderStruktur><SignOffIndikator>true</SignOffIndikator><TransaktionKode>Opret</TransaktionKode><IndberetningstypeKode>Anmeldelse</IndberetningstypeKode><FravaerTypeKode>Sygdom</FravaerTypeKode><FravaerendeStruktur><FravaerendeTypeKode>Loenmodtager</FravaerendeTypeKode><LoenUnderFravaerIndikator>false</LoenUnderFravaerIndikator></FravaerendeStruktur><IndberetningUUIDIdentifikator>bf9cc44e-af15-4e19-8457-5845d75385d2</IndberetningUUIDIdentifikator><ReferenceAttributTekst>ref. Nielsen-1503831372 (23. oktober 2009)</ReferenceAttributTekst>
    but when I try to download the payload or right click on payload to view source I get something like below:
    <?xml version="1.0" encoding="UTF-8"?><rfc:HDK083_REFUS_SENDDOCU xmlns:rfc="urn:sap-com:document:sap:rfc:functions"><P_SIGN_DOCUMENT></P_SIGN_DOCUMENT><P_XML_DOCUMENT>& # 6 0;NemRefusionIndberetningSamling& # 62; & # 60;NemRefusionIndberetningStruktur MessageID="1"& #62;& #60;HeaderStruktur& #62;& #60;SignOffIndikator& #62;true& #60;/SignOffIndikator& #62;& #60;TransaktionKode& #62;Opret& #60;/TransaktionKode& #62;& #60;IndberetningstypeKode& #62;Anmeldelse& #60;/IndberetningstypeKode& #62;& #60;FravaerTypeKode& #62;Sygdom& #60;/FravaerTypeKode& #62;& #60;FravaerendeStruktur& #62;& #60;FravaerendeTypeKode& #62;Loenmodtager</FravaerendeTypeKode><LoenUnderFravaerIndikator& #62;false</LoenUnderFravaerIndikator></FravaerendeStruktur& #62;<IndberetningUUIDIdentifikator& #62;bf9cc44e-af15-4e19-8457-5845d75385d2& #60;/IndberetningUUIDIdentifikator& #62;& #60;ReferenceAttributTekst& #62;ref. Nielsen-1503831372 (23. oktober 2009)& #60;/ReferenceAttributTekst& #62;
    (extra spaces added to "& # 60" as browser was converting it to < ,>)
    If i take the source code for payload and test XSLT mapping, it fails. But if I manually replace all "& # 60" with < and "& # 6 2" with >, then the mapping works fine.
    So I think for XSLT map to work correctly, we need to replace all "& # 60 " . Please suggest.
    Kind Regards,
    Abhijeet.

  • Exception occurred during XSLT mapping of the application

    Hi
    While Developing XSLT mapping i got the error message as
    <SAP:Code area="MAPPING">TRANSFORMER_EXCEPTION</SAP:Code>
      <SAP:P1>OTA_VehAvailRateRQ_XSLT</SAP:P1>
      <SAP:P2>http://kcdata.com/OTA_VehAvailRate</SAP:P2>
      <SAP:P3>b5351710-4911-11dd-a7f7-ed57ac1600cf</SAP:P3>
      <SAP:P4>-1</SAP:P4>
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Exception occurred during XSLT mapping of the application</SAP:Stack>
    please provide me your help

    Hi all,
    The Problem is solved as we later realised the actual problem is with the input XML file provided to us.
    We tried using a different XML file which was processed succesfully earlier ..and  its working all fine now.
    Thanx all,
    take care

  • XML not well formed in - XSLT mapping

    Hi,
    I am doing a simple xslt mapping wherein my Source data structure is
    MT
    |__ details
            |__ Records
                      |_emp_no
                      |_ emp_name
                      |_emp_dno
    In XSL file i hv specified <xsl:template match="MT">
    and I am using <for-each select="details/Records">
    when I m testing it in Interface mapping, it is giving me error "XML not well formed"
    can anybody please suggest whats the problem in the code??
    Thank you,
    Anu Singhal

    Hi Anu,
        I think in the select query in xslt mapping u have to mention the expression "//"  so that for each iteration it can go according the path.
      < for-each select = " //details/records">
      I have some sample code of same type...just check it..
    <xsl:template match="/">
    <MT_EMP_TARGET>
         <xsl:for-each select="//EMP_DATA">
              <EMP_DATA>
                            <xsl:variable name="fname" select="//EMP_DATA/First_Name"/>
                            <xsl:variable name="lname" select="//EMP_DATA/Last_Name"/>     
                   <Emp_Code><xsl:value-of select="//EMP_DATA/Emp_Code"/></Emp_Code>
                   <Name><xsl:value-of select="concat($fname,' ',$lname)"/></Name>
                   <Join_Dt><xsl:value-of select="//EMP_DATA/Join_Dt"/></Join_Dt>
                   <Designation><xsl:value-of select="//EMP_DATA/Level"/></Designation>
                   <Dept><xsl:value-of select="//EMP_DATA/Dept"/></Dept>
              </EMP_DATA>
         </xsl:for-each>
    </MT_EMP_TARGET>
    </xsl:template>
    For more info:
    http://www.w3schools.com/xsl/el_for-each.asp
    Cheers,
    Prasanthi.
    Reward marks  if helpful.

  • Exception while running xslt mapping

    Hi all,
    I am doing an xslt mapping to get an html content . Within xslt mapping code i am using "&nbsp" to add white space . I am using Stylus Studio to run the mapping , when i run it in Stylus , its executing fine.
    But once I import this xslt mapping into XI & run it from Interface mapping , i am getting (The entity "nbsp" was referenced, but not declared.) excpetion.
    I have declared <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>  as well in my mapping ...even then i am getting the error.
    Please provide ur inputs
    Regards
    Vinay P

    Hi Vinay,
    Can you please share the exact line in XSLT?
    If I may suggest, you can use a simple way like <xsl:value-of select="concat('txt1',' ','txt2')"/> or simply <xsl:text>text1 text2<xsl:text>
    If this does not address, please provide more details on the problem statement.
    Thanks and Regards,
    Sarath...

  • Not in class path - XSLT Mapping using Stylus studio

    Hello,
    I am using Stylus studio for XSLT mapping. I have written a JAVA function and when I tried to execute, I am getting an error " ...... not inclasspath".
    I have put JAVA file in the classpath as expained in the Stylus studio help documentation.
    Can anyone help me on how to place the Java class file in the proper class path and how that java file has to be called from main XML program.
    Regards and Thanks in Advance
    Arvind

    Hello sabarish,
    I have tried already as explained in the link you have mentioned. But still not working. In fact i was thinking to zip xsl, class and java files together and upload to XI. But I want to ensure whether i have called the java extension properly from XSL file.
    Request you check this:
    Java file
    package com.eds.ehro.ximapping;
    import java.util.Map;
    //import com.sap.aii.mapping.api.AbstractTrace;
    //import com.sap.aii.mapping.api.StreamTransformationConstants;
    import java.util.*;
    import java.text.*;
    public class Concat_Employee_Sydate_Sytime {
                 public static String concat(String empno)
                 return empno + "-" + System.currentTimeMillis();
    XSL file
    <?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.gemsconsult.com/idoctofile/employee"
      xmlns:javamap="com.eds.ehro.ximapping.Concat_Employee_Sydate_Sytime">
         <xsl:template match="/">
              <ns1:SetEmployeesDemographics_R xmlns:ns1="urn:EmpDemoVi">
                   <ns1:demographics0>
                        <ns2:address xmlns:ns2="urn:com.sap.eds_ehro.besrv.demographics">
                             <ns2:adressLine>
                                  <xsl:value-of select="concat(ns0:MT_EMPDETAILS/AddressLine1,ns0:MT_EMPDETAILS/AddressLine2)"/>
                             </ns2:adressLine>
                             <ns2:countyCode>
                                  <xsl:value-of select="ns0:MT_EMPDETAILS/Country"/>
                             </ns2:countyCode>
                             <ns2:postalCode>
                                  <xsl:value-of select="ns0:MT_EMPDETAILS/Zipcode"/>
                             </ns2:postalCode>
                        </ns2:address>
                        <ns2:clientID xmlns:ns2="urn:com.sap.eds_ehro.besrv.demographics">200</ns2:clientID>
                        <ns2:employeeID xmlns:ns2="urn:com.sap.eds_ehro.besrv.demographics">
                             <xsl:param name="empno">
                                  <xsl:value-of select="ns0:MT_EMPDETAILS/EmployeeNo"/>
                             </xsl:param><!xsl:value-of select="ns0:MT_EMPDETAILS/EmployeeNo"/>
                             <xsl:if test="ns0:MT_EMPDETAILS/EmployeeNo">
                                  <xsl:value-of select="javamap:concat($empno)"/>
                             </xsl:if>
                        </ns2:employeeID>
                        <ns2:personName xmlns:ns2="urn:com.sap.eds_ehro.besrv.demographics">
                             <ns2:firstName>
                                  <xsl:value-of select="ns0:MT_EMPDETAILS/FirstName"/>
                             </ns2:firstName>
                             <ns2:middleName>
                                  <xsl:value-of select="ns0:MT_EMPDETAILS/LastName"/>
                             </ns2:middleName>
                        </ns2:personName>
                   </ns1:demographics0>
              </ns1:SetEmployeesDemographics_R>
         </xsl:template>
    </xsl:stylesheet>

  • Got Exceptions XSLT mapping  while testing the scenarion.........

    Hi
    I got the following exceptions while testing the XSLT mapping scenario...
    Hi
    I have created a XSLT mapping with java conjunction... i have created a ZIP file and i have palced java class file, java file and xsl file in that ZIP file... I have imported this archive into imported archives... but when i am testing the application i got the follwoing exceptions
    <b>Details
    com.sap.engine.services.ejb.exceptions.BaseRemoteException:
    Exception in method transform.
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:182)
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104)
    at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
    at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
    at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
    at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
    at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
    at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
    at java.security.AccessController.doPrivileged(Native
    Method)
    at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
    at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.lang.UnsupportedClassVersionError:
    DATEandTIME/Date_Time (Unsupported major.minor version
    49.0)
    at java.lang.ClassLoader.defineClass0(Native
    Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
    at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33)
    at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:69)
    at com.sap.engine.lib.xsl.xpath.functions.XFFunctionAvailable.execute(XFFunctionAvailable.java:24)
    at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:110)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:54)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:41)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:49)
    at com.sap.engine.lib.xsl.xslt.XSLIf.process(XSLIf.java:28)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
    at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:457)
    at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:391)
    at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:392)
    at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:234)
    at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150)
    at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81)
    at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80)
    at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107)
    at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127)
    at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104)
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40)
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:131)
    ... 10 more
    ; nested exception is:
    java.lang.UnsupportedClassVersionError:
    DATEandTIME/Date_Time (Unsupported major.minor version
    49.0)
    com.sap.engine.services.ejb.exceptions.BaseRemoteException:
    Exception in method transform.
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:182)
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104)
    at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
    at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
    at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
    at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
    at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
    at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
    at java.security.AccessController.doPrivileged(Native
    Method)
    at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
    at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.lang.UnsupportedClassVersionError:
    DATEandTIME/Date_Time (Unsupported major.minor version
    49.0)
    at java.lang.ClassLoader.defineClass0(Native
    Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
    at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33)
    at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:69)
    at com.sap.engine.lib.xsl.xpath.functions.XFFunctionAvailable.execute(XFFunctionAvailable.java:24)
    at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:110)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:54)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:41)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:49)
    at com.sap.engine.lib.xsl.xslt.XSLIf.process(XSLIf.java:28)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
    at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:457)
    at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:391)
    at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:392)
    at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:234)
    at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150)
    at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81)
    at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80)
    at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107)
    at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127)
    at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104)
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40)
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:131)
    ... 10 more
    ; nested exception is:
    java.lang.UnsupportedClassVersionError:
    DATEandTIME/Date_Time (Unsupported major.minor version
    49.0)</b>
    Please help me....
    Best Regards
    Ravi Shankar B
    Message was edited by: RaviShankar B

    Hi
    Following is my XSLT code
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:javamap="java:DATEandTIME.Date_Time">
         <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
         <xsl:param name="inputparam" />
         <xsl:template match="/">
         <MT_TARGET>
              <date>
                   <xsl:if test="function-available('javamap:getDateValue')">
                       <xsl:value-of select="javamap:getDateValue($inputparam)"/>                    </xsl:if>
              </date>
              <time>
              <xsl:if test="function-available('javamap:getTimeValue')">
                       <xsl:value-of select="javamap:getTimeValue($inputparam)"/>                       <xsl:value-of select="$test"/>
              </xsl:if>
              </time>
              <project>
                        <xsl:value-of select= "//project"/>
              </project>
         </MT_TARGET>
         </xsl:template>
    </xsl:stylesheet>
    Following is my Java Code
    package DATEandTIME;
    import java.util.Map;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import java.util.*;
    import java.text.*;
    public class Date_Time {
                private static AbstractTrace trace = null;
                public static String getDateValue(Map inputparam)
                        trace = (AbstractTrace)inputparam.get(
                                 StreamTransformationConstants.MAPPING_TRACE );
                        Date now1 = new Date();
                        SimpleDateFormat formatter = new SimpleDateFormat ("yyyyMMd");
                        String dateString = formatter.format(now1);
                        return dateString;
                public static String getTimeValue(Map inputparam)
                            trace = (AbstractTrace)inputparam.get(
                                    StreamTransformationConstants.MAPPING_TRACE );
                            Date now1 = new Date();
                            SimpleDateFormat formatter = new SimpleDateFormat ("hhmmss");
                            String dateString1 = formatter.format(now1);
                            return dateString1;
    Best Regards
    Ravi Shankar B

  • XSLT mapping not reflected at the receiver

    Hi ,
    I am working on IDoc to proxy scenario . At the receiver i have SNC which uses standard content . The mapping here is XSLT mapping .
    I modified the standard content XSLT mapping according to the requirement . The mappings works fine in the test tool . However on checking the payload at the receiver side the field i mapped is non existent
    this is the XSLT code i used for mapping
    !--TAxcode -->                    
    <xsl:if test="count (./E1EDP04/MWSKZ)!=0">
                                       <xsl:element name="FollowUpInvoice">
                                            <xsl:element name="ProductTaxationCharacteristicsCode">
                                                 <xsl:value-of select="./E1EDP04/MWSKZ"/>
                                                 </xsl:element>
                                       </xsl:element>          
                                  </xsl:if>
    ProductTaxationCharacteristicsCode has 0-1 occurence
    Is there anything i am missing out here ?

    Hi,
    /people/anish.abraham2/blog/2005/12/22/file-to-multiple-idocs-xslt-mapping
    http://www.w3schools.com/xsl/xsl_languages.asp
    http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm
    /people/r.eijpe/blog/2005/11/04/using-abap-xslt-extensions-for-xi-mapping
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1
    http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/frameset.htm
    If we use Altova map force tool, it will automatically generate the code, instead of we manually writing.
    Here we map the mapping like our graphical, internally it generates the corresponding the XSLT code.

Maybe you are looking for

  • How do you copy the R shape symbol to show that a name is trade marked?

    I clicked on the shapes buttom and the shapes came up on the menu bar. I found the symbol for registered trademark but could not figure out how to copy it to the back of the name that was registered. The same was true for the TM symbol. Please help.

  • Can't see video on a clip, it is blank.

    In both the clip browser and the time line no video shows unless I place the play head over an area. In the older version all the video was in view all the time. How do I turn on the video?

  • Transfer files from PowerBook G4 to new MacBook Pro 13"

    I need to transfer my photo library from my PowerBook G4 to a new MacBook Pro 13". Migration Assistant will not work! What FireWire cable do I need? I believe the old PowerBook is a 6pin. The MacBook pro FireWire port is about half the size of the 6p

  • Launch appication in new window.

    Hi, In ITS i am trying to launch the PDF file from the click of the button. It is correctly opening the PDF file. Problme is it is opening in the same window. I need the appication to be launched in different window. Is there a way i can open a file

  • WUC-23

    Hello, I'm getting WUC-23 using webutil. However it is not documented. Is there a newer manual available? Is there a description/resolution available ===================================== 004-Mar-15 16:39:57.827 ERROR>WUC-23 [URLDownload.pullFile()]