Facing problem in XSLT transformation

Hi all,
I m new bie to XSLT n transformation. I have written a simple java program that uses the javax.xml.transform and javax.xml.parsers package to transform source file using a XSL file provided.
When I excuted the program providing XSLT file that worked fine and transformed the XML but when I modified the XSLT and using Xpath functions, I m getting following exception :
ERROR: 'Cannot find class 'xpath-functions'.'
FATAL ERROR: 'Could not compile stylesheet'
javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:824)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:613)
at transformXML.main(transformXML.java:33)
This is my XSLT file:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.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"
xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
     <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
     <xsl:template match="/">
          <Listfaultinterfaceslot>
               <xsl:variable name="current_date" select="fn:string(fn:current-date())"/>
               <!-- Get the components of the current date -->
               <xsl:variable name="day">
                    <xsl:value-of select="fn:substring($current_date,9,2)"/>
               </xsl:variable>
               <xsl:variable name="month">
                    <xsl:value-of select="fn:substring($current_date,6,2)"/>
               </xsl:variable>
               <xsl:variable name="year">
                    <xsl:value-of select="fn:substring($current_date,1,4)"/>
               </xsl:variable>
               <xsl:variable name="formatted_date">
                    <xsl:value-of select="$month"/>
                    <xsl:text>/</xsl:text>
                    <xsl:value-of select="$day"/>
                    <xsl:text>/</xsl:text>
                    <xsl:value-of select="$year"/>
               </xsl:variable>
               <!-- Finally output the slots-->
               <AppointmentSlot>
                    <xsl:attribute name="AppointmentSlotNo">1</xsl:attribute>
                    <xsl:attribute name="ExternalAppointmentSlotStart">
                    <xsl:value-of select="$formatted_date"/>
                         <xsl:text> 08:00:00</xsl:text>
                    </xsl:attribute>
                    <xsl:attribute name="ExternalAppointmentSlotEnd">
                    <xsl:value-of select="$formatted_date"/>
                    <xsl:text> 13:00:00</xsl:text>
                    </xsl:attribute>
               </AppointmentSlot>
               <AppointmentSlot>
                    <xsl:attribute name="AppointmentSlotNo">2</xsl:attribute>
                    <xsl:attribute name="ExternalAppointmentSlotStart">
                    <xsl:value-of select="$formatted_date"/>
                    <xsl:text> 13:00:00</xsl:text>
                    </xsl:attribute>
                    <xsl:attribute name="ExternalAppointmentSlotEnd">
                    <xsl:value-of select="$formatted_date"/>
                    <xsl:text> 18:00:00</xsl:text>
                    </xsl:attribute>
               </AppointmentSlot>
          </Listfaultinterfaceslot>
     </xsl:template>
</xsl:stylesheet>
Please look into this n let me know the reason.
Thanks alot
Omesh

thanks for response buddy.
I am using the Java 5 SDK and package " javax.xml.transform" to get transformer. As per my undestanding, Java 5 Sdk has xalan transformer.
This is my code:
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.*;
import java.io.File;
import org.w3c.dom.Document;
public class transformXML
     public static void main(String[] args)
          System.out.println("Hello World!");
          String inputFile = args[0];
          String styleFile = args[1];
          String outFile = args[2];
          File sourceFileName = new File(inputFile);
          File stylesheet = new File(styleFile);
          File transformFileName = new File(outFile);
          DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(sourceFileName);
StreamSource stylesource = new StreamSource(stylesheet);
TransformerFactory xfFactory = TransformerFactory.newInstance();
     Transformer transformer = xfFactory.newTransformer(stylesource);
//transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
DOMSource source = new DOMSource(document);
     StreamResult result = new StreamResult(transformFileName);
