XML transformations in 4.6C

How can I perform XML transformations in 4.6C?
Is exist any analogue for CALL TRANSFORMATION command?

CALL TRANSFORMATION  was introduced from 4.7
and i am not sure whethere there is any other method in 4.6C for handling XML.
one of the options which i could think of is that 4.6c supports controls programming, so you could create /download a activex control which can do the xml transformation, which you can call from your ABAP.
Regards
Raja

Similar Messages

  • Data from two tables in the same row in XML transformation

    Hi,
        I am using XML transformation for generating excel file which is to besent as email attachment.
        Here  I want to display the data from two internal tables in the same row in the excel. .I am using   <tt:loop ref=".<table name>"> ...  </tt:loop> for looping through the table. Can I loop two table simultaneously ? In that case how will I specify the fields in each table . Some of the fields in two tables are of same name and type.
    Please help...
    Thanks,
    Jissa

    Hello Brian,
    Thank you for your answer. It is approach I will use, I think. However let me ask: Would it be possible to have a Version in this layout, too? I mean to see, which value comes from Version A and which comes from Version B? Something like this:
    Calendar Month Version Sales Amount
    2011.01  B  200
    2011.02  B  300
    2011.03  A  260
    2011.04  A  230
    2011.05  A  200
    A

  • XML Transformation Problem in JDeveloper 10.1.3

    I am trying to transform an XML using an XSL, by a Java program, which uses javax.xml.transform.Transformer.
    I have a Java project which has the above said program, where when i run the program, the xml transformation is done successfully.
    But I have a Web project created, where i have the java project's jar in the WEB-INF/lib. And, when i tried to access the same java program from inside the web project, I am getting the following error:
    XML-22000: (Fatal Error) Error while parsing XSL file (unknown protocol: c).
    Please help in resolving this error.

    This is from Metalink:
    Cause
    This is caused by a conflict between the Oracle XML parser installed by default in OC4J and the
    Xerces parser that the application was developed with. Under 10.1.3 OC4J it is possible to tell OC4J not to use the default XML parser for the application at deployment time.
    Solution
    1. Undeploy the existing application using AS Console.
    2. Start a new deployment of the application in AS Console. Click deploy
    3. On the Deploy: Select Archive screen, browse to your deployment war file. Click Next
    4. On the Deploy: Application Attributes give the application a name and click next
    5. On the Deploy: Deployment Settings screen, click the pencil "Go To Task" Icon for the Configure Class Loading option.
    6. Locate the shared library called "oracle.xml" (You may need to click "next 10" one or many times depending on the number of shared libraries you have) . For this row, UNCHECK the box for the column "IMPORT". Click OK
    7. Click deploy, then test you application.

  • What is default value of the javax.xml.transform.Transformer sys property?

    Hi all
    In my other thread "javax.xml.transform." last replied to on 17/04/05, I described that having & in my xml was causing TransformerExceptions when I attempted to apply a stylesheet to the xml.
    I've now deployed exactly the same xml, xsl and java on a completely different environment and have found that the error does NOT occur.
    This completely baffled me at first, but then I read the following in the API documentation for TransformerFactory: -
    "A TransformerFactory instance can be used to create Transformer and Templates objects.
    The system property that determines which Factory implementation to create is named "javax.xml.transform.TransformerFactory". This property names a concrete subclass of the TransformerFactory abstract class. If the property is not defined, a platform default is be used.
    I think that the key must lie in the system property "javax.xml.transform.TransformerFactory". The two environments must be using a different value for this - one representing a class that objects to & and one that doesn't. In neither case do I actually set this property, so my main question is what does it default to and how can I find out what each environment is using for this?
    I'm really baffled here guys, any help would be massively appreciated.
    Thank you
    Jon

    javax.xml.transform.TransformerFactory is a real class implemented by someone. It looks at the system property to figure out what actual implementation to use. It the property doesn't exist, it uses the class that came bundled with the javax.xml.transform.TransformerFactory class you are using.
    Here, for instance, is the javax.xml.transform.TransformerFactory that comes with jdk1.4.2
        public static TransformerFactory newInstance()
            throws TransformerFactoryConfigurationError
            try {
                return (TransformerFactory) FactoryFinder.find(
                    /* The default property name according to the JAXP spec */
                    "javax.xml.transform.TransformerFactory",
                    /* The fallback implementation class name */
                    "org.apache.xalan.processor.TransformerFactoryImpl");
            } catch (FactoryFinder.ConfigurationError e) {
                throw new TransformerFactoryConfigurationError(e.getException(),
                                                               e.getMessage());
        }

  • Fatal Error and NullPointerException in Oracle XML Transformer

    Hi,
    I'm building a dom tree in memory with oracle xml parser. Then I transform the dom document into a string to send xml to the client. But I get an fatal error on calling transform.
    I don't know what could be the problem, because apache and weblogic parser works, an when I create a dom document with org.w3c.dom elements and statements then the xml document can't be invalid,
    because the document implementation would throw an exception if wrong nodes or something like this should be inserted...
    I'm using oracle xml parser 9.2.0.4 for java, bea weblogic 7.0 and win2k.
    Thanks for help.
    XSL-1900: (Fatal Error) An internal error condition occurred.
    javax.xml.transform.TransformerException: XSL-1900: (Fatal Error) An internal error condition occurred.
    at oracle.xml.jaxp.JXTransformer.reportException(JXTransformer.java:681)
    at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:309)
    java.lang.NullPointerException
    at oracle.xml.parser.v2.XSLSAXPrintDriver.printAttributes(XSLSAXPrintDriver.java:394)
    at oracle.xml.parser.v2.XSLSAXPrintDriver.startElement(XSLSAXPrintDriver.java:322)
    at oracle.xml.parser.v2.XMLElement.reportSAXEvents(XMLElement.java:993)
    at oracle.xml.parser.v2.XMLNode.reportChildSAXEvents(XMLNode.java:1014)
    at oracle.xml.parser.v2.XMLDocument.reportSAXEvents(XMLDocument.java:942)
    at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:294)

    Hi,
    I'm having that problem to:
    I'm getting the following exception
    javax.xml.transform.TransformerException: XSL-1900: (Fatal Error) An internal error condition occurred.
         at oracle.xml.jaxp.JXTransformer.reportException(JXTransformer.java:723)
         at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:340)
         at com.ac.mqif.control.Handler.handleLong(Handler.java:835)
         at com.ac.mqif.control.Handler.run(Handler.java:951)
    Caused by: java.lang.NullPointerException
         at oracle.xml.parser.v2.XPathStep.getSelectedNodes(XPathStep.java:380)
         at oracle.xml.parser.v2.PathExpr.getValue(XSLNodeSetExpr.java:483)
         at oracle.xml.parser.v2.XSLExprBase.getStringValue(XSLExprBase.java:363)
         at oracle.xml.parser.v2.XSLValueOf.processAction(XSLValueOf.java:99)
         at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:367)
         at oracle.xml.parser.v2.XSLTemplate.processAction(XSLTemplate.java:199)
         at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplates.java:214)
         at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplates.java:207)
         at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplates.java:207)
         at oracle.xml.parser.v2.XSLApplyTemplates.processAction(XSLApplyTemplates.java:120)
         at oracle.xml.parser.v2.XSLNode.processChildren(XSLNode.java:367)
         at oracle.xml.parser.v2.XSLTemplate.processAction(XSLTemplate.java:199)
         at oracle.xml.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:471)
         at oracle.xml.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:448)
         at oracle.xml.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:246)
         at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:327)
         ... 2 more
    when using a stylesheet which has a template match condition of more than 1600 characters.
    The second thing is that the Oracle XML transformer is
    NOT threadsafe. I was using several threads using different templates to transform an incoming XML simultaneously but was ALWAYS getting internal XSL errors
    and Nullpointer Exceptions. I solved this by synchronizing the transformation, but I don't like it.
    I'm using the following versions on Windows XP:
    Oracle IDE: 9.0.3.10.35
    Business Components Version: 9.0.3.10.7
    SCM Support Version: 9.0.3.9.4
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
    Thanx,
    Ellcrys

  • Create XML transformation in SAP R/3 4.7

    Hi Experts,
    Kindly let me know the transaction for creating xml transformation in sap r/3 4.7, if there is any.
    Though i could not find anything through tstc or se93.
    Is there any other way of creating xml transformation in r/3 4.7. There is a tcode STRANS in ecc6.0 but not in 4.7.
    Also, please help me resolving this issue of converting abap data to xml file: -
    is the following xml structure possible with transformation or by any other method.
    <Process_Order>
         <item>
                   <PO Number> PO123334 </PO Number>
                   <Header_mat> Mat123 </Header_mat>
                   <BOM>
                          <PDLabels>
                                  <PDLabel>
                                         <PCode>P123456</PCode>
                                         <Batch>123ABC</Batch>
                                         <Quantity>6000</Quantity>
                                         <PDDCode>1234567890</PDDCode>
                                 </PDLabel>
                                 <PDLabel>
                                        <PCode>P234567</PCode>       
                                        <Batch>567DEF</Batch>
                                        <Quantity>6000</Quantity>
                                        <PDDCode></PDDCode>
                                 </PDLabel>
                        </PDLabels>
                       <PDCartons>
                                <PDCarton>
                                       <PCode>P556677</PCode>
                                       <Batch>589GFT</Batch>
                                       <Quantity>1200</Quantity>
                                       <PDDCode></PDDCode>
                                </PDCarton>
                      </PDCartons>
                 </BOM>
        </item>
         <item>
                   <PO Number> PO123334 </PO Number>
                   <Header_mat> Mat123 </Header_mat>
                   <BOM>
                          <PDLabels>
                                  <PDLabel>
                                         <PCode>P123456</PCode>
                                         <Batch>123ABC</Batch>
                                         <Quantity>6000</Quantity>
                                         <PDDCode>1234567890</PDDCode>
                                 </PDLabel>
                                 <PDLabel>
                                        <PCode>P234567</PCode>       
                                        <Batch>567DEF</Batch>
                                        <Quantity>6000</Quantity>
                                        <PDDCode></PDDCode>
                                 </PDLabel>
                        </PDLabels>
                       <PDCartons>
                                <PDCarton>
                                       <PCode>P556677</PCode>
                                       <Batch>589GFT</Batch>
                                       <Quantity>1200</Quantity>
                                       <PDDCode></PDDCode>
                                </PDCarton>
                      </PDCartons>
                 </BOM>
        </item>
    </Process_Order>
    What i mean to ask is, is the hierarchy to this structural level is attainable using either transfomation or any other alternative.
    Thanks a lot in advance !
    Shreya

    oops the message structure has gone bad ........
    What i meant was : --
    <Process_Order>
      <item>
                   <PO Number> PO123334 </PO Number>
                   <Header_mat> Mat123 </Header_mat>
                   <BOM>
                          <PDLabels>
                                  <PDLabel>
                                         <PCode>P123456</PCode>
                                         <Batch>123ABC</Batch>
                                         <Quantity>6000</Quantity>
                                         <PDDCode>1234567890</PDDCode>
                                 </PDLabel>
                                 <PDLabel>
                                        <PCode>P234567</PCode>       
                                        <Batch>567DEF</Batch>
                                        <Quantity>6000</Quantity>
                                        <PDDCode></PDDCode>
                                 </PDLabel>
                        </PDLabels>
                       <PDCartons>
                                <PDCarton>
                                       <PCode>P556677</PCode>
                                       <Batch>589GFT</Batch>
                                       <Quantity>1200</Quantity>
                                       <PDDCode></PDDCode>
                                </PDCarton>
                      </PDCartons>
                 </BOM>
        </item>
    </Process_Order>

  • XML : Transform DOM Tree to XML String in an applet since the JRE 1.4.2_05

    Hello,
    I build a DOM tree in my applet.
    Then I transform it to XML String.
    But since the JRE 1.4.2_05 it doesn't work.
    These lines failed because these variables became final:
    org.apache.xalan.serialize.CharInfo.XML_ENTITIES_RESOURCE = getClass().getResource("XMLEntities.res").toString();
    org.apache.xalan.processor.TransformerFactoryImpl.XSLT_PROPERTIES = getClass().getResource("XSLTInfo.properties").toString();The rest of the code :
    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = domFactory.newDocumentBuilder();
    Document domXML = builder.newDocument();
    // I build my DOM Tree
    StringWriter xmlResult = new StringWriter();
    Source source = new DOMSource(domXML);
    Result result = new StreamResult(xmlResult);
    Transformer xformer = TransformerFactory.newInstance().newTransformer();
    xformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,"yes");
    xformer.transform(source,result);Is there any other way to get an XML String from a DOM tree in an applet ?
    I'm so disappointed to note this big problem.

    Does anyone have an idea why I get this error message when try to use transform in an applet?
    Thanks...
    java.lang.ExceptionInInitializerError
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Unknown Source)
         at org.apache.xalan.serialize.SerializerFactory.getSerializer(Unknown Source)
         at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(Unknown Source)
         at org.apache.xalan.transformer.TransformerIdentityImpl.transform(Unknown Source)
         at matrix.CreateMtrx.SaveDoc(CreateMtrx.java:434)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at thinlet.Thinlet.invokeImpl(Unknown Source)
         at thinlet.Thinlet.invoke(Unknown Source)
         at thinlet.Thinlet.handleMouseEvent(Unknown Source)
         at thinlet.Thinlet.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    Caused by: java.lang.RuntimeException: The resource [ XMLEntities.res ] could not load: java.net.MalformedURLException: no protocol: XMLEntities.res
    XMLEntities.res      java.net.MalformedURLException: no protocol: XMLEntities.res
         at org.apache.xalan.serialize.CharInfo.<init>(Unknown Source)
         at org.apache.xalan.serialize.SerializerToXML.<clinit>(Unknown Source)
         ... 28 more

  • Javax.xml.transform.TransformerConfigurationException

    Hi,
    I am deploying a bpel process and a bpel test to a remote oc4j, then running the tests via an ant build script.
    The tests are run fine and the results are created in an xml file, however the bpeltest task then try's to convert the xml to a junit report xml format and throws an exception when it can't find bpeltest-junit.xsl.
    The exception is vague and I don't know if its because it can't find the xls file our one of its dependancies.
    exception,
    [bpeltest] ERROR: 'File "" not found.'
    [bpeltest] FATAL ERROR: 'Could not compile stylesheet'
    [bpeltest] javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
    [bpeltest] at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:824)
    [bpeltest] at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:619)
    [bpeltest] at com.collaxa.cube.ant.taskdefs.BpelTest.doXForm(BpelTest.java:615)
    [bpeltest] at com.collaxa.cube.ant.taskdefs.BpelTest.createJUnitReport(BpelTest.java:685)
    [bpeltest] at com.collaxa.cube.ant.taskdefs.BpelTest.createReport(BpelTest.java:877)
    [bpeltest] at com.collaxa.cube.ant.taskdefs.BpelTest.execute(BpelTest.java:1033)
    [bpeltest] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
    [bpeltest] at org.apache.tools.ant.Task.perform(Task.java:364)
    [bpeltest] at org.apache.tools.ant.Target.execute(Target.java:341)
    [bpeltest] at org.apache.tools.ant.Target.performTasks(Target.java:369)
    [bpeltest] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
    [bpeltest] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
    [bpeltest] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
    [bpeltest] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
    [bpeltest] at org.apache.tools.ant.Main.runBuild(Main.java:668)
    [bpeltest] at org.apache.tools.ant.Main.startAnt(Main.java:187)
    [bpeltest] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
    [bpeltest] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
    My ant script invokes the test as follows,
    <bpeltest
         user="oc4jadmin"
                        password="babylon5"
         hostname="wells175732.int.rdel.co.uk"
                        httpport="80"
         domain="default"
                        process="AmazonFlow"
         rev="${rev}"
                        name="AmazonFlowTests"
         timeout="${bpeltest.timeout}"
         numWorkers="${bpeltest.numWorkers}"
         minCoverage="${bpeltest.minCoverage}"
         callHandler="${bpeltest.callHandler}"
         context="${bpel.context.properties}"
         resultsDir="${basedir}/bpel_test_results"
         resultsPropertyFile="${basedir}/bpel_test_results/AmazonFlow.properties"
                        failonerror="false"
         verbose="false"/>
    the top of my build script imports the following dependancies,
    <property file="${basedir}/conf/ant-oracle.properties"/>
    <property name="bpel.home" value="${oracle.home}/bpel"/>
    <import file="${bpel.home}/utilities/ant-orabpel.xml"/>
    <import file="${basedir}/conf/ant-oracle.xml"/>
    <property file="${bpel.home}/utilities/ant-orabpel.properties"/>
    <property file="${bpel.home}/utilities/bpel_build_template.properties"/>
    ant-oracle.xml conatins all necessary jar files including the orabpel-ant.jar where the bpeltest-junit.xsl resides under com\collaxa\cube\ant
    In the bpelTest ant task their is an attribute callHandler="${bpeltest.callHandler}"
    this property value is defined in the bpel_build_template.properties file but is empty,
    bpeltest.callHandler =
    I tried changing this to
    bpeltest.callHandler = com.collaxa.cube.ant.taskdefs.BpelTest
    and build script threw the following exception,
    [bpeltest] java.lang.ClassCastException: com.collaxa.cube.ant.taskdefs.BpelTest
    [bpeltest] at com.collaxa.cube.ant.taskdefs.BpelTest.loadHandler(BpelTest.java:425)
    [bpeltest] at com.collaxa.cube.ant.taskdefs.BpelTest.runTestsOverRMI(BpelTest.java:544)
    [bpeltest] at com.collaxa.cube.ant.taskdefs.BpelTest.runTests(BpelTest.java:603)
    [bpeltest] at com.collaxa.cube.ant.taskdefs.BpelTest.execute(BpelTest.java:1024)
    [bpeltest] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
    [bpeltest] at org.apache.tools.ant.Task.perform(Task.java:364)
    [bpeltest] at org.apache.tools.ant.Target.execute(Target.java:341)
    [bpeltest] at org.apache.tools.ant.Target.performTasks(Target.java:369)
    [bpeltest] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
    [bpeltest] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
    [bpeltest] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
    [bpeltest] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
    [bpeltest] at org.apache.tools.ant.Main.runBuild(Main.java:668)
    [bpeltest] at org.apache.tools.ant.Main.startAnt(Main.java:187)
    [bpeltest] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
    [bpeltest] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
    the xsl file looks as follows,
    <?xml version="1.0" encoding="UTF-8" ?>
    <?oracle-xsl-mapper
    <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
    <mapSources>
    <source type="XSD">
    <schema location="UTResult.xsd"/>
    <rootElement name="testRunResults" namespace="http://xmlns.oracle.com/bpel/unittest"/>
    </source>
    </mapSources>
    <mapTargets>
    <target type="XSD">
    <schema location="JUnit.xsd"/>
    <rootElement name="testsuites" namespace=""/>
    </target>
    </mapTargets>
    <!-- GENERATED BY ORACLE XSL MAPPER 10.1.2.0.0(build 050412) AT [SUN APR 17 02:06:34 PDT 2005]. -->
    ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:ns0="http://xmlns.oracle.com/bpel/bpeltest"
    xmlns:utd="http://xmlns.oracle.com/bpel/instancedriver"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
    xmlns:java="http://xml.apache.org/xslt/java"
    exclude-result-prefixes="xsl ns0 utd xsd ldap xp20 bpws ora orcl">
    <xsl:param name="minCodeCoverage">0</xsl:param>
    <xsl:param name="minPartnerCodeCoverage">0</xsl:param>
    <xsl:param name="packageFormat"/>
    <xsl:template match="/">
    <testsuites>
    <xsl:for-each select="/ns0:testRunResults/ns0:testSuite">
    <testsuite>
    <xsl:attribute name="name">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getQualifiedSuite($packageFormat, ../@domain, ../@processName, ../@processRevision, @name)" />
    </xsl:attribute>
    <xsl:attribute name="failures">
    <xsl:value-of select="@numFailures"/>
    </xsl:attribute>
    <xsl:attribute name="time">
    <xsl:value-of select="@durationInSeconds"/>
    </xsl:attribute>
    <xsl:attribute name="tests">
    <xsl:value-of select="@numTests"/>
    </xsl:attribute>
    <xsl:attribute name="errors">
    <xsl:value-of select="0"/>
    </xsl:attribute>
    <properties>
    <xsl:for-each select="../ns0:properties/ns0:property">
    <property>
    <xsl:attribute name="name">
    <xsl:value-of select="@name"/>
    </xsl:attribute>
    <xsl:attribute name="value">
    <xsl:value-of select="@value"/>
    </xsl:attribute>
    </property>
    </xsl:for-each>
    <property>
    <xsl:attribute name="name">
    <xsl:value-of select="'run.start.date'"/>
    </xsl:attribute>
    <xsl:attribute name="value">
    <xsl:value-of select="../@startDate"/>
    </xsl:attribute>
    </property>
    <property>
    <xsl:attribute name="name">
    <xsl:value-of select="'run.end.date'"/>
    </xsl:attribute>
    <xsl:attribute name="value">
    <xsl:value-of select="../@endDate"/>
    </xsl:attribute>
    </property>
    <property>
    <xsl:attribute name="name">
    <xsl:value-of select="'suite.start.date'"/>
    </xsl:attribute>
    <xsl:attribute name="value">
    <xsl:value-of select="@startDate"/>
    </xsl:attribute>
    </property>
    <property>
    <xsl:attribute name="name">
    <xsl:value-of select="'suite.end.date'"/>
    </xsl:attribute>
    <xsl:attribute name="value">
    <xsl:value-of select="@endDate"/>
    </xsl:attribute>
    </property>
    </properties>
    <xsl:for-each select=".//ns0:testResult">
    <testcase>
    <xsl:attribute name="name">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.testToClass(@testName)"/>
    </xsl:attribute>
    <xsl:attribute name="time">
    <xsl:value-of select="@durationInSeconds"/>
    </xsl:attribute>
    <xsl:attribute name="classname">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.testToQualifiedClass($packageFormat, @domain, @processName, @processRevision, @testName)"/>
    </xsl:attribute>
    <xsl:for-each select=".//ns0:executionError">
    <failure>
    <xsl:attribute name="type">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getExecutionErrorTitle()"/>
    </xsl:attribute>
    <xsl:attribute name="message">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getExecutionErrorMessage(.)"/>
    </xsl:attribute>
    </failure>
    </xsl:for-each>
    <xsl:for-each select=".//ns0:xmlAssertion">
    <xsl:if test="(@passed = &quot;false&quot;) or (@wasExecuted = &quot;false&quot;)">
    <failure>
    <xsl:attribute name="type">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getFailureType(@wasExecuted, @fatal)"/>
    </xsl:attribute>
    <xsl:attribute name="message">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getXMLFailureMessage(local-name(..), ../@instanceRefID, ../@testName, @wasExecuted, @fatal, utd:message, @activityName, @variableName, @partName, utd:actualPath, @iteration)"/>
    </xsl:attribute>
    </failure>
    <xsl:for-each select="ns0:xmlDiff">
    <failure>
    <xsl:attribute name="type">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getXMLDiffType()"/>
    </xsl:attribute>
    <xsl:attribute name="message">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getXMLDiffMessage(.)"/>
    </xsl:attribute>
    </failure>
    </xsl:for-each>
    </xsl:if>
    </xsl:for-each>
    <xsl:for-each select=".//ns0:valueAssertion">
    <xsl:if test="(@passed = &quot;false&quot;) or (@wasExecuted = &quot;false&quot;)">
    <failure>
    <xsl:attribute name="type">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getFailureType(@wasExecuted, @fatal)"/>
    </xsl:attribute>
    <xsl:attribute name="message">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getFailureMessage(local-name(..), ../@instanceRefID, ../@testName, @wasExecuted, @fatal, utd:message, @activityName, @variableName, @partName, utd:actualPath, utd:expected,ns0:actualValue, @iteration)"/>
    </xsl:attribute>
    </failure>
    </xsl:if>
    </xsl:for-each>
    <xsl:for-each select=".//ns0:activityAssertion">
    <xsl:choose>
    <xsl:when test="@passed = &quot;false&quot;">
    <failure>
    <xsl:attribute name="type">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getActivityAssertionTitle()"/>
    </xsl:attribute>
    <xsl:attribute name="message">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getActivityAssertionMessage(local-name(..), ../@instanceRefID, ../@testName, @activityName, ns0:expectedExecutionCount, ns0:actualExecutionCount)"/>
    </xsl:attribute>
    </failure>
    </xsl:when>
    </xsl:choose>
    </xsl:for-each>
    </testcase>
    </xsl:for-each>
    </testsuite>
    </xsl:for-each>
    <!-- *************************
    begin code coverage logic
    ************************* -->
    <xsl:if test="$minCodeCoverage &gt; 0">
    <testsuite>
    <xsl:attribute name="name">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getCoverageSuiteName($packageFormat, ns0:testRunResults/@domain, ns0:testRunResults/@processName, ns0:testRunResults/@processRevision)" />
    </xsl:attribute>
    <xsl:attribute name="failures">
    <!-- count( (if the main process coverage is too low) + (number of sub process's with insufficient coverage) ) -->
    <xsl:value-of select="count(/ns0:testRunResults/ns0:codeCoverage[@processName = /ns0:testRunResults/@processName and @processRevision = /ns0:testRunResults/@processRevision and $minCodeCoverage &gt; @coverage] | /ns0:testRunResults/ns0:codeCoverage[(@processName != /ns0:testRunResults/@processName or @processRevision != /ns0:testRunResults/@processRevision) and $minPartnerCodeCoverage &gt; @coverage])"/>
    </xsl:attribute>
    <xsl:attribute name="time">
    <xsl:value-of select="'0'"/>
    </xsl:attribute>
    <xsl:attribute name="tests">
    <xsl:choose>
    <xsl:when test="$minPartnerCodeCoverage = 0">
    <xsl:value-of select="1"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select="count(/ns0:testRunResults/ns0:codeCoverage)"/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:attribute>
    <xsl:attribute name="errors">
    <xsl:value-of select="'0'"/>
    </xsl:attribute>
    <properties>
    <xsl:for-each select="/ns0:testRunResults/ns0:properties/ns0:property">
    <property>
    <xsl:attribute name="name">
    <xsl:value-of select="@name"/>
    </xsl:attribute>
    <xsl:attribute name="value">
    <xsl:value-of select="@value"/>
    </xsl:attribute>
    </property>
    </xsl:for-each>
    <property>
    <xsl:attribute name="name">
    <xsl:value-of select="'required.coverage'"/>
    </xsl:attribute>
    <xsl:attribute name="value">
    <xsl:value-of select="$minCodeCoverage"/>
    </xsl:attribute>
    </property>
    <xsl:if test="$minPartnerCodeCoverage &gt; 0">
    <property>
    <xsl:attribute name="name">
    <xsl:value-of select="'required.subprocess.coverage'"/>
    </xsl:attribute>
    <xsl:attribute name="value">
    <xsl:value-of select="$minPartnerCodeCoverage"/>
    </xsl:attribute>
    </property>
    </xsl:if>
    </properties>
    <xsl:for-each select="/ns0:testRunResults/ns0:codeCoverage">
    <xsl:choose>
    <xsl:when test="@processName = /ns0:testRunResults/@processName and @processRevision = /ns0:testRunResults/@processRevision">
    <testcase>
    <xsl:attribute name="name">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getCoverageTestName($packageFormat, @domain, @processName, @processRevision)"/>
    </xsl:attribute>
    <xsl:attribute name="time">
    <xsl:value-of select="'0'"/>
    </xsl:attribute>
    <xsl:attribute name="classname">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.coverageTestToQualifiedClass($packageFormat, @domain, @processName, @processRevision)"/>
    </xsl:attribute>
    <xsl:if test="@coverage &lt; $minCodeCoverage">
    <failure>
    <xsl:attribute name="type">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getCoverageTitle()"/>
    </xsl:attribute>
    <xsl:attribute name="message">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getCoverageMessage($minCodeCoverage, @coverage)"/>
    </xsl:attribute>
    </failure>
    </xsl:if>
    </testcase>
    </xsl:when>
    <xsl:when test="$minPartnerCodeCoverage &gt; 0">
    <testcase>
    <xsl:attribute name="name">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getCoverageTestName($packageFormat, @domain, @processName, @processRevision)"/>
    </xsl:attribute>
    <xsl:attribute name="time">
    <xsl:value-of select="'0'"/>
    </xsl:attribute>
    <xsl:attribute name="classname">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.coverageTestToQualifiedClass($packageFormat, @domain, @processName, @processRevision)"/>
    </xsl:attribute>
    <xsl:if test="@coverage &lt; $minPartnerCodeCoverage">
    <failure>
    <xsl:attribute name="type">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getCoverageTitle()"/>
    </xsl:attribute>
    <xsl:attribute name="message">
    <xsl:value-of select="java:com.collaxa.cube.ant.taskdefs.BpelTest.getCoverageMessage($minPartnerCodeCoverage, @coverage)"/>
    </xsl:attribute>
    </failure>
    </xsl:if>
    </testcase>
    </xsl:when>
    </xsl:choose>
    </xsl:for-each>
    </testsuite>
    </xsl:if>
    </testsuites>
    </xsl:template>
    </xsl:stylesheet>
    the classloader seems to want to make callbacks to the BpelTest methods in order to generate the xml file for junit.
    any help on this would be greatly appreciated,

    I'm having almost the same issue so I was hoping the xalan jars solution would resolve it, but even with the jars copied to the directory and renamed as instructed, the error still occurs when the ant bpeltest task tries to transform the test results into junit format. The error message I'm getting is slightly different but issue seems to be the same. The error message I'm getting is:
    [bpeltest] ERROR: 'null'
    [bpeltest] FATAL ERROR: 'Could not compile stylesheet'
    [bpeltest] javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
    [bpeltest] at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:824)
    ...etc...
    BUILD FAILED
    C:\projects\jdev_user_home_10g\mywork\BPELTests\BPELTest1\build.xml:179: An error occurred while translating the test results to JUnit results.
    Could not compile stylesheet
    Please verify the XSL:
    bpeltest-junit.xsl
    The original XML results have been saved in... ...etc...
    Using filemon, I can see where the ant javaw.exe process is reading bpeltest-format.xsl but bpeltest-junit.xsl is never read from the file system (although it could be getting loaded via classloader from orabpel-ant.jar as previously mentioned.) Either way, it doesn't seem like bpeltest-junit.xsl is actually missing.
    The error message does not indicate what was null and the references passed to the TransformerFactory are controlled by the bpeltest ant task code so I don't know what's missing.
    Anyone have a clue what might be 'null'? Anyone know how to get it fixed? Anyone have a suggestion for a way to a dig up more context and figure out what's missing?
    -R

  • File size problem when performing XML Transformation into Excel

    Hi All,
    We are performing XML Transformation in ABAP which can open in Excel and saving to common share. But the file size of excel is around 50MB. After opening the excel and save with diffrent name the file is getting compressed and its below 1MB. So what kind of settings does we need to make to the transformation code which will create the excel files with less memory/size??
    <?sap.transform simple?>
    <tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
    <tt:root name="AAAAAAA"/>
    <tt:root name="BBBBBBBB"/>
    <tt:root name="CCCCCCCC"/>
    <tt:template>
    <?mso-application progid="Excel.Sheet"?>
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
    xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
    xmlns:html="http://www.w3.org/TR/REC-html40">
       <ProtectObjects>True</ProtectObjects>
       <ProtectScenarios>True</ProtectScenarios>
      </WorksheetOptions>
    </Worksheet>
    </Workbook>
    </tt:template>
    </tt:transform>
    <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
    </DocumentProperties>
    <CustomDocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
      <ContentTypeId dt:dt="string">0x01010049B4763FE606154C9C9BC639FE7EE179</ContentTypeId>
    </CustomDocumentProperties>
    <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
      <Colors>
       <Color>
        <Index>0</Index>
        <RGB>#FF0000</RGB>
       </Color>
       <Color>
        <Index>1</Index>
        <RGB>#FFE4B5</RGB>
       </Color>
       <Color>
        <Index>2</Index>
        <RGB>#FFF8DC</RGB>
       </Color>
       <Color>
        <Index>3</Index>
        <RGB>#000000</RGB>
       </Color>
      </Colors>
    </OfficeDocumentSettings>
    <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
      <WindowHeight>7305</WindowHeight>
      <WindowWidth>11340</WindowWidth>
      <WindowTopX>0</WindowTopX>
      <WindowTopY>0</WindowTopY>
      <TabRatio>334</TabRatio>
      <ProtectStructure>True</ProtectStructure>
      <ProtectWindows>False</ProtectWindows>
    </ExcelWorkbook>
    </DocumentProperties>
    <CustomDocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
      <ContentTypeId dt:dt="string">0x01010049B4763FE606154C9C9BC639FE7EE179</ContentTypeId>
    </CustomDocumentProperties>
    <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">

    Hi Raghu,
    have a look at the XLSX file generated by Excel, you'll see that it's simply a zipped file. So you can't do it with a transformation, but you need CL_ABAP_ZIP class. I advise you to look at the abap2xslx project ABAP code (currently 3.0) to see how it works.
    Best regards,
    Sandra

  • XSL problem with javax.xml.transform.sax.SAXTransformerFactory

    Dear sirs,
    I use SAXTransformerFactory in order to transform a Hashtable to SAX Event and apply a XSL.
    I try this code with the lastest version of apache parser.
    It run well.
    But, I put this software to WEBLOGIC 6.2 server and no run.
    this check is true:
              if (transFact.getFeature(javax.xml.transform.sax.SAXTransformerFactory.FEATURE)&&transFact.getFeature(javax.xml.transform.sax.SAXSource.FEATURE))
    Some one can help me.
    Thank in avance
    The code:
    java.io.ByteArrayOutputStream bout = new java.io.ByteArrayOutputStream();
              com.cajarural.xml.HashtableParser parser = new com.cajarural.xml.HashtableParser(hashtable);
              // Codigo para el TansformerHandler
              // set the destination for the XSLT transformation
                   javax.xml.transform.TransformerFactory transFact = javax.xml.transform.TransformerFactory.newInstance();
                   if (transFact.getFeature(javax.xml.transform.sax.SAXTransformerFactory.FEATURE)&&transFact.getFeature(javax.xml.transform.sax.SAXSource.FEATURE))
    javax.xml.transform.sax.SAXTransformerFactory saxTransFact = (javax.xml.transform.sax.SAXTransformerFactory) transFact;
    javax.xml.transform.sax.TransformerHandler transHand = saxTransFact.newTransformerHandler(templates);
    transHand.setResult(new javax.xml.transform.stream.StreamResult(bout));
    parser.setContentHandler(transHand);
    // attach the XSLT processor to the           parser.parse();
              return new String(bout.toByteArray());

    put Xalan in your war file then try using this kind of commands:     System.setProperty("org.xml.sax.parser", "org.apache.xerces.parsers.SAXParser");
    System.setProperty("javax.xml.parsers.SAXParserFactory", "org.apache.xerces.jaxp.SAXParserFactoryImpl");
    System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
    System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");This tells JAXP what implementations it should use without even asking your administrator to modify the WebLogic setup...
    It's what I've done with the WLS7.0 server I am using ;-)

  • Styling XML with XSLT Problem with javax.xml.transform???

    I have been trying to make a transformation and seem to be having a problem in that javax.xml.transform can not be found while using jdk1.3....If I use jdk1.4, there is no problem....
    Does anyone know how I can get things to work using jdk1.3???
    (Description of what I am doing...1) Building XML Source 2) Setting up the XSLT File 3) Building Source Object 4) Build Result Object 5) Transforming the Data.....MY RESULT SHOULD BE AN HTML PAGE)
    I have tried putting xerces.jar and xalan.jar in my CLASSPATH....but this still doesn't work....onyl thing that has worked is using jdk1.4 as my JAVA_HOME....
    PLEASE HELP!!!!

    PLEASE HELP....your advice here would be greatly appreciated.....

  • Javax.xml.transform.TransformerException durin XSL Transformation in Java

    Hi,
    Below is my piece of code where i access a web service that returns a xml as a string. I apply a xsl tranformation on it and try to store the result as a string. I get this error message
    javax.xml.transform.TransformerException: Result object passed to ''{0}'' is invalid.
         at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler(Unknown Source)
         at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
         at NewService.main(NewService.java:52)My Code:
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.StringReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.rmi.RemoteException;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ServiceException;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    public class NewService {
          * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              String endPoint = "http://localhost:8080/SampleDynamicWebProj/services/SampleClient";
              Service service = new Service();
              Call callOne;
              try {
                   callOne = (Call) service.createCall();
                   callOne.setTargetEndpointAddress(new URL(endPoint));
                   callOne.setOperationName(new QName("http://DefaultNamespace",
                             "getXMLString"));
                   String concated = (String) callOne.invoke(new Object[] { "s" });
                   InputStream xsltFile = new FileInputStream("xslpackage/empTran.xsl");
                   Source xmlSource = new StreamSource(new StringReader(concated));
                 Source xsltSource = new StreamSource(xsltFile);
                 TransformerFactory transFact =
                    TransformerFactory.newInstance();
                 Transformer trans = transFact.newTransformer(xsltSource);
                 Result result = new StreamResult();
                 trans.transform(xmlSource, result);
                 System.out.println(result.toString());
              } catch (ServiceException e) {
                   e.printStackTrace();
              } catch (MalformedURLException e) {
                   e.printStackTrace();
              } catch (RemoteException e) {
                   e.printStackTrace();
              } catch (FileNotFoundException e) {
                   e.printStackTrace();
              } catch (TransformerConfigurationException e) {
                   e.printStackTrace();
              } catch (TransformerException e) {
                   e.printStackTrace();
    }I get the transformed XML into a Result object, but when i do a toString() oon it, i get the above exception.
    any help wil be appreciated,
    Dilip

    Oh well, yes it was a typo in address tag...ok agreed that its a bad example, check this out then,
    i have a XML data that i convert to a html format using xsl transformation, now this converted html has to be shown in a html page(i use the out.write option).
    so my initial xml looks like this ::
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <Results>
        <ColumnCount>6</ColumnCount>
        <Columns>
            <column>UID</column>
            <column>UserName</column>
            <column>Password</column>
            <column>LastName</column>
            <column>FirstName</column>
            <column>EmailAddress</column>
        </Columns>
        <Rows>
            <Row>
                <value>1</value>
                <value>userone</value>
                <value>password-1</value>
                <value>Anant</value>
                <value>Dilip</value>
                <value>[email protected]</value>
            </Row>
            <Row>
                <value>2</value>
                <value>usertwo</value>
                <value>password-2</value>
                <value>Palli</value>
                <value>Gilli</value>
                <value>[email protected]</value>
            </Row>
        </Rows>I apply XSL transformation on this to get a HTML which i will be writing into my output screen hoping that the user will see it in a tabular format!
    <[!CDATA["
    <?xml version="1.0" encoding="UTF-8"?>
    <table border="1">
    <tr bgcolor="#9acd32">
    <th align="left">UID</th>
    <th align="left">UserName</th>
    <th align="left">Password</th>
    <th align="left">LastName</th>
    <th align="left">FirstName</th>
    <th align="left">EmailAddress</th>
    </tr>
    <tr>
    <td>1</td>
    <td>userone</td>
    <td>password-1</td>
    <td>Anant</td>
    <td>Dilip</td>
    <td>[email protected]</td>
    </tr>
    <tr>
    <td>2</td>
    <td>usertwo</td>
    <td>password-2</td>
    <td>Palli</td>
    <td>Gilli</td>
    <td>[email protected]</td>
    </tr>
    </table>
    "]]>The entire data is passed to a XML parser . I want the transformed xml data (which will be inside a <status></status> tag to be untouched by this parser. As you see i have put the transformed xml in a CDATA tag, but this aint helping me...
    need urgent help,
    Dilip

  • XML Transformation using XSLT

    Hi,
    I have a scenario where I need to perform an XML to XML transformation and I need to do this using XSLT mapping.
    I am using XMLSpy.
    Could somebody help me on this issue?Any weblogs that can help me on this?
    regards,
    Prashanth

    Hi Prashanth,
    You can do the xsl transformation in XMLSpy itself.First create your source xml file in XMLSpy by selecting file type as xml.After that create your xslt program file by selecting file type as xslt.
    Then you can use the xslt program for transformation of source xml into target xml by choosing menu XSL/XQuery->XSL Transformation.
    sample xsl code for an example:
    source xml structure:
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
         <header>
              <detail>
    Detail1
    </detail>
              <detail>
    Detail2
    </detail>
         </header>
         <header>
              <detail>
    Detail3
    </detail>
         </header>
    </root>
    xsl program:
    <xsl:stylesheet version = '1.0'
         xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
    <xsl:template match="/">
         <root>
         <xsl:for-each select="//header">
               <idoc>
                <xsl:for-each select="detail">
                    <detail>
                          <xsl:value-of select="."/>
                       </detail>
                       </xsl:for-each>
                   </idoc>
              </xsl:for-each>
         </root>
    </xsl:template>
    </xsl:stylesheet>
    target xml structure:
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
         <idoc>
              <detail>
    Detail1
    </detail>
              <detail>
    Detail2
    </detail>
         </idoc>
         <idoc>
              <detail>
    Detail3
    </detail>
         </idoc>
    </root>
    Hope this would help.
    Rgds
    Sudhakar.

  • XML transformation using XSLT and Resin 2.1.11

    I have the following problem:
    I'm using a servlet to transform the xml files in my web-app to html. The servlet caches the ones transformed results. For each request it checks if there exists a cached result and if the result is based on the most actual xml file version (checking the "lastModified" method of java.io.File that represents the requested file).
    This servlet works fine and without any errors.
    My web-app also has some other servlets that use the xml transformation to generate a fragment of html code (the menu structure of my "normal" servlets is defined in one xml file for all other files and servlets).
    After invoking these servlets (those that use the xml transformation to create their menu) the first described servlet (transformation of requested xml files) is not working "fine" any longer. All it results is the generated header and footer of the page (hard-coded in the XSL file). The complete content is lost.
    Any ideas how to solve this problem?
    Thanks in advance,
    Thof

    1. The cache:
    The Hashtable is a field of my servlet called XMLTransformerServlet. The cache is not removed or deleted and none of its items is removed or deleted.
    As I said: Caching works fine, wonderful, perfectly...
    That's definitively not the problem.
    2. Thread safety:
    I've made all my servlet methods thread safe (just checked this...)
    3. About the "anonymous" other servlet type that uses xml transformations:
    Some of my servlets use a (thread safe) method to generate a fragment of html code that will show a simple menu structure. Therefore my web-app uses a file called menu.xml - by that way there's only one menu to maintain what makes sure that all my pages get the same menu structure (finally also the xsl file I'm using for "normal" xml transformation imports/includes and interprets this menu.xml).
    The (thread safe) method has transforms the menu.xml file using a special xsl file (menu.xsl) and outputs the result to a StringWriter. From this StringWriter I obtain the code-fragment that will be returned by the method.
    Before I saw the class StringWriter the first time I've used a temporary file to output the transformation result. Next I red in the file and returned its content.
    Finally - this method is working fine and it's always returning the expected data.
    4. The problem:
    Sorry for repeating this all the time...
    What I'm processing:
    &#160;- requesting some xml files -> XMLTransformerServlet is invoked and works fine:
    &#160;&#160;&#160;-> doGet checks the resource (if resource doesn't exist HTTP404 will be responded)
    &#160;&#160;&#160;-> doGet checks the caching state for this resource
    &#160;&#160;&#160;&#160;&#160;&#160;a) resource is in cache and no newer version of the File exists -> return cached element
    &#160;&#160;&#160;&#160;&#160;&#160;b) resource is in cache but a newer version exists in the file system -> recache and return newly cached element
    &#160;&#160;&#160;&#160;&#160;&#160;c) resource is not in cache -> cache the resource and return the newly cached element
    &#160;- requesting one of the other servlets (those that use xml transformation for menu generation)
    &#160;&#160;&#160;-> servlets invoked work fine
    &#160;- requesting a xml file:
    &#160;&#160;&#160;a) current version in cache -> return cached element
    &#160;&#160;&#160;b) no current version in cache -> transform the xml file and cache it
    This last transformation of the requested xml file fails.
    It is not failing in the sense of "throwing an exception"... it seems to work 100% fine and results a String that could be responded to the browser.
    But stupidly it is not working fine...
    Maybe (as you wrote) this is a bug (maybe in Resins xml transformation api).
    Just thought someone else might have made a similar experience...

  • Error: while trying to invoke the method javax.xml.transform.Transformer.

    Hi All,
    I am working on Version 12.1.8 Build(20),  I have referred  SAP notes 1294013 and placed the following files
    - serializer.jar
    - xalan.jar
    - xercesImpl.jar
    - xml-apis.jar
    - xsltc.jar
    in the specified path.
    now when i use XSLT transformation block using IllumRowsetTableWithPageBreaks.xsl i am getting an error
    [ERROR] [XSL_Transformation_0]XSLTransform error: while trying to invoke the method javax.xml.transform.Transformer.transform(javax.xml.transform.Source, javax.xml.transform.Result) of an object loaded from local variable 'processor'
    please guide me.

    Hi Alex,
    No, the case you have explained is not applicable to me. Sharing the code snippet for your reference. This is the code due to which my XSLT gives an error, if I remove these lines of code then the XSLT works fine.
    <xsl:variable name="ENERGY" select="translate(ENERGY,',','')">
         <xsl:choose>
              <xsl:when test="ENERGY= ''">
                   <xsl:value-of select="0.00"/>
              </xsl:when>
              <xsl:otherwise>
                   <xsl:value-of select="ENERGY"/>
              </xsl:otherwise>
         </xsl:choose>
    </xsl:variable>
    Also, the same XSLT works absolutely fine in 12.1 but gives error in 14.0 SP05.
    Warm Regards,
    Anuj

  • Xalan.jar ----- javax.xml.transform.TransformerException

    Hi,
    I am using Pramati 4.1 Server.
    My application is working fine for a single or few more users. But In Performance Testing when more than 100 users hit the same link at a time, it throws lots of Transformer Exception such as �
    Exception in quicklinks.jsp: javax.xml.transform.TransformerException: java.net.SocketException: Connection reset
    javax.xml.transform.TransformerException: java.lang.ArrayIndexOutOfBoundsException: 8195
         at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:725)
         at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:425)
         at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:216)
         at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2339)
         at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2160)
         at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1213)
         at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:668)
         at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1129)
         at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1107)
         at com.niit.cliks.control.web.tagext.viewmenu.doStartTag(Unknown Source)
         at com.pramati.jsp.generated.jsp_p2f_common_p2f_menu._pramati_tag_var_cliks_viewmenu12_method(jsp_p2f_common_p2f_menu.java:315)
         at com.pramati.jsp.generated.jsp_p2f_common_p2f_menu._jspService_delegate(jsp_p2f_common_p2f_menu.java:599)
         at com.pramati.jsp.generated.jsp_p2f_common_p2f_menu._jspService(jsp_p2f_common_p2f_menu.java:623)
         at com.pramati.jsp.runtime.HttpJspSuper.service(HttpJspSuper.java:64) ....
    .....................Can anybody please help me out to resolve this problem?
    Thank you.

    I've found that using the document() function in XSL is the trigger for this bug.
    The Xalan JAXP implementation caches any document() calls. A workaround apparerently is to put in the processing instruction <?xalan-doc-cache-off?>.

Maybe you are looking for