Transforming XML/XSL data to PDF

What is a process to convert a XML document to a PDF? Where could I find some Java classes that aid in this process?

There's XSL Formatter from www.antennahouse.com, and there's FOP from xml.apache.org/fop, and probably others that could be found by a simple Google search.

Similar Messages

  • Problem transforming XML/XSL Using Xalan

    Hi, I am using the xalan apis to transform XML/XSL in a servlet..My servlet code is like...
    response.setContentType("text/html; charset=UTF-8");
    // Output goes in the response stream.
    PrintWriter out = response.getWriter();
    boolean environmentOK = (new org.apache.xalan.xslt.EnvironmentCheck()).checkEnvironment (out);
    try
    TransformerFactory tFactory = TransformerFactory.newInstance();
    // Get the XML input document and the stylesheet.
    Source xmlSource = new StreamSource("D:\\DATA\\jrun\\test\\test.xml");
    Source xslSource = new StreamSource("D:\\DATA\\jrun\\test\\test.xsl");
    // Generate the transformer.
    Transformer transformer = tFactory.newTransformer(xslSource);
    // Perform the transformation, sending the output to the response.
    transformer.transform(xmlSource, new StreamResult(out));
    I am getting the error ..
    javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXException: Namespace not supported by SAXParserjavax.xml.transform.TransformerConfigurationException
    That's why I have added the line..
    boolean environmentOK = (new org.apache.xalan.xslt.EnvironmentCheck()).checkEnvironment (out);
    But that gives me the following error diagnostic information...
    ERROR.version.DOM=ERROR attempting to load DOM level 2 class: java.lang.NoSuchMethodException
    I have put all the 3 required classes, xml-apis.jar, xercesImpl.jar and xalan.jar in my application servers classpath..
    Please let me know what I am doing wrong..and how this can be fixed.
    Thanks
    Surajit

    hey Surajit
    Your code is unable to create a transformer from a factory instance.
    I would check why it is not creating the Transformer.On my win32 system i usee two forward slashes..to identify the file path
    D://xyz//abc....instead of D:\\...i wonder if thats one reason why your code is not able to create a transformer based on the StreamSource u create for the file paths.
    Code i use..that works
    javax.xml.transform.TransformerFactory tFactory =
                                                                javax.xml.transform.TransformerFactory.newInstance();
                                                      javax.xml.transform.Source xmlSource = new javax.xml.transform.stream.StreamSource                              (xmlInputSource);
                                                 javax.xml.transform.Source xslSource = new javax.xml.transform.stream.StreamSource
                                       (xslInputSource);
                                                                                                        // Generate the transformer.
                                                                javax.xml.transform.Transformer transformer = tFactory.newTransformer(xslSource);
                                                                                                   // Perform the transformation, sending the output to the response.
                                                                transformer.transform(xmlSource,new javax.xml.transform.stream.StreamResult(out));
                                                                                                        I used jaxp-1.2 with tomcat 4.1.12
    Hope that helps.

  • Transformer(XML, Xsl)

    Hello
    There is my class. When I run it I get error: stylesheet requires attribute version ; missimg or incorect XSLT Namespaces
    What to do?
    I have in database XML and Xsl file and i nead this function to join them.
    import java.io.*;
    import java.lang.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
    import javax.xml.parsers.DocumentBuilder;
    public class Parser{
         public static void main(String[] args)     {
                   Parser f = new Parser();
                   f.join();
         public void join(){
              try{
                   File stylesheet = new File("d:/jelenak/install/vezba/cdcatalog.xsl");
                   File xmlfile = new File("d:/jelenak/install/vezba/cdcatalog.xml");
                   File outputFile=new File("d:/jelenak/install/vezba/cdcatalog.xml");
                   TransformerFactory tFactory =TransformerFactory.newInstance();
                   StreamSource stylesource = new StreamSource(stylesheet);
                   StreamSource source = new StreamSource(xmlfile);
                   StreamResult result = new StreamResult(outputFile);
                   Transformer transformer = tFactory.newTransformer(stylesource);
                   transformer.transform(source, result);
              }catch (Exception e) {
                   e.printStackTrace(System.err);
    Thanks a lot

    aaaaaah! in a servlet, ok.
    you can build a StreamResult on the Servlet response output stream.
    personally, to provide the browser with the correct size of data to receive in the HTTP header, i output the XSLT result in a ByteArrayOutputStream (baos) then i use this kind of code in my servlet:
    response.setContentType("text/xml");
    response.setContentLength(baos.size());
    baos.writeTo(response.getOutputStream());

  • XML  has data but PDF is not  displaying data

    Hi Gurus,
    I have one report  with excel and pdf out put .
    excel is working fine but pdf is not displaying data showing blank page  . both out puts are using same XML.
    Intresting thing is if I open  RTF  from  bi publisher desktop and load XML data then i can see  all the records.
    but  The same  RTF is not showing data from Report.
    I don't know what is the wrong with RTF. 
    I am attaching RTF and XML.  could you please go through it and help me ?
    Thanks for your help.

    Hi Bogdan,
    i  have 2 outputs for this report  excel and PDF.
    after scheduling report  excel is working fine but PDF out put is failure. i am getting following message.
    Job Name : Payment Request
    Job Executed Date : March 19, 2015 9:15:11 AM CDT
    Status : Job was failed.
    View History :
    Detail Message:
    ::RIPPLE_OUTPUT_FAILED::[INSTANCE_ID=vausobias201.austin.ppdi.com.1394740179760] [OUTPUT_ID=1006] ::DOCUMENT_GENERATION_FAILED::[INSTANCE_ID=vausobias201.austin.ppdi.com.1394740179760] [OUTPUT_ID=1006][ReportProcessor]Error rendering documentoracle.xdo.servlet.scheduler.ProcessingException: [ReportProcessor]Error rendering document
            at oracle.xdo.enterpriseScheduler.bursting.BurstingReportProcessor.renderReport(BurstingReportProcessor.java:447)
            at oracle.xdo.enterpriseScheduler.bursting.BurstingReportProcessor.onMessage(BurstingReportProcessor.java:127)
            at oracle.xdo.enterpriseScheduler.u

  • Portlets w/ XML/XSL data

    This is going to sound strange. My group has a WebLogic "app" that pulls status
    of various systems we support. This app uses XML data and XSL stylesheets to
    display the data. The cute part is that other than the first HTML file that gets
    loaded, we don't actually load HTML files at all. It's all done as re-freshes
    of new XML data with new XSL stylesheets.
    Our hope is to move this into a Portal arena where we can attach security roles
    as well as presenting default information to different people depending on their
    roles. I tinkered with the WLP 7.0 and had a sample portal with tabs at the top.
    Very cool, but when you navigated back and forth, we lost our content that was
    previosly displayed. What we are hoping is that WLP 8.1 has a mechanism that
    we can retain some kind of "state" of a page that it can be refreshed back to
    where it was left once we go back to that section.
    Anyways, this may not be possible because of the way we chose to design our app.
    But if there is a way, I'd like to know what it is. I am currently trying to
    tinker up an example Portal site for myself to see what I can do about it. Any
    help that can be offered would be greatly appreciated.

    There's XSL Formatter from www.antennahouse.com, and there's FOP from xml.apache.org/fop, and probably others that could be found by a simple Google search.

  • Converting xml/xsl to pdf

    Hi,
    I am using apache's FOP 0.20.3, xerces 2.0.0.beta4 and xalan j.2.2.0 to convert xml/xsl file to pdf. The code is same as the one given in the org.apache.fop.apps.Driver class.
    <pre>
         Driver driver = new Driver();
         driver.setRenderer(Driver.RENDER_PDF);
         InputHandler inputHandler = new XSLTInputHandler(new File(xmlFile), new File(xslFile));
         try
              XMLReader parser = inputHandler.getParser();
              driver.setOutputStream(new FileOutputStream(outFile));
              driver.render(parser, inputHandler.getInputSource());
         catch (FOPException fope)
              fope.printStackTrace();
         catch (FileNotFoundException fnfe)
              fnfe.printStackTrace();
    </pre>
    The xml and xsl files I am using are glossary.xml and glossary.xsl files that come with FOP.
    Now, this code compiles successfully and while running gives the following exception:
    <pre>
    [ERROR]: Logger not set
    [INFO]: building formatting object tree
    [INFO]: [1]
    org.apache.fop.apps.FOPException: java.lang.NullPointerException
         at org.apache.fop.apps.Driver.render(Driver.java:486)
         at XmlToPdf2.<init>(XmlToPdf2.java:28)
         at XmlToPdf2.main(XmlToPdf2.java:42)
    java.lang.RuntimeException: java.lang.NullPointerException
         at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1132)
         at org.apache.xalan.transformer.TrAXFilter.parse(TrAXFilter.java:134)
         at org.apache.fop.apps.Driver.render(Driver.java:481)
         at XmlToPdf2.<init>(XmlToPdf2.java:28)
         at XmlToPdf2.main(XmlToPdf2.java:42)
    java.lang.RuntimeException: java.lang.NullPointerException
         at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3170)
         at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:433)
         at org.apache.xerces.parsers.AbstractSAXParser.endDocument(AbstractSAXParser.java:629)
         at org.apache.xerces.impl.XMLNamespaceBinder.endDocument(XMLNamespaceBinder.java:702)
         at org.apache.xerces.impl.dtd.XMLDTDValidator.endDocument(XMLDTDValidator.java:974)
         at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(XMLDocumentScannerImpl.java:445)
         at org.apache.xerces.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1123)
         at org.apache.xerces.impl.XMLEntityManager$EntityScanner.load(XMLEntityManager.java:3078)
         at org.apache.xerces.impl.XMLEntityManager$EntityScanner.skipSpaces(XMLEntityManager.java:2766)
         at org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(XMLDocumentScannerImpl.java:995)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:332)
         at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:510)
         at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:557)
         at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:148)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1096)
         at org.apache.xalan.transformer.TrAXFilter.parse(TrAXFilter.java:134)
         at org.apache.fop.apps.Driver.render(Driver.java:481)
         at XmlToPdf2.<init>(XmlToPdf2.java:28)
         at XmlToPdf2.main(XmlToPdf2.java:42)
    java.lang.RuntimeException: java.lang.NullPointerException
         at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1132)
         at org.apache.xalan.transformer.TrAXFilter.parse(TrAXFilter.java:134)
         at org.apache.fop.apps.Driver.render(Driver.java:481)
         at XmlToPdf2.<init>(XmlToPdf2.java:28)
         at XmlToPdf2.main(XmlToPdf2.java:42)
    java.lang.RuntimeException: java.lang.NullPointerException
         at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3170)
         at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:433)
         at org.apache.xerces.parsers.AbstractSAXParser.endDocument(AbstractSAXParser.java:629)
         at org.apache.xerces.impl.XMLNamespaceBinder.endDocument(XMLNamespaceBinder.java:702)
         at org.apache.xerces.impl.dtd.XMLDTDValidator.endDocument(XMLDTDValidator.java:974)
         at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(XMLDocumentScannerImpl.java:445)
         at org.apache.xerces.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1123)
         at org.apache.xerces.impl.XMLEntityManager$EntityScanner.load(XMLEntityManager.java:3078)
         at org.apache.xerces.impl.XMLEntityManager$EntityScanner.skipSpaces(XMLEntityManager.java:2766)
         at org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(XMLDocumentScannerImpl.java:995)
         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:332)
         at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:510)
         at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:557)
         at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:148)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1096)
         at org.apache.xalan.transformer.TrAXFilter.parse(TrAXFilter.java:134)
         at org.apache.fop.apps.Driver.render(Driver.java:481)
         at XmlToPdf2.<init>(XmlToPdf2.java:28)
         at XmlToPdf2.main(XmlToPdf2.java:42)
    </pre>
    Can anybody help?

    Hi,
    I also facing same problem,did you get the solution.
    I am using apache's FOP 0.20.3, xerces-1.2.3 and xalan-2.0.0 and jdk1.3 with weblogic5.1 to convert xml/xsl file to pdf. The code is same as the one given in the org.apache.fop.apps.Driver class.
    please give me sample code.
    thanks,
    [email protected]

  • Is XML+XSL possible within a PDF?

    Hello!
    After much searching all I could find were articles about converting xml+xsl INTO a pdf file.  I'm wondering if I could embed XML+XSL INSIDE a pdf file and have it render.  Does Reader support XSL processing?  I'm new to pdf generation in general so any tips or advice would be useful and there is very little on the interwebs about XSL inside a pdf.
    Thank you!

    After looking at http://partners.adobe.com/public/developer/opensource/index.html I was under the impression that Reader used the Sablotron engine for some reason.  What adobe products use Sablotron and XSL then?

  • Urgent! How to suppress indents in output from (XML , XSL) -- HTML

    I make transformation (XML , XSL) --> HTML using parser v2 of Oracle XDK for Java v 9.2.0.2.0
    I want to generate html in which several tags will follow one after another without new line, and indents.
    Like this
    <html>
    <body>
    <img src="1.jpg"/><img src="2.jpg"/>
    </body>
    </html>
    Only in this case images will be visualized in IE5 together without spaces.
    But xsl-processor is formatting output text: put each tag on new line and make indents for child tags.
    I tried to
    1) eliminate white spaces in xsl
    2) use <xsl:output indent="no"/>
    3) use <xsl:strip-space elements="*"/>
    4) use method setPreserveWhitespace(true/false) of XMLParser (oracle.xml.parser.v2.XMLParser)
    Xsl-processor continue to format output text.
    my xml
    <list>
    <element name="1.jpg" />
    <element name="2.jpg" />
    </list>
    my xsl
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" indent="no"/>
    <xsl:strip-space elements="*"/>
    <xsl:template match="list">
    <html><body>
    <img src="{element[1]/@name}"/><img src="{element[2]/@name}"/>
    </body></html>
    </xsl:template>
    </xsl:stylesheet>
    html-output
    <html>
    <body>
    <img src="1.jpg"/>
    <img src="2.jpg"/>
    </body>
    </html>
    Please help me!

    html-output
    <html>
    <body>
    <img src="1.jpg"/>
    <img src="2.jpg"/>
    </body>
    </html>
    Please help me!

  • Proprietary Sys.= XML= XSL-FO= PDF In memory transform

    I am trying to preform an in memory creation of a pdf (using XSL-FO and FOP) from data contained in a proprietary system.
    The process I am using is:
    1: get xml of the data in the proprietary system (this works and the xml is fine)
    2: create the XSL-FO using the xml from stage 1 and an xslt (where I am going wrong)
    3: transform the xml to pdf (this works if I save the XSL-FO.xml and the xslt used to disk and then run FOP seperately)
    When I run the code I get a Fatal Error from FOP - Content not allowed in prolog. When I write the XSL-FO file to disk and look at it, it's not been transformed to XSL-FO and is missing all the mark-up.
    I have put the code below - any help would be very appreciated.
    Thanks
    // Setup XML input - The methods to create the initial xml return a String
    StringReader inSource = new StringReader( inResult );
    // Setup XSLT Stylesheet - The fo styles are stored in the proprietary system
    String foXSL = getStyleSheet("FOStyleSheet");
    ByteArrayOutputStream foXMLba = new ByteArrayOutputStream();
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer( new StreamSource( new StringReader( foXSL ) ) );
    Result foRes = new StreamResult( foXMLba );
    transformer.transform( new StreamSource( inSource), foRes );
    Driver driver = new Driver();
    driver.setRenderer( Driver.RENDER_PDF );
    ByteArrayOutputStream pdfOut = new ByteArrayOutputStream();
    driver.setOutputStream( pdfOut );
    driver.setInputSource( new InputSource( in_foResult ) );
    driver.run();

    an xslt (where I am going wrong)Yes, I would say that's a good guess at your problem. It does indeed sound like one of the common XSLT errors, where none of your templates are being matched and the default handling takes over; all that does is to copy the text nodes to the output.
    PC&#178;

  • Unable to transform XML with XSL in java code

    Hi,
    Could somebody please tell me what's wrong with my code, why it isn't transform the XML with XSL to the output that I want. If I use the command line to transform the XML, it output perfectly:
    java org.apache.xalan.xslt.Process -in marc.xml -xsl MARC21slim2MODS.xsl -out out.xml
    Here is the code of my program to transform the XML with XSL, I am using xalan-j_2_2-bin:
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import org.w3c.dom.*;
    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    import javax.xml.transform.dom.*;
    import java.math.BigInteger;
    String xslDoc = "MODS.xsl";
    String xmlResult = "out.xml";
    DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
    dfactory.setNamespaceAware(true);
    DocumentBuilder docBuilder = dfactory.newDocumentBuilder();
    Document xmlDoc = docBuilder.newDocument();
    Element root = xmlDoc.createElement("collection");
    root.setAttribute("xmlns", "http://www.loc.gov/MARC21/slim");
    xmlDoc.appendChild(root);
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(new StreamSource(xslDoc));
    FileWriter fw = new FileWriter(new File(xmlResult));
    StreamResult output = new StreamResult(fw);
    transformer.transform(new DOMSource(xmlDoc), output);
    fw.flush();
    fw.close();
    ========================
    marc.xml -- source XML file
    ========================
    <?xml version="1.0" encoding="UTF-8"?>
    <collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01488cam 2200337 a 4500</leader><controlfield tag="001">2502929</controlfield><controlfield tag="005">19930521155141.9</controlfield><controlfield tag="008">920219s1993 caua j 000 0 eng </controlfield><datafield ind1=" " ind2=" " tag="035"><subfield code="9">(DLC) 92005291</subfield></datafield><datafield ind1=" " ind2=" " tag="906"><subfield code="a">7</subfield><subfield code="b">cbc</subfield><subfield code="c">orignew</subfield><subfield code="d">1</subfield><subfield code="e">ocip</subfield><subfield code="f">19</subfield><subfield code="g">y-gencatlg</subfield></datafield>
    </record></collection>
    ========================
    out.xml -- result using command line
    ========================
    <?xml version="1.0" encoding="UTF-8"?>
    <collection xmlns="http://www.loc.gov/mods/" xmlns:xlink="http://www.w3.org/TR/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/ http://www.loc.gov/standards/marcxml/schema/mods.xsd">
    <mods>
    <titleInfo>
    <title>Arithmetic</title>
    </titleInfo>
    <name type="personal">
    <namePart>Sandburg, Carl</namePart>
    <namePart type="date">1878-1967</namePart>
    <role>creator</role>
    </name>
    </mods>
    </collection>
    ========================
    out.xml -- result using my java program
    ========================
    <?xml version="1.0" encoding="UTF-8"?>
    <collection xmlns="http://www.loc.gov/mods/" xmlns:xlink="http://www.w3.org/TR/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/ http://www.loc.gov/standards/marcxml/schema/mods.xsd">01488cam 2200337 a 4500250292919930521155141.9920219s1993 caua j 000 0 eng (DLC) 920052917cbcorignew1ocip19y-gencatlgpc16 to br00 02-19-92; br02 to SCD 02-21-92; fd11 02-24-92 (PS3537.A618 A...); fa00 02-26-92; fa05 03-02-92; fm31 03-06-92; CIP ver. pv08 04-16-93; pv01 to CLT 04-20-93; lb10 05-21-93
    </collection>

    I am using the same XSL file. My Java program use the same XSL file I used in the command line.
    It is possible that my Java code is using a different parser, but I developed a seperate program to parse the XML using the same parser that my Java code is using. It output the result I expected. Here is the code for the program:
    import java.io.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    public class Convertor {
    public static void main(String[] args) throws Exception {
    String xslDoc = "MARC21slim2MODS.xsl";
    String xmlResult = "out.xml";
    String xmlDoc = marc.xml";
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(new StreamSource(xslDoc));
    StreamSource xmlSource = new StreamSource(xmlDoc);
    FileWriter fw = new FileWriter(new File(xmlResult));
    StreamResult output = new StreamResult(fw);
    transformer.transform(xmlSource, output);
    }

  • Problem in transforming xml to html using xsl

    Hi everybody ,
    I am creating a xml in memory and i want to transform using xsl into an html.
    I want to embed some html code also in the data node.But when I get the html it simply writes as it is. I tried to make it cdata section but it did not worked. Pls help.
    crypticashu
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.dom.DOMSource;
    import org.w3c.dom.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    public class mytemp {
         public static void main(String args[])
         DocumentBuilder builder = null;
         Document document = null;
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         try
         builder = factory.newDocumentBuilder();
         document = builder.newDocument();
         catch (ParserConfigurationException e)
         e.printStackTrace();
         Element root = (Element) document.createElement("REPORT");
         document.appendChild(root);
         Node child = document.createElement("DATA");
         CDATASection data = document.createCDATASection("<b>Hello World </b>");
         child.appendChild(data);
         root.appendChild(child);
         document.getDocumentElement().normalize();
         DOMSource domsource = new DOMSource(document);
              TransformerFactory tfactory = TransformerFactory.newInstance();
              File f = new File("c:/mytemp/report.xsl");
              StreamSource xsl = new StreamSource(f);
              File html = new File("c:/myhtml.html");
              try
                   Templates templates = tfactory.newTemplates(xsl);
                   Transformer transformer = templates.newTransformer();
                   transformer.transform(domsource, new StreamResult(html));
              catch(Exception e)
                   e.printStackTrace();
         }

    want to embed some html code also in the data node.But when I get the html it simply writes as it is.That statement contradicts:
    In real application i will be getting data containg html tags.I want the parser to read that data as simple text. Both cannot be true. You either want the HTML to not be parsed or you want the transformer to deal with it. Which one?
    - Saish

  • Issue generating pdf from xml template, data and StreamServer webservices

    We purchased Abode LiveCycle Premium Print ES4. It included a product called StreamServe which we planned to use to merge xml templates and data into a pdf file using a StreamServe webservice (for developers). It seems the StreamServe webservices are not equal to that task.  Can anyone offer a hint how this automated pdf generation can be achieved using LCPP?  (I suspect it can be done using Workbench but I don't know this to be a fact.)
    TIA,
    Bill

    Was that another shameless book plug??
    Sorry, gotta run. I just got word the Fed Ex delivery of my copy of your book just arrived. Do you 'e-sign' personalized copies?
    p.s. The preview of Chapter 7 (Transforming XML with XSLT) is great and filled with good clean examples and explanation.

  • XML Transformation while pushing data

    I can get an XML file that contains a structure like
    <order>
    <onumber>12345</onumber>
      <customer>
        <name>Miller</name>
        <street>XY Street</street>
        <city>Bristol</city>
      </customer>
      <object>
        <orderno>12345678</orderno>
        <quant>5</quant>
        <color>...</color>
      </object>
    </order>
    But to import it into BW I need something like
    <order>
      <onumber>12345</onumber>
    <i>Delete <customer></i>
      <name>Miller</name>
      <street>XY Street</street>
      <city>Bristol</city>
    <i>Delete </customer></i>
    <i>Delete <object></i>
      <orderno>12345678</orderno>
      <quant>5</quant>
      <color>...</color>
    <i>Delete </object></i>
    </order>
    Is there any way to do this transformation from the BW side, e.g. by changing the generated function module?
    Best regards
    Dirk

    hello dirk,
    here's an xsl.
    order.xsl -
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
       <xsl:apply-templates select="order"/>
    </xsl:template>
    <xsl:template match="*|@*|text()">
      <xsl:copy>
       <xsl:apply-templates select="*|@*|text()"/>
    </xsl:copy>
    </xsl:template>
    <xsl:template match="customer">
      <xsl:copy-of select="*" />
    </xsl:template>
    <xsl:template match="object">
      <xsl:copy-of select="*" />
    </xsl:template>
    </xsl:stylesheet>
    here's the original xml sample data:
    i added some elements below the object assuming
    that you have other elements as expressed by ...
    order.xml -
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="order.xsl"?>
    <order>
    <onumber>12345</onumber>
      <customer>
       <name>Miller</name>
       <street>XY Street</street>
       <city>Bristol</city>
      </customer>
    <object>
      <orderno>12345678</orderno>
      <quant>5</quant>
      <color>...</color>
    </object>
    <other>
      <otherchild>Test</otherchild>
    </other>
    </order>
    here's the result:
    result -
    <?xml version="1.0" encoding="UTF-8"?>
    <order>
    <onumber>12345</onumber>
    <name>Miller</name>
    <street>XY Street</street>
    <city>Bristol</city>
    <orderno>12345678</orderno>
    <quant>5</quant>
    <color>...</color>
    <other>
       <otherchild>Test</otherchild>
    </other>
    </order>
    i think the code answers your question.
    does it?
    regards
    jo

  • ENTITIES and transforming XML to XML/HTML using XSL

    I am going absolutely nuts. When using XSL to transform an XML
    file to HTML or another XML schema, critical entities dissappear.
    For example:
    <oldtag>press &quot;any&quot; key</oldtag>
    will get rendered to
    <newtag>press "any" key</newtag>
    by the XML/XSL parser, which is not valid HTML or XML.
    How do I preserve these entities through the transformation
    process. Escaping the text (in the XML source) with <![CDATA[]]
    is not possible in this case.--Michael
    null

    Assuming you can't use a CDATA in the DTD to prevent parsing,
    then my suggestion would be to use the XSL stylesheet to restore
    the entities as there is no way that I am aware of that will set
    conditional expansion.
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    Michael Van Auken (guest) wrote:
    : I am going absolutely nuts. When using XSL to transform an
    XML
    : file to HTML or another XML schema, critical entities
    dissappear.
    : For example:
    : <oldtag>press &quot;any&quot; key</oldtag>
    : will get rendered to
    : <newtag>press "any" key</newtag>
    : by the XML/XSL parser, which is not valid HTML or XML.
    : How do I preserve these entities through the transformation
    : process. Escaping the text (in the XML source) with <![CDATA
    : > is not possible in this case.
    : --Michael
    null

  • Transform XML and display xsl:message

    Hi,
    I have a simple method to transform XML. My XSLT has <xsl:message> to help debugging while transforming. How do I access the messages to System.out.printLn?
    public static Document transformXML(Document xmlDoc, Document xslDoc) throws XMLHelperException {
              try {
                   TransformerFactory factory = TransformerFactory.newInstance();
                   Transformer transformer = factory.newTransformer(new DOMSource(xslDoc));
                   DOMResult result = new DOMResult();
                   transformer.transform(new DOMSource(xmlDoc), result);
                   org.w3c.dom.Node resultNode = result.getNode();
                   if (resultNode instanceof Document) return (Document)resultNode;
                   else return result.getNode().getOwnerDocument();
              } catch (TransformerConfigurationException ex) {
                   throw new XMLHelperException("Unable to perform transform " + ex.getLocationAsString(), ex);
              } catch (TransformerException ex) {
                   throw new XMLHelperException("Unable to perform transform " + ex.getLocationAsString(), ex);
         }thanks for the help.
    Edited by: bonekrusher on Mar 8, 2008 2:27 PM
    Edited by: bonekrusher on Mar 8, 2008 2:27 PM

    public class XForm {
         public static void main(String[] args) throws Exception {
              InputStream xslStream = null;
              InputStream xmlStream = null;
              try {
                   TransformerFactory tf = TransformerFactory.newInstance();
                   xslStream = new BufferedInputStream(new FileInputStream(args[1]));
                   Transformer t = tf.newTransformer(new StreamSource(xslStream));
                   tf.setErrorListener(new ErrorListener() {
                        public void error(TransformerException ex) throws TransformerException {
                             ex.printStackTrace();
                        public void fatalError(TransformerException ex) throws TransformerException {
                             ex.printStackTrace();
                        public void warning(TransformerException ex) throws TransformerException {
                             ex.printStackTrace();
                   xmlStream = new BufferedInputStream(new FileInputStream(args[0]));
                   t.transform(new StreamSource(xmlStream), new StreamResult(System.out));
              } catch (Exception e) {
                   e.printStackTrace();
              } finally {
                   if (xslStream != null)
                        xslStream.close();
                   if (xmlStream != null)
                        xmlStream.close();
    <test>
         <sample try="yes">
              a
         </sample>
    </test>
    <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xalan">
         <xsl:template match="/">
              <xsl:message terminate="no">got here</xsl:message>
              <xsl:apply-templates/>
         </xsl:template>
         <xsl:template match="*|@*">
              <xsl:copy>
                   <xsl:apply-templates/>
              </xsl:copy>
         </xsl:template>
    </xsl:transform>          

Maybe you are looking for