transformer.transform(source,result);
catch(Exception e) {
e.printStackTrace();
//throw new Exception("Error transforming XML - " + e.getMessage());
               System.out.println("Error transforming XML - " + e.getMessage());
I m looking for whether Java provided xalan transformer supports XSLT 2.0 or not. If u found any solution please let me know.
many thanks,
Omesh

Similar Messages

  • Problem with XSLT Transformation on BPM

    Hi there,
    I have a 1:N File --> Idocs Scenario with BPM, Inside the BPM i have an XSLT Transformation that has a problem i cant figure out, basically this XSLT Groups the file structure like this:
    <File>                                                *                  <Shipments>
       <Route>                                         *                     <Route>
          <Id>1</Id>                                   *                         <Id>1</Id>
          <delivery>1</delivery>               *                         <delivery>1</delivery>
       </Route>                                        *                         <delivery>2</delivery>
      <Route>                                          *                     </Route>
          <Id>1</Id>                                   *                     <Route>
          <delivery>2</delivery>               *                         <Id>2</Id>
       </Route>                                        *                         <delivery>3</delivery>
      <Route>                                          *                         <delivery>4</delivery>
          <Id>2</Id>                                   *                      </Route>
          <delivery>3</delivery>               *                   </Shipments>
       </Route>                                        *
       <Route>                                         *
          <Id>2</Id>                                   *
          <delivery>4</delivery>               *
       </Route>                                        *
    </File>                                               *
    It's supposed to generate 1 Route Segment for each disctint Route Id on the Source file, it has always worked fine as we ran several tests before going into production system, but now, sometimes it misses a few routes for example the output will be 25 different Routes for a source file that 28, or 2 routes from a file that as 3.
    I have tested the XSLT on the repository and it works fine all the time, same thing when using xml spy, i always download the payload i get from the file adapter, i got a source file from PRD that has 28 routes and i ran the whole scenario on QAS and it generated 12 routes only, im about to open an OSS message but first i wanted to know if anyone has seen something like this, thanks in advance for all the help you guys can provide.
    Best Regards,
    Roberto.
    p.s. i can send the XSL if needed or anything just ask for it.

    Hi,
    Basically because i  have to do 2 transformations, first i run the XSLT to group all the deliveries and such, and then i do a graphic mapping to split it into single Shipment Idocs, i dont know how to group by id on graphical mapping..., anyway i don't think the fact that im using BPM would finally alter the xslt result,
    Regards,
    Roberto.

  • Problem getting xslt transform to work

    I have the following ABAP Xslt  transformation
    <xsl:transform
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:sap="http://www.sap.com/sapxsl" version="1.0"
    >
    <xsl:strip-space elements="*"/>
         <xsl:template match="/">
              <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
                   <asx:values>
                        <ALLIR_REIKNINGAR>
                             <xsl:apply-templates select="//Invoice"/>   
                        </ALLIR_REIKNINGAR>
                   </asx:values>
              </asx:abap>
         </xsl:template>
        <xsl:template match="Invoice">
        <REIKNINGUR>
            <REIKN_NUMER>
                <xsl:value-of select="cbc:ID"/>           
            </REIKN_NUMER>
            <REIKN_AFRIT>
                <xsl:value-of select="cbc:CopyIndicator"/>
            </REIKN_AFRIT>
            <REIKN_UTGAFUDAGS>
                <xsl:value-of select="cbc:IssueDate"/>
            </REIKN_UTGAFUDAGS>
            <REIKN_MYNT>
                <xsl:value-of select="cbc:DocumentCurrencyCode"/>
            </REIKN_MYNT>
            <REIKN_TIMABIL_FRA>
                <xsl:value-of select="cac:InvoicePeriod/cbc:StartDate"/>
            </REIKN_TIMABIL_FRA>
            <REIKN_TIMABIL_TIL>
                <xsl:value-of select="cac:InvoicePeriod/cbc:EndDate"/>
            </REIKN_TIMABIL_TIL>
        </REIKNINGUR>
        </xsl:template>
    </xsl:transform>
    And the following XML input file
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="vodafone_xslt_namespace.xslt"?>
    <Invoice
    xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
    xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
    xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
    xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ccts="urn:un:unece:uncefact:documentation:2"
    xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
    xmlns:clm5639="urn:un:unece:uncefact:codelist:specification:5639:1988"
    xmlns:clm54217="urn:un:unece:uncefact:codelist:specification:54217:2001"
    xmlns:clm66411="urn:un:unece:uncefact:codelist:specification:66411:2001"
    xmlns:clmIANAMIMEMediaType="urn:un:unece:uncefact:codelist:specification:IANAMIMEMediaType:2003"
    >
         <cbc:UBLVersionID>2.0</cbc:UBLVersionID>
         <cbc:CustomizationID>NES</cbc:CustomizationID>
         <cbc:ProfileID schemeID="Profile"
         schemeAgencyID="NES">urn:www.nesubl.eu:profiles:profile4:ver1.1</cbc:ProfileID>
         <cbc:ID>PB1554421</cbc:ID>
         <cbc:CopyIndicator>false</cbc:CopyIndicator>
         <cbc:IssueDate>2011-12-31</cbc:IssueDate>
         <cbc:InvoiceTypeCode listID="UN/ECE 1001 Restricted" listAgencyID="NES">380</cbc:InvoiceTypeCode>
         <cbc:Note languageID="IS">Company name</cbc:Note>
         <cbc:DocumentCurrencyCode listID="ISO 4217 Alpha">ISK</cbc:DocumentCurrencyCode>
         <cbc:AccountingCost>2001523</cbc:AccountingCost>
         <cac:InvoicePeriod>
              <cbc:StartDate>2011-12-01</cbc:StartDate>
              <cbc:EndDate>2011-12-31</cbc:EndDate>
         </cac:InvoicePeriod>
    </Invoice>
    My problem is that this transformation does not work unless I completly strip out the namespace parts i.e. cbc:
    How can I get the parser to read the tags with namespace part. And if the parser can not handle namespace in XML how can I go about reding the data into sap ?

    I think you are trying convert the xml to an internal table because of // in apply-templates, then you need to change last XSLT program and include <item> tag inside the <xsl:template match="inv:Invoice">  template, see updated XSLT bellow.
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
    xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
    xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
    xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ccts="urn:un:unece:uncefact:documentation:2"
    xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
    xmlns:clm5639="urn:un:unece:uncefact:codelist:specification:5639:1988"
    xmlns:clm54217="urn:un:unece:uncefact:codelist:specification:54217:2001"
    xmlns:clm66411="urn:un:unece:uncefact:codelist:specification:66411:2001"
    xmlns:clmIANAMIMEMediaType="urn:un:unece:uncefact:codelist:specification:IANAMIMEMediaType:2003"
    xmlns:sapxsl="http://www.sap.com/sapxsl"
    version="1.0">
      <xsl:strip-space elements="*"/>
      <xsl:strip-space elements="*"/>
      <xsl:template match="/">
        <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
          <asx:values>
            <ALLIR_REIKNINGAR>
              <xsl:apply-templates select="//inv:Invoice"/>
            </ALLIR_REIKNINGAR>
          </asx:values>
        </asx:abap>
      </xsl:template>
      <xsl:template match="inv:Invoice">
        <item>
        <REIKNINGUR>
          <REIKN_NUMER>
            <xsl:value-of select="cbc:ID"/>
          </REIKN_NUMER>
          <REIKN_AFRIT>
            <xsl:value-of select="cbc:CopyIndicator"/>
          </REIKN_AFRIT>
          <REIKN_UTGAFUDAGS>
            <xsl:value-of select="cbc:IssueDate"/>
          </REIKN_UTGAFUDAGS>
          <REIKN_MYNT>
            <xsl:value-of select="cbc:DocumentCurrencyCode"/>
          </REIKN_MYNT>
          <REIKN_TIMABIL_FRA>
            <xsl:value-of select="cac:InvoicePeriod/cbc:StartDate"/>
          </REIKN_TIMABIL_FRA>
          <REIKN_TIMABIL_TIL>
            <xsl:value-of select="cac:InvoicePeriod/cbc:EndDate"/>
          </REIKN_TIMABIL_TIL>
        </REIKNINGUR>
       </item>
      </xsl:template>
    </xsl:transform>
    According to the XSLT program you need dclare an itab like this:
    DATA: BEGIN OF ls_reikningur,
          reikn_numer(10) TYPE c,
          END OF ls_reikningur.
    DATA: BEGIN OF ls_invoice,
          reikningur LIKE ls_reikningur,
          END OF ls_invoice.
    DATA: lt_invoice LIKE TABLE OF ls_invoice.
    And finally you need a call transformation in your abap code like this:
    DATA: root_error TYPE REF TO cx_root.
    DATA: lv_mess TYPE string.
    TRY.
        CALL TRANSFORMATION  zinvoice
           SOURCE XML lv_xml
           RESULT allir_reikningar = lt_invoice.
      CATCH cx_root INTO root_error.
        lv_mess = root_error->if_message~get_text( ).
        WRITE lv_mess.
    ENDTRY.

  • XSLT transformation: tamplate match="*" problem

    Hi everybody,
    I have some stupid problem with XSLT transformations. I use XALAN-J 2.7 to transform xml files. My xslt transformation can be downloaded from http://tesla.rcub.bg.ac.yu/~sing/xsd2rdf.xslt
    Problem is when I have in xslt file template defined with (match="*") it does not work. Transformation does not throw any exceptions; it just does not match nodes very well.
    Next XML schema can be used as test. So, if you transform this file(schema below) using e.g. XML Spy it will work fine, but if you transform it using JAVA it does not match all nodes. Any suggestions are welcome. Is it problem with XPath standard and XALAN implementation or what???
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema targetNamespace="http://www.openapplications.org/oagis/CoreComponents/1.90/Types" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cct="http://www.openapplications.org/oagis/CoreComponents/1.90/Types" elementFormDefault="qualified" attributeFormDefault="unqualified">
         <xs:simpleType name="Simple">
              <xs:restriction base="xs:integer"/>
         </xs:simpleType>
         <xs:complexType name="AmountType">
              <xs:simpleContent>
                   <xs:extension base="cct:Simple">
                        <xs:attribute name="currencyID" type="xs:integer" use="required"/>
                        <xs:attribute name="codeListVersionID" type="xs:float" use="optional"/>
                   </xs:extension>
              </xs:simpleContent>
         </xs:complexType>
    </xs:schema>
    Thanks,
    Igor.

    Found a solution for my problem. Now it works!
      DATA: wa_transformation TYPE y0dpl_structures.
      DATA: obj_import TYPE abap_trans_srcbind_tab,
            wa_import TYPE abap_trans_srcbind.
      DATA: obj_data TYPE REF TO data.
      DATA: wa_return TYPE bapiret2.
      FIELD-SYMBOLS: <data> TYPE ANY TABLE.
    * Get transformation data
      SELECT SINGLE *
      INTO wa_transformation
      FROM y0dpl_structures
      WHERE filetype = i_file_type.
      IF sy-subrc IS INITIAL.
    * Create table with internal structure
        CREATE DATA e_data TYPE STANDARD TABLE OF (wa_transformation-structure_name).
        ASSIGN i_data->* TO <data>.
        wa_import-name = 'IMPORT'.
        GET REFERENCE OF <data> INTO wa_import-value.
        APPEND wa_import TO obj_import.
    * Call transformation
        CALL TRANSFORMATION (wa_transformation-transformation)
        SOURCE (obj_import)
        RESULT export_data = e_data.
      ELSE.
        MOVE:  'Y0_DPL' TO wa_return-id,
               'E'      TO wa_return-type,
               '108'    TO wa_return-number.
        APPEND wa_return TO e_return.
        CLEAR: wa_return.
      ENDIF.

  • Issue with xslt transform

    I'm having a problem with xslt transformations.
    I'm sending a DOMDocument to be transformed into a varchar2. The transformation was into html and I was then printing the returning varchar2 to a web page, along the lines of...
    htp.prn(Xslt.transform(domdoc, xslt.stylesheet( l_stylesheet_bfile)));
    I subsequently broke the varchar2 32k limit so I started playing with transforming into a dom instead of a varchar, then writing the dom to a clob and the printing the clob to the web page in 32k chunks.
    I noticed this produced different results than the first method. Now I'm assuming that this is not because xslt is doing the transformations differently but because it's trying to put my html into a well-formed DOMdocument. I have noticed, though, that things like & #160; seemed to have disappeared.
    Just wondering if I'm doing something wrong, and also any reason why the transform functionality doesn't have an output option of CLOB?
    Thanks
    Jason

    What is the DB version?

  • XSLT Transformation problem

    Hi,
    hope anybody can help.
    I try to transform a object to another object via XSLT transformation.
    Here is my coding :
      DATA: wa_transformation TYPE y0dpl_structures.
      DATA: obj_import TYPE abap_trans_srcbind_tab,
            wa_import TYPE abap_trans_srcbind.
      DATA: obj_export TYPE abap_trans_resbind_tab,
            wa_export TYPE abap_trans_resbind.
      DATA: obj_data TYPE REF TO data.
    * Get transformation data
      SELECT SINGLE *
      INTO wa_transformation
      FROM y0dpl_structures
      WHERE filetype = i_file_type.
    * Create table with internal structure
      CREATE DATA e_data TYPE (wa_transformation-structure_name).
      wa_import-name = 'IMPORT'.
      GET REFERENCE OF i_data INTO wa_import-value.
      APPEND wa_import TO obj_import.
    * Call transformation
      CALL TRANSFORMATION (wa_transformation-transformation)
      SOURCE (obj_import)
      RESULT (obj_export).
    i_data is a import parameter from type "ref to data".
    My problem is, that "Call transformation" makes a shortdump when calling them.
    Regards,
    Anton

    Found a solution for my problem. Now it works!
      DATA: wa_transformation TYPE y0dpl_structures.
      DATA: obj_import TYPE abap_trans_srcbind_tab,
            wa_import TYPE abap_trans_srcbind.
      DATA: obj_data TYPE REF TO data.
      DATA: wa_return TYPE bapiret2.
      FIELD-SYMBOLS: <data> TYPE ANY TABLE.
    * Get transformation data
      SELECT SINGLE *
      INTO wa_transformation
      FROM y0dpl_structures
      WHERE filetype = i_file_type.
      IF sy-subrc IS INITIAL.
    * Create table with internal structure
        CREATE DATA e_data TYPE STANDARD TABLE OF (wa_transformation-structure_name).
        ASSIGN i_data->* TO <data>.
        wa_import-name = 'IMPORT'.
        GET REFERENCE OF <data> INTO wa_import-value.
        APPEND wa_import TO obj_import.
    * Call transformation
        CALL TRANSFORMATION (wa_transformation-transformation)
        SOURCE (obj_import)
        RESULT export_data = e_data.
      ELSE.
        MOVE:  'Y0_DPL' TO wa_return-id,
               'E'      TO wa_return-type,
               '108'    TO wa_return-number.
        APPEND wa_return TO e_return.
        CLEAR: wa_return.
      ENDIF.

  • Problem with x:transform function : translation with XSLT

    I've got a problem with this code :
    This is the XML file :
    <%@taglib prefix="x" uri="http://java.sun.com/jstl/xml"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
    <c:import var="xslDoc" url="test.xsl"/>
    <x:transform  xslt ="${xslDoc}">
      <students>
      <student id="1">
       <name>
         <first>John</first>
         <last>Smith</last>
         <middle>T</middle>
       </name>
       <grade>
         <points>72</points>
         <letter>C</letter>
       </grade>
      </student>
    </students>
    </x:transform>This is the XSLT :
    <xsl:stylesheet version="1.0"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="students">
      <html>
      <head>
      <title>XSLT Transform</title>
      </head>
      <body>
       <table border="1">
       <tr><th>First</th><th>Last</th>
    <th>Points</th><th>Letter</th></tr> 
       <xsl:apply-templates/>
       </table>
       </body>
      </html>
    </xsl:template>
    <xsl:template match="student">
      <tr>
       <td><xsl:value-of select="name/first"/></td>
       <td><xsl:value-of select="name/last"/></td>
       <td><xsl:value-of select="grade/points"/></td>
       <td><xsl:value-of select="grade/letter"/></td>
      </tr>
    </xsl:template>
    </xsl:stylesheet>I use NetBeans 3.5.1 for compiling and testing, and on my machine all works fine.
    But when i upload the code on the server i''ve this type of error :
    HTTP Status 500 - Internal Server Error
    exception
    org.apache.jasper.JasperException: access denied (java.util.PropertyPermission org.xml.sax.driver read)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:248)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
         at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:457)
         at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:576)
         at java.lang.Thread.run(Thread.java:536)
    root cause
    java.security.AccessControlException: access denied (java.util.PropertyPermission org.xml.sax.driver read)
         at java.security.AccessControlContext.checkPermission(AccessControlContext.java:270)
         at java.security.AccessController.checkPermission(AccessController.java:401)
         at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
         at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1291)
         at java.lang.System.getProperty(System.java:572)
         at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:81)
         at org.apache.taglibs.standard.tag.common.xml.TransformSupport.getSource(TransformSupport.java:280)
         at org.apache.taglibs.standard.tag.common.xml.TransformSupport.getSource(TransformSupport.java:276)
         at org.apache.taglibs.standard.tag.common.xml.TransformSupport.doStartTag(TransformSupport.java:159)
         at org.apache.taglibs.standard.tag.el.xml.TransformTag.doStartTag(TransformTag.java:104)
         at org.apache.jsp.test_jsp._jspService(test_jsp.java:78)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
         at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:457)
         at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:576)
         at java.lang.Thread.run(Thread.java:536)
    org.apache.jasper.JasperException: access denied (java.util.PropertyPermission org.xml.sax.driver read)It seems a permission problem, but my experience with JSP is very poor , i've asked to control to my host
    the policy of the folders but they didn't respond me yet.
    Any suggestion ?
    Thx for reading, and sorry for my rusty english :-P

    Thanks.
    I've already tried to insert the whole path. You mean this,right ?
    <c:import var="xslDoc" url="http://www.domain.net/examples/test.xsl"/>I've searched a lot with google but i haven't find anything.
    I've not searched a lot into the jakarta site, I'll do tomorrow, now it's
    a bit late (1:45 AM in Italy :-0 ), so i think that i'll go to sleep.
    Thanks for responding so soon!
    I'll wait for your new infos.
    Thanks again.
    read you tomorrow.

  • Problem in Call transformation - xslt program

    Hi Experts,
    For the below XML file i have declared the XSLT Program  as described.
    i am not able to get the data into Internal table.
    Could you pls help me in where am i going wrong?
    Is it XSLT declaration or what?
    Data declarations
    TYPES: BEGIN OF TY_BH,
            RECORDTYPE(02), " Record Type
            DOCTYPE(02),      " Document type
            REFERENCE(16),      " Reference Document Number
            DOCUMENTDATE(08),      " Document Date in Document
            POSTINGDATE(08),      " Posting Date in the Document
            COMPANYCODE(04),      " Company Code
            CURRENCY(03),      " Currency Key
            EXCHANGERATE(08),      " Exchange rate
            PARK(01),  " Park document
            ITEMNUMBER(03), " Number of line item
           END OF TY_BH,
           BEGIN OF TY_HH,
             RECORDTYPE(02), " Record Type
             SOURCE(04),
             DESTINATION(04),
             TIMESTAMP(14),
           END OF TY_HH,
           BEGIN OF TY_TT,
             RECORDTYPE(02),
             TOTALRECORDS(10) TYPE N,
             TOTALVALUE(16),
           END OF TY_TT.
    TYPES: BEGIN OF TY_BL,
             RECORDTYPE(02),
             REFERENCE(16),
             REFLINEITEM(03),
             ACCTTYPE(01),
             DRCRINDICATOR(01),
             ACCOUNT(10),
             AMOUNT(13),
             VENDORNAME1(40),
             VENDORNAME2(40),
             VENDORNAME3(40),
             VENDORNAME4(40),
             STREET(40),
             CITY(40),
             POSTALCODE(10),
             COUNTRY(02),
             CONTACTPERSON(10),
             ALTERNATEPAYEECODE(10),
             ALTERNATEPAYEENAME1(40),
             ALTERNATEPAYEENAME2(40),
             ALTERNATEPAYEENAME3(40),
             PAYMENTTERMS(04),
             BASELINEDATE(08),
             PAYMENTMETHODS(01),
             ALLOCATION(18),
             LINEITEMTEXT(50),
             TAXCODE(02),
             TAXAMOUNT(13),
             WHTAXCODE(02),
             WHTAXBASE(13),
             FUND(10),
             FUNDCENTER(16),
             COSTCENTER(10),
             INTERNALORDER(12),
             TAXAUTOMATICALLY(01),
             SPECIALGLINDICATOR(01),
           END OF TY_BL.
    DATA: GT_BH     TYPE STANDARD TABLE OF TY_BH,
          GS_BH     TYPE TY_BH,
          GT_BL     TYPE STANDARD TABLE OF TY_BL,
          GS_BL     TYPE TY_BL,
          GT_HH     TYPE STANDARD TABLE OF TY_HH,
          GS_HH     TYPE TY_HH,
          GT_TT     TYPE STANDARD TABLE OF TY_TT,
          GS_TT     TYPE TY_TT.
    DATA: GT_RESULT_XML5 TYPE ABAP_TRANS_RESBIND_TAB,
          GS_RESULT_XML5 TYPE ABAP_TRANS_RESBIND.
    DATA: GS_RIF_EX     TYPE REF TO CX_ROOT,
          GS_VAR_TEXT   TYPE STRING.
    DATA: BEGIN OF GT_XML,
             HH TYPE TY_HH,
             BH LIKE TABLE OF GT_BH,
             BL LIKE TABLE OF GT_BL,
             TT TYPE TY_TT,
           END OF GT_XML.
    DATA: GT_ITAB       TYPE STANDARD TABLE OF CHAR2048,
          GS_ITAB TYPE CHAR2048.
    I have the below file read into internal table GT_ITAB.
    XML File
    <?xml version="1.0" encoding="utf-8"?>
    <ABCInbound xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\XYZSchema\ABCInbound.xsd">
    <HH>
    <RecordType>HH</RecordType>
    <Source>ABC</Source>
    <Destination>XYZ</Destination>
    <TimeStamp>20050909220546</TimeStamp>
    </HH>
    <BH>
    <RecordType>BH</RecordType>
    <DocType>AB</DocType>
    <Reference>2205516125</Reference>
    <DocumentDate>20080909</DocumentDate>
    <PostingDate></PostingDate>
    <CompanyCode>ABC</CompanyCode>
    <Currency>INR</Currency>
    <ExchangeRate>1.0000</ExchangeRate>
    <Park></Park>
    <ItemNumber>2</ItemNumber>
    </BH>
    <BL>
    <RecordType>BL</RecordType>
    <Reference>2205516125</Reference>
    <RefLineItem>1</RefLineItem>
    <AcctType>K</AcctType>
    <DrCrIndicator>H</DrCrIndicator>
    <Account>01000003</Account>
    <Amount>364.00</Amount>
    <VendorName-1>TOM &amp; JERRY IS MY</VendorName-1>
    <VendorName-2> NAME TO BE PAID</VendorName-2>
    <VendorName-3>1987566Z</VendorName-3>
    <VendorName-4>22</VendorName-4>
    <Street>UCX STREET</Street>
    <City>ROAD 4</City>
    <PostalCode>515004</PostalCode>
    <Country>IND</Country>
    <ContactPerson></ContactPerson>
    <AlternatePayeeCode></AlternatePayeeCode>
    <AlternatePayeeName-1></AlternatePayeeName-1>
    <AlternatePayeeName-2></AlternatePayeeName-2>
    <AlternatePayeeName-3></AlternatePayeeName-3>
    <PaymentTerms></PaymentTerms>
    <BaselineDate></BaselineDate>
    <PaymentMethods></PaymentMethods>
    <Allocation></Allocation>
    <LineItemText>item text</LineItemText>
    <TaxCode></TaxCode>
    <TaxAmount>0.00</TaxAmount>
    <WHTaxCode></WHTaxCode>
    <WHTaxbase>0.00</WHTaxbase>
    <Fund></Fund>
    <FundCenter></FundCenter>
    <CostCenter></CostCenter>
    <InternalOrder></InternalOrder>
    <TaxAutomatically></TaxAutomatically>
    <SpecialGLIndicator></SpecialGLIndicator>
    </BL>
    <TT>
    <RecordType>TT</RecordType>
    <TotalRecords>1</TotalRecords>
    <TotalValue>222</TotalValue>
    </TT>
    </ABCInbound>
    Call transformation as below
    GET REFERENCE OF GT_XML INTO GS_RESULT_XML5-VALUE.
    GS_RESULT_XML5-NAME = 'IABC'.
    APPEND GS_RESULT_XML5 TO GT_RESULT_XML5.
    TRY.
        CALL TRANSFORMATION Z_XML_TO_ABAP5
        SOURCE XML GT_ITAB
        RESULT (GT_RESULT_XML5).
      CATCH CX_ROOT INTO GS_RIF_EX.
        GS_VAR_TEXT = GS_RIF_EX->GET_TEXT( ).
        MESSAGE GS_VAR_TEXT TYPE 'E'.
    ENDTRY.
    WHEN I CHECK GT_XML its initial.
    XSLT Program Z_XML_TO_ABAP5 is like below.
    Pls let me know if my xslt declaration is wrong.
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:output encoding="iso-8859-1" indent="yes" method="xml" version="1.0"/>
      <xsl:strip-space elements="*"/>
      <xsl:template match="/">
        <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
          <asx:values>
            <IABC>
              <xsl:apply-templates select="//ABCInbound"/>
            </IABC>
          </asx:values>
        </asx:abap>
      </xsl:template>
      <xsl:template match="ABCINBOUND">
        <item>
          <RECORDTYPE>
            <xsl:value-of select="RecordType"/>
          </RECORDTYPE>
          <SOURCE>
            <xsl:value-of select="Source"/>
          </SOURCE>
          <DESTINATION>
            <xsl:value-of select="Destination"/>
          </DESTINATION>
          <TIMESTAMP>
            <xsl:value-of select="TimeStamp"/>
          </TIMESTAMP>
          <RECORDTYPE>
            <xsl:value-of select="RecordType"/>
          </RECORDTYPE>
          <DOCTYPE>
            <xsl:value-of select="DocType"/>
          </DOCTYPE>
          <REFERENCE>
            <xsl:value-of select="Reference"/>
          </REFERENCE>
          <DOCUMENTDATE>
            <xsl:value-of select="DocumentDate"/>
          </DOCUMENTDATE>
          <POSTINGDATE>
            <xsl:value-of select="PostingDate"/>
          </POSTINGDATE>
          <COMPANYCODE>
            <xsl:value-of select="CompanyCode"/>
          </COMPANYCODE>
          <CURRENCY>
            <xsl:value-of select="Currency"/>
          </CURRENCY>
          <EXCHANGERATE>
            <xsl:value-of select="ExchangeRate"/>
          </EXCHANGERATE>
          <PARK>
            <xsl:value-of select="Park"/>
          </PARK>
          <ITEMNUMBER>
            <xsl:value-of select="ItemNumber"/>
          </ITEMNUMBER>
          <RECORDTYPE>
            <xsl:value-of select="RecordType"/>
          </RECORDTYPE>
          <REFERENCE>
            <xsl:value-of select="Reference"/>
          </REFERENCE>
          <REFLINEITEM>
            <xsl:value-of select="RefLineItem"/>
          </REFLINEITEM>
          <ACCTTYPE>
            <xsl:value-of select="AcctType"/>
          </ACCTTYPE>
          <DRCRINDICATOR>
            <xsl:value-of select="DrCrIndicator"/>
          </DRCRINDICATOR>
          <ACCOUNT>
            <xsl:value-of select="Account"/>
          </ACCOUNT>
          <AMOUNT>
            <xsl:value-of select="Amount"/>
          </AMOUNT>
          <VENDORNAME1>
            <xsl:value-of select="VendorName-1"/>
          </VENDORNAME1>
          <VENDORNAME2>
            <xsl:value-of select="VendorName-2"/>
          </VENDORNAME2>
          <VENDORNAME3>
            <xsl:value-of select="VendorName-3"/>
          </VENDORNAME3>
          <VENDORNAME4>
            <xsl:value-of select="VendorName-4"/>
          </VENDORNAME4>
          <STREET>
            <xsl:value-of select="Street"/>
          </STREET>
          <CITY>
            <xsl:value-of select="City"/>
          </CITY>
          <POSTALCODE>
            <xsl:value-of select="PostalCode"/>
          </POSTALCODE>
          <COUNTRY>
            <xsl:value-of select="Country"/>
          </COUNTRY>
          <CONTACTPERSON>
            <xsl:value-of select="ContactPerson"/>
          </CONTACTPERSON>
          <ALTERNATEPAYEECODE>
            <xsl:value-of select="AlternatePayeeCode"/>
          </ALTERNATEPAYEECODE>
          <ALTERNATEPAYEENAME1>
            <xsl:value-of select="AlternatePayeeName1"/>
          </ALTERNATEPAYEENAME1>
          <ALTERNATEPAYEENAME2>
            <xsl:value-of select="AlternatePayeeName2"/>
          </ALTERNATEPAYEENAME2>
          <ALTERNATEPAYEENAME3>
            <xsl:value-of select="AlternatePayeeName3"/>
          </ALTERNATEPAYEENAME3>
          <PAYMENTTERMS>
            <xsl:value-of select="PaymentTerms"/>
          </PAYMENTTERMS>
          <BASELINEDATE>
            <xsl:value-of select="BaselineDate"/>
          </BASELINEDATE>
          <PAYMENTMETHODS>
            <xsl:value-of select="PaymentMethods"/>
          </PAYMENTMETHODS>
          <ALLOCATION>
            <xsl:value-of select="Allocation"/>
          </ALLOCATION>
          <LINEITEMTEXT>
            <xsl:value-of select="LineItemText"/>
          </LINEITEMTEXT>
          <TAXCODE>
            <xsl:value-of select="TaxCode"/>
          </TAXCODE>
          <TAXAMOUNT>
            <xsl:value-of select="TaxAmount"/>
          </TAXAMOUNT>
          <WHTAXCODE>
            <xsl:value-of select="WHTaxCode"/>
          </WHTAXCODE>
          <WHTAXBASE>
            <xsl:value-of select="WHTaxbase"/>
          </WHTAXBASE>
          <FUND>
            <xsl:value-of select="Fund"/>
          </FUND>
          <FUNDCENTER>
            <xsl:value-of select="FundCenter"/>
          </FUNDCENTER>
          <COSTCENTER>
            <xsl:value-of select="CostCenter"/>
          </COSTCENTER>
          <INTERNALORDER>
            <xsl:value-of select="InternalOrder"/>
          </INTERNALORDER>
          <TAXAUTOMATICALLY>
            <xsl:value-of select="TaxAutomatically"/>
          </TAXAUTOMATICALLY>
          <SPECIALGLINDICATOR>
            <xsl:value-of select="SpecialGLIndicator"/>
          </SPECIALGLINDICATOR>
          <RECORDTYPE>
            <xsl:value-of select="RecordType"/>
          </RECORDTYPE>
          <TOTALRECORDS>
            <xsl:value-of select="TotalRecords"/>
          </TOTALRECORDS>
          <TOTALVALUE>
            <xsl:value-of select="TotalValue"/>
          </TOTALVALUE>
        </item>
      </xsl:template>
    </xsl:transform>
    I able to get if declare only for BL and BH in separate xslt transformations.
    Regards,
    Simha

    Hello Mithun,
    when you use the call transformation statement you have to specifiy the xslt transformation used. As a first step you usually use the transformation with the name ID. This is a special transformation for making the asXML representation of abap data. Unfortunately if you look into this transformation you find the following:
    <xsl:transform version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    >
    <xsl:strip-space elements="*"/>
    <xsl:template match="/">
      <xsl:copy-of select="."/>
    </xsl:template>
    </xsl:transform>
    If I remember correctly when you use another transformation this will first call the ID transformation and after this the specified one. So it should not be possible to just copy ID transformation and remove the line. I'll have to think again how to avoid the behaviour.
    Best Regards
    Roman

  • PL/SQL XSLT transformation problem

    I am trying to perform an XSLT transformation inside a PL/SQL procedure using dbms_xslprocessor.processxsl() but I am getting the following error 'LPX-00411: unknown function name encountered'
    The transformation XSL contains a java extension to preform some encoding of data and with the template containing the reference to the extension removed the transformation works fine. Does this mean that DBMS_XMLPARSER does not support java extensions in XSL or is it possible I'm just calling the function incorrectly?
    I have been testing up to now using oraxsl on the command line which seemed to work fine.
    Thanks,
    Alan

    Alan,
    Are you using the right namespace for the class you want to use?

  • XSLT transformation for deep structure .....

    Hello,
            I am trying to do an XSLT transformation for a deep structure HAP_S_PDF_DOCUMENT (see it in SE11), I have managed to achieve this. but not with perfection. i still get some redundant data and data have been experiencing Data duplication. I was hoping if you people point out the what is wrong in the transfromation. The data repeats for every once under node DATA and then under node of the refered structure name. Besides it also create a blank row even if the record is 0. I am mostly facing problem with nodes T_ELEMENTS. T_COL_CELL and T_FIELD. These are the nested structures, Can anybody help / guide me to achieve these transforamtion?
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
    <xsl:strip-space elements="*"/>
    <xsl:template match="HAP_DOCUMENT">
    <xsl:element name="HAP_DOCUMENT" namespace="">
    <xsl:apply-templates select="MAIN_HEADER"/>
    <xsl:apply-templates select="T_ELEMENTS"/>
    <xsl:apply-templates select="T_STAT_CHG_BUTTONS"/>
    <xsl:apply-templates select="S_APPRAISAL_ID"/>
    <xsl:apply-templates select="S_HEADER"/>
    <xsl:apply-templates select="POSITIONS"/>
    <xsl:element name="STAT_CHG_BUTTON">
    <xsl:value-of select="../STAT_CHG_BUTTON"/>
    </xsl:element>
    <xsl:element name="OFFLINE_ID">
    <xsl:value-of select="OFFLINE_ID"/>
    </xsl:element>
    <xsl:element name="BSP_FLAG">
    <xsl:value-of select="BSP_FLAG"/>
    </xsl:element>
    <xsl:element name="ROLE">
    <xsl:value-of select="ROLE"/>
    </xsl:element>
    <xsl:element name="APPRAISAL_YEAR">
    <xsl:value-of select="APPRAISAL_YEAR"/>
    </xsl:element>
    </xsl:element>
    </xsl:template>
    <xsl:template match="MAIN_HEADER">
    <xsl:element name="MAIN_HEADER">
    <xsl:for-each select="ZBGAPR_FORM_HEADER">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_ELEMENTS">
    <xsl:element name="T_ELEMENTS">
    <xsl:for-each select="ZHAP_S_PDF_ELEMENTS">
    <xsl:element name="DATA">
    <xsl:apply-templates select="T_COL_CELL"/>
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_COL_CELL">
    <xsl:element name="T_COL_CELL">
    <xsl:for-each select="ZHAP_S_PDF_COL_CELL">
    <xsl:element name="DATA">
    <xsl:apply-templates select="T_FIELD"/>
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_FIELD">
    <xsl:element name="T_FIELD">
    <xsl:for-each select="ZHAP_S_PDF_FIELD">
    <xsl:element name="DATA">
    <xsl:apply-templates select="T_VAL_VALUES"/>
    <xsl:apply-templates select="T_VAL_RANGES"/>
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_VAL_VALUES">
    <xsl:element name="T_VAL_VALUES">
    <xsl:for-each select="HAP_S_BODY_CELL_VAL_VALUES">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_VAL_RANGES">
    <xsl:element name="T_VAL_RANGES">
    <xsl:for-each select="HAP_S_BODY_CELL_VAL_RANGES">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_STAT_CHG_BUTTONS">
    <xsl:element name="T_STAT_CHG_BUTTONS">
    <xsl:for-each select="HAP_S_BODY_CELL_VAL_RANGES">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="S_APPRAISAL_ID">
    <xsl:element name="S_APPRAISAL_ID">
    <xsl:copy-of select="node()"/>
    </xsl:element>
    </xsl:template>
    <xsl:template match="S_HEADER">
    <xsl:element name="S_HEADER">
    <xsl:apply-templates select="S_TEXTS"/>
    <xsl:apply-templates select="T_APPRAISER"/>
    <xsl:apply-templates select="T_APPRAISEE"/>
    <xsl:apply-templates select="T_PART_APPRAISER"/>
    <xsl:apply-templates select="T_OTHERS"/>
    <xsl:apply-templates select="S_STATUS"/>
    <xsl:apply-templates select="S_DATES"/>
    <xsl:apply-templates select="S_DISPLAY"/>
    </xsl:element>
    </xsl:template>
    <xsl:template match="POSITIONS">
    <xsl:element name="POSITION">
    <xsl:for-each select="ZBGHR_APR_POSITION_DET">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="S_TEXTS">
    <xsl:element name="S_TEXTS">
    <xsl:copy-of select="node()"/>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_APPRAISER">
    <xsl:element name="T_APPRAISER">
    <xsl:for-each select="HAP_S_PDF_APPRAISER">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_APPRAISEE">
    <xsl:element name="T_APPRAISEE">
    <xsl:for-each select="HAP_S_PDF_APPRAISEE">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_OTHERS">
    <xsl:element name="T_OTHERS">
    <xsl:for-each select="HAP_S_PDF_OTHERS">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_PART_APPRAISER">
    <xsl:element name="T_PART_APPRAISER">
    <xsl:for-each select="HAP_S_PDF_PART_APPRAISERS">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="T_PART_APPRAISER">
    <xsl:element name="T_PART_APPRAISER">
    <xsl:for-each select="HAP_S_PDF_PART_APPRAISERS">
    <xsl:element name="DATA">
    <xsl:copy-of select="child::node()"/>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    <xsl:template match="S_STATUS">
    <xsl:element name="S_STATUS">
    <xsl:copy-of select="node()"/>
    </xsl:element>
    </xsl:template>
    <xsl:template match="S_DATES">
    <xsl:element name="S_DATES">
    <xsl:copy-of select="node()"/>
    </xsl:element>
    </xsl:template>
    <xsl:template match="S_DISPLAY">
    <xsl:element name="S_DISPLAY">
    <xsl:copy-of select="node()"/>
    </xsl:element>
    </xsl:template>
    <xsl:template match="STAT_CHG_BUTTON">
    </xsl:template>
      <xsl:template match="OFFLINE_ID">
    </xsl:template>
      <xsl:template match="BSP_FLAG">
    </xsl:template>
      <xsl:template match="ROLE">
    </xsl:template>
      <xsl:template match="APPRAISAL_YEAR">
    </xsl:template>
    </xsl:transform>
    Regards,
    Shishir.P

    "XSLT transformation for a deep structure"
    which way abap to xml or xml to abap?
    you may want to check this thread
    Re: Problem converting XML back to structure using XSLT

  • Error when applying a XSLT transformation

    central instance
    transaction SURVEY
    Extras->Target Group Hierarchy-> Import from file
    select file
    Error when applying a XSLT transformation
    dialog instance working

    Hello Andrey Kuryanov,
    Could make sure you describe the problem more clear as much as you can so that community can help you better.
    Please provide more details with more detailed steps and actual error messge.
    Thanks
    Raja Pamireddy
    Moderator

  • UTF-8 encoding in XSLT transformation

    Hello,
    I have a problem with a transformation of an ABAP structure into XML. I use the XSLT transformation for this.
    My XSLT starts like this:
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:strip-space elements="*"/>
      <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
        <asx:values>
    I tried many settings I could find posted on the internet, but I did not find one that would allow encoding to UTF-8.
    It always encodes to iso-8859-1 which my interface partner cannot read.
    Does anyone know a way to force encoding to UTF-8?
    Adding a command like <xsl:output encoding="utf-8"/> did not help.
    Thanks a lot!
           J. Euler

    Hello!
    I think I just solved the problem taking a different approach.
    In a note here on SDN, a guy from SAP wrote, that the SAP XSLT processor is not able to code anything but the system's default to a string, BUT that it is able to code it to an xstring.
    All I did now is add the tag  
    <xsl:output encoding="utf-8" indent="yes" method="xml"/>
    to my xslt program and change the coding in the program accordingly.
    The program code is now:
      DATA: tempxstring TYPE xstring,
            temp_length TYPE i,
            conv      TYPE REF TO cl_abap_conv_in_ce.
      CLEAR tempxstring.
      TRY.
          CALL TRANSFORMATION
              zxxje_tst_xslt
            SOURCE omsregdatawebservice = wa_data
            RESULT XML tempxstring.
        CATCH cx_sy_conversion_base64.
        CATCH cx_sy_conv_illegal_date_time.
      ENDTRY.
      IF tempxstring IS NOT INITIAL.
        CLEAR: conv, temp_length, string_xml_result.
        conv = cl_abap_conv_in_ce=>create( input = tempxstring ).
        conv->read( IMPORTING data = string_xml_result len = temp_length ).
      ENDIF.
    Thanks anyways for all your help!
    regards,
          Johannes Euler

  • Problem with CALL TRANSFORMATION xml - abap

    Hello!
    I got the following problems using call transformation to read a xml-file to local abap datatype!
    Simple xml file for testing:
    <BMECAT>
    <HEADER>
    asdf
    </HEADER>
    </BMECAT>
    XSLT file:
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
      <xsl:template match="/">
        <xsl:value-of select="./BMECAT/HEADER"/>
      </xsl:template>
    </xsl:transform>
    The xslt transformation works with xslt-tester!
    My Source:
    DATA: xmlupl TYPE string,
    outputx TYPE XSTRING,
    lv_string TYPE string.
    * in xmlupl my xml import is stored
    CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
    EXPORTING
    text = xmlupl " variable type string
    IMPORTING
    buffer = outputx. " variable type xstring
    TRY .
         CALL TRANSFORMATION path_to_xslt_file
           SOURCE XML outputx
         RESULT HEADER = lv_string.
    CATCH cx_xslt_exception INTO xslt_error.
         data: xslt_message type string .
         xslt_message = xslt_error->get_text( ).
    ENDTRY.
    After debugging in xslt_message is stored the following text:
    "The element abap was expected for the XML-ABAP transformation"
    Can anyone help me with this problem?
    Regards,
    Daniel

    hi
    good
    try this code
    Just look at this piece of code, I think it should help you.
      DATA : ITAB   TYPE TABLE OF SPFLI,
             L_XML  TYPE REF TO CL_XML_DOCUMENT.
      SELECT * FROM SPFLI INTO TABLE ITAB.
    CREATE THE XML OBJECT
      CREATE OBJECT L_XML.
    CONVERT THE DATA TO XML
      CALL METHOD L_XML->CREATE_WITH_DATA( DATAOBJECT = ITAB[] ).
    DATA IS CONVERTED TO XML; DISPLAY THE XML-DOCUMENT
      CALL METHOD L_XML->DISPLAY.
    thanks
    mrutyun^

  • XSLT Transformation

    Hi,
    I am trying to upload one xml file and filling an internal table with the content and a XSLT transformation. After uploading the file and make the first transformation i obtein one string with all the fields without tags and separated by #. so when i try to call transformation for filling the internal table i obtein the exception cx_xslt_exception with the message 'No valid source context supplied'.
    I would like to know if i am having poroblems with unicode characters. Is there any example made in sap that i can test or does anybody have had any similar problem?.
    My string
    <?xml version="1.0" encoding="utf-16"?>#######S####L####08##2######
    Thanks in advance
    regards

    Hi Verma,
    You're not transforming anything from your input to the output shown. You're actually constructing a new Output. I don't see anything being transformed from input to output.
    Anyway, if you need a XSLT to be used to get the above Output in map, following XSLT shall help you:
    <?xml version="1.0" encoding="UTF-16"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:var="http://schemas.microsoft.com/BizTalk/2003/var" exclude-result-prefixes="msxsl var s0" version="1.0" xmlns:s0="http://xmlns.service/1" xmlns:ns1="http://xmlns.types/1.0" xmlns:ns0="http://xmlns.OutService/2">
    <xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
    <xsl:template match="/">
    <xsl:apply-templates select="/s0:Request" />
    </xsl:template>
    <xsl:template match="/s0:Request">
    <Output xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.OutService/2">
    <outContext xmlns:ns0="http://xmlns.OutService/2" xsi:type="ns0:ReferenceContext" xmlns="http://xmlns.types/1.0" />
    </Output>
    </xsl:template>
    </xsl:stylesheet>
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • XSLT Transformation error:  Non-canonical structure of element name

    Good day experts,
    I have recently started using xslt, and came upon the following demo in the sdn.
    http://wiki.sdn.sap.com/wiki/display/ABAP/XMLXSLTwith+ABAP
    I have retrieved the example xml files from airplus.com, as per the instructions, and implemented the code.
    When I test the xslt transformation in se80, it transforms correctly.
    However, when I run the program, I get the following error.
    CX_XSLT_FORMAT_ERROR
    Transformation error:  Non-canonical structure of element name XML_OUTPUT   
    Is there an error in the example that I am not aware of?
    Thanks in advance,
    Johan Kriek

    Found the solution.
    You rename the tag <XML_OUTPUT> to anything else like <TEST>. And Hurray!!! it works.
    It looks like SAP is using this name internally somewhere so we are getting error when we are using same name.
    Anyways the problem is solved.
    Regards,
    Jai

Maybe you are looking for

  • Memory Could Not Be Allocated For the Activation of PhotoShop

    CS2 Intel P4 3.0GhzHT, 3-4GB Ram WinXP Photoshop won't open for me. It used to. Any idea how I might fix this? When I try to open Photoshop, I get "Memory could not be allocated for the activation process. Please close all applications and try again.

  • 2 structures in a query

    Hi everbody, I've created a query that has structures both in rows and columns. The rows structure contains a few selections and a few simple formulas (division of two other elements). The columns structure has 2 selections and a formula representing

  • Information, bookmarks, links, etc. won't delete...

    Macbook not updating information in bookmarks, dock, and dashboard - if I delete old links, it comes back each time. Programs reappear in the Dock, notes reappear in the dashboard, and bookmarks come back in Safari. anyone have ideas?

  • Free at last from Word for the Mac 2011

         I used Word for 20 years but when I moved on to Lion, I found the 2011 version of Word for the Mac to be a muddled, useless ball of snakes. I switched to Apple's Pages and was pleased with its intuitive and productive arrangement. What a differe

  • Content Pane Problem

    Greetings! I'm facing two related problems in developing a Java Applet. My applet class extends JApplet. 1) The current default layout of the whole window (not individual components) seems to be a flowLayout. I'd like to set the layout to a gridBagLa