Tranformation of xml

hi everybody,
how could one transform one Xml file into another xml file
how could java help me
plz... suggest me some materials ,some examples
bye
advance thanks
shekar

You want to use XSLT. The Java 2 SDK has an API for XSL transformations since version 1.4. Lookup the documentation. (Click on "Technologies / XML" on the left side of this page, I'm sure there's documentation there you can use).
Jesper

Similar Messages

  • Need help in creating XSD for a WSDL file to tranform given XML

    Hi,
    Please let me knoe if this is the right forum to post the query below:
    We are trying to transform a XML output from a webservice using a XSD file. But we are facing problem as the XML output has some namespace issue and schema due to which transformation is not working fine. I am pasting the files below:
    WSDL file used is
    <?xml version="1.0" encoding="utf-8"?>
    <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tempuri.org/Projectix20/SOAPAccess" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/Projectix20/SOAPAccess" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/Projectix20/SOAPAccess">
    <s:element name="ExecuteSQLToXML">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="SQL" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="ExecuteSQLToXMLResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="ExecuteSQLToXMLResult">
    <s:complexType mixed="true">
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="NewDataSet">
    <s:complexType>
    <s:choice>
    <s:element minOccurs="0" maxOccurs="unbounded" name="Table1">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="10" name="FName" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:choice>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="GetDataTablePage">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="SQL" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="PageNumber" type="s:int" />
    <s:element minOccurs="1" maxOccurs="1" name="RecordsPerPage" type="s:int" />
    <s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="GetDataTablePageResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="GetDataTablePageResult">
    <s:complexType mixed="true">
    <s:sequence>
    <s:any />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="GetRecordCount">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="SQL" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="GetRecordCountResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="GetRecordCountResult" type="s:int" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="UploadCanAtt">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="CanID" type="s:int" />
    <s:element minOccurs="0" maxOccurs="1" name="Filename" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="bytesData" type="s:base64Binary" />
    <s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="UploadCanAttResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="UploadCanAttResult" type="s:int" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="DownloadCanAtt">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="CanAttID" type="s:int" />
    <s:element minOccurs="0" maxOccurs="1" name="GUID" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="DownloadCanAttResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="DownloadCanAttResult" type="s:base64Binary" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    <wsdl:message name="ExecuteSQLToXMLSoapIn">
    <wsdl:part name="parameters" element="tns:ExecuteSQLToXML" />
    </wsdl:message>
    <wsdl:message name="ExecuteSQLToXMLSoapOut">
    <wsdl:part name="parameters" element="tns:ExecuteSQLToXMLResponse" />
    </wsdl:message>
    <wsdl:message name="GetDataTablePageSoapIn">
    <wsdl:part name="parameters" element="tns:GetDataTablePage" />
    </wsdl:message>
    <wsdl:message name="GetDataTablePageSoapOut">
    <wsdl:part name="parameters" element="tns:GetDataTablePageResponse" />
    </wsdl:message>
    <wsdl:message name="GetRecordCountSoapIn">
    <wsdl:part name="parameters" element="tns:GetRecordCount" />
    </wsdl:message>
    <wsdl:message name="GetRecordCountSoapOut">
    <wsdl:part name="parameters" element="tns:GetRecordCountResponse" />
    </wsdl:message>
    <wsdl:message name="UploadCanAttSoapIn">
    <wsdl:part name="parameters" element="tns:UploadCanAtt" />
    </wsdl:message>
    <wsdl:message name="UploadCanAttSoapOut">
    <wsdl:part name="parameters" element="tns:UploadCanAttResponse" />
    </wsdl:message>
    <wsdl:message name="DownloadCanAttSoapIn">
    <wsdl:part name="parameters" element="tns:DownloadCanAtt" />
    </wsdl:message>
    <wsdl:message name="DownloadCanAttSoapOut">
    <wsdl:part name="parameters" element="tns:DownloadCanAttResponse" />
    </wsdl:message>
    <wsdl:portType name="SOAPAccessSoap">
    <wsdl:operation name="ExecuteSQLToXML">
    <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Executes a SQL statement and returns a generic XML document with results from SQL statement.</documentation>
    <wsdl:input message="tns:ExecuteSQLToXMLSoapIn" />
    <wsdl:output message="tns:ExecuteSQLToXMLSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetDataTablePage">
    <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Executes a SQL statement and returns a generic XML document with results from SQL statement.</documentation>
    <wsdl:input message="tns:GetDataTablePageSoapIn" />
    <wsdl:output message="tns:GetDataTablePageSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetRecordCount">
    <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Executes a SQL statement and returns a generic XML document with results from SQL statement.</documentation>
    <wsdl:input message="tns:GetRecordCountSoapIn" />
    <wsdl:output message="tns:GetRecordCountSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="UploadCanAtt">
    <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Uploads a text or binary attachment file for a Candidate record.</documentation>
    <wsdl:input message="tns:UploadCanAttSoapIn" />
    <wsdl:output message="tns:UploadCanAttSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="DownloadCanAtt">
    <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Uploads a text or binary attachment file for a Candidate record.</documentation>
    <wsdl:input message="tns:DownloadCanAttSoapIn" />
    <wsdl:output message="tns:DownloadCanAttSoapOut" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="SOAPAccessSoap" type="tns:SOAPAccessSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <wsdl:operation name="ExecuteSQLToXML">
    <soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/ExecuteSQLToXML" style="document" />
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetDataTablePage">
    <soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/GetDataTablePage" style="document" />
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetRecordCount">
    <soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/GetRecordCount" style="document" />
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="UploadCanAtt">
    <soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/UploadCanAtt" style="document" />
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="DownloadCanAtt">
    <soap:operation soapAction="http://tempuri.org/Projectix20/SOAPAccess/DownloadCanAtt" style="document" />
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="SOAPAccess">
    <wsdl:port name="SOAPAccessSoap" binding="tns:SOAPAccessSoap">
    <soap:address location="http://sales.projectix.com:81/customer/SOAPAccess.asmx" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    XSD file used for transformation is:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
    <xs:element name="ExecuteSQLToXMLResponse">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="ExecuteSQLToXMLResult"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="parameters">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="ExecuteSQLToXMLResponse"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="ExecuteSQLToXMLResult">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="NewDataSet"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="FNAME" type="xs:string"/>
    <xs:element name="Table1">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="FNAME"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="NewDataSet">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" maxOccurs="unbounded" ref="Table1"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    XML Output from webservice call that we are trying to tranform using above XSD is:
    <parameters >
    <ExecuteSQLToXMLResponse xmlns = "http://tempuri.org/Projectix20/SOAPAccess" >
    <ExecuteSQLToXMLResult >
    <NewDataSet xmlns = "" >
    <xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema" xmlns:msdata = "urn:schemas-microsoft-com:xml-msdata" >
    <xs:element name = "NewDataSet" msdata:IsDataSet = "true" >
    <xs:complexType >
    <xs:choice maxOccurs = "unbounded" >
    <xs:element name = "Table1" >
    <xs:complexType >
    <xs:sequence >
    <xs:element name = "FNAME" type = "xs:string" minOccurs = "0" ></xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    <Table1 >
    <FNAME >
    JOHN
    </FNAME>
    </Table1>
    <Table1 >
    <FNAME >
    John
    </FNAME>
    </Table1>
    <Table1 >
    <FNAME >
    John
    </FNAME>
    </Table1>
    <Table1 >
    <FNAME >
    JOHN
    </FNAME>
    </Table1>
    <Table1 >
    <FNAME >
    John
    </FNAME>
    </Table1>
    </NewDataSet>
    </ExecuteSQLToXMLResult>
    </ExecuteSQLToXMLResponse>
    </parameters>
    I am not sure what we are missing in XSD file that the XML output is not getting transformed correctly...although we tried transforming the XML output by removing some information in XML output above and it was getting trasformed properly..
    We remove
    1. xmlns = "http://tempuri.org/Projectix20/SOAPAccess" from <ExecuteSQLToXMLResponse xmlns = "http://tempuri.org/Projectix20/SOAPAccess" >
    2. xmlns = "" from <NewDataSet xmlns = "" >
    3 remove <parameters > and </parameters > tags from output and the XML Output is getting tranformed correctly.
    Please let us know if we can transform the XML Output without requiring these removals.
    Thanks,
    Pawan

    Could you clarify some things? You are saying you are trying to transform the xml output of a webservice with an xsd, but an xsd is a schema that describes the allowed format of a xml file. If you want to transform xml from one format to an other (from one xsd to an other) you have to use a xsl file. You can make and test this with JDeveloper. Are you calling the webservice from esb or bpel?
    Kind Regards,
    Andre

  • Tranform an xml to string

    Hello,
    This is maybe a stupid question, but how can I assign an xml content to a string variable ?
    for example, I have a variable of type Element containing <test><taga>A</taga><tagb>B</tagb></test> and I would like to assign a String variable with the same content...
    In fact, I'm searching for the opposite of parseEscapedXML() function.
    Any solution ?
    Thanks by advance.

    HI ,
    In java we have a class XMLUtils in which wehave many usefull methods ,,,,,
    chk it once
    Patti

  • XSLT to convert XML into Tables

    Hi,
    I'm trying to import my XML data into a table format. After adding an XSL file to my Structure Application as a Preprocessing Stylesheet, and importing my XML instance file with the Template file opened, the "Unknown File Type" error window appeared asking for a file format to Convert From. Picking any one doesn't create a table.
    The XSL file tranforms the XML data into an HTML file that has a table with columns corresponding to the XML data. I was thinking using that type of XSL because it renders tables.
    Below is the XSL markup:
    <?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="/">
      <html>
      <body>
      <h2>Products</h2>
        <table border="1">
          <tr bgcolor="#9acd32">
            <th>Title</th>
            <th>Number</th>
            <th>Date</th>
          </tr>
          <xsl:for-each select="Products/Product">
          <tr>
            <td><xsl:value-of select="Title"/></td>
            <td><xsl:value-of select="Number"/></td>
            <td><xsl:value-of select="Date"/></td>
          </tr>
          </xsl:for-each>
        </table>
      </body>
      </html>
    </xsl:template>
    </xsl:stylesheet>
    Title, Number, and Date are child elements of the Product element, which is a child element of the Products root element in my XML file.
    Am I applying the stylesheet correctly here? Am I using the write kind of stylesheet?
    Thanks,
    zeb

    Hi Michael, Van,
    Thank you for responding to my post. Your feedback was very helpful!
    I was able to get the table to generate in FrameMaker but no data from the XML file is flowing into it. All that appears is the header row with "Title," "Number," and "Date" in the cells, and a row with blank cells underneath it. The Structure View pane has a red "<no value>" for the "Cols" and "Widths" attributes of the Table element. Only the Title column is affected by the width value.
    The XSL, RW, and EDD files are as a follows: (The structure for the XML is a "Products" root element with mulitple "Product" child elements that each have a "Title," "Name," "Date" child element.)
    ==========================XSL==================
    <xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" doctype-system="products_DTD3.dtd" />
    <xsl:template match="/">
    <products>
    <Table cols="3" width="150">
    <TableHeading>
        <TableRow>
            <TableCell>Title</TableCell>
            <TableCell>Number</TableCell>
            <TableCell>Date</TableCell>
        </TableRow>
    </TableHeading>
    <TableBody>
    <TableRow>
    <TableCell><xsl:for-each select="Products/Product"><xsl:value-of select="Title"/></xsl:for-each></TableCell>
    <TableCell><xsl:for-each select="Products/Product"><xsl:value-of select="Number"/></xsl:for-each></TableCell>
    <TableCell><xsl:for-each select="Products/Product"><xsl:value-of select="Date"/></xsl:for-each></TableCell>
    </TableRow>
    </TableBody>
    </Table>
    </products>
    </xsl:template>
    </xsl:stylesheet>
    ==========================EDD==================
    Element (Container): products
    General rule:    Table
    Valid as the highest-level element.
    Element (Table): Table
    General rule:    TableHeading,TableBody
    Attribute list
    Name: cols     String     Required
    Name: width     String     Required
    Element (Table Heading): TableHeading
    General rule:    TableRow
    Element (Table Row): TableRow
    General rule:    TableCell+
    Element (Table Cell): TableCell
    General rule:    <TEXT>
    Element (Table Body): TableBody
    General rule:    TableRow
    ==========================RW===================
    fm version is "10.0";
    element "Table" {
      is fm table element;
      attribute "cols" is fm property columns;
      attribute "width" is fm property column widths;
    element "TableRow" is fm table row element;
    element "TableHeading" is fm table heading element;
    element "TableBody" is fm table body element;
    element "TableCell" is fm table cell element;
    ===============================================
    I'm having trouble placing the "<xsl:for-each select="Products/Product">" tag in the XSL file. When I put it under  TRow, FrameMaker  gives an error that "TRow is not a valid for content (TCell)+". Only when I place it within the TCell tags (as I have above) does the above-mentioned Table with a Header row and a row with empty cells generate.
    Is the XSL the problem here?
    Thanks,
    Zeb

  • Use XML Node Value as Node name and as attribute name

    im quite new to XML and XLST. I got an Open Office XML file that I transformed with XLST.
    <?xml version="1.0" encoding="UTF-8"?>
    <ooo_calc_export scriptVersion="2.2.0" scriptUpdate="2010-12-19" scriptURL="http://www.digitalimprint.com/misc/oooexport/" scriptAuthor="vjl">
       <ooo_sheet num="1" name="Blatt1">
          <ooo_row><Artikelnummer>C12-34567</Artikelnummer><ArttikelnummerAlt/><Details>AAA AAA AAA AAA</Details><Abmessungen/><Bildpfad>file:///cmyk/C12-34567.PSD</Bildpfad><EK>1234,-</EK><VK>3456,-</VK>
            </ooo_row>
          <ooo_row><Artikelnummer>C23-45678</Artikelnummer><ArttikelnummerAlt/><Details>BaB BaB BBB BBB</Details><Abmessungen/><Bildpfad>file:///cmyk/cmyk/C23-45678.PSD</Bildpfad><EK>2345,-</EK><VK>4567,-</VK>
            </ooo_row>
          <ooo_row><Artikelnummer>C34-56789</Artikelnummer><ArttikelnummerAlt/><Details>CaC CaC CaC CaC uli</Details><Abmessungen/><Bildpfad>file:///cmyk/cmyk/C34-56789.PSD</Bildpfad><EK>3456,-</EK><VK>5678,-</VK>
            </ooo_row>
       </ooo_sheet>
    </ooo_calc_export>
    I transformed the XML with the following XLST:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
      <xsl:output method = "xml" version="1.0" encoding="UTF-8" indent="yes"/>
      <xsl:strip-space elements="*"/>
      <xsl:template match="ooo_sheet">
    <xsl:element name="Import">
    <xsl:for-each select="ooo_row">
    <xsl:element name="Artikel">
      <xsl:element name="Text">
            <xsl:copy-of select="Artikelnummer"/>
            <xsl:copy-of select="Details"/>
            <xsl:copy-of select="Abmessungen"/>
            <xsl:copy-of select="EK"/>
      </xsl:element>
    </xsl:element>
    </xsl:for-each>
    </xsl:element>
    </xsl:template>
    The result is:
    <?xml version="1.0" encoding="UTF-8"?>
    <Import>
        <Artikel>
            <Text>
                <Artikelnummer>C12-34567</Artikelnummer>
                <Details>AAA AAA AAA AAA</Details>
                <Abmessungen/>
                <EK>1234,-</EK>
            </Text>
        </Artikel>
        <Artikel>
            <Text>
                <Artikelnummer>C23-45678</Artikelnummer>
                <Details>BaB BaB BBB BBB</Details>
                <Abmessungen/>
                <EK>2345,-</EK>
            </Text>
        </Artikel>
        <Artikel>
            <Text>
                <Artikelnummer>C34-56789</Artikelnummer>
                <Details>CaC CaC CaC CaC uli</Details>
                <Abmessungen/>
                <EK>3456,-</EK>
            </Text>
        </Artikel>
    </Import>
    I need another child within the node "Artikel" named "Bild". It should have an "href" attribute. The value of the attribute should be the value in the node "Bildpfad".
    The result of this transformation should be
    <Artikel>
      <Text>
        <Artikelnummer>C34-56789</Artikelnummer>
        <Details>CaC CaC CaC CaC uli</Details>
        <Abmessungen/>
        <EK>3456,-</EK>
      </Text>
      <Bild href="file:///cmyk/C12-34567.PSD"></Bild>
    </Artikel>
    I want to import this XML into Indesign. It seems that the images path needs to be in a href attribute so Indesign accepts the node as an image object.
    Another problem is that Indesign won't import the original xml with selection of the listed xsl to tranform the xml. So I used another xml editor instead to perform the transformation.
    Thank you all for your help!

    Hi Dorian_fs,
    I think we're still missing details here on what exactly it
    is you're trying to do? Are you loading this XML via a data set? In
    which case, Don's samples would apply? Or are you trying to load
    XML independent of data sets and regions, in which case, you are
    looking for something that simplifies the access of data from the
    resulting XML document? If the latter than perhaps you want to use
    XMLDocToObject:
    http://labs.adobe.com/technologies/spry/samples/utils/XMLDocToObject.html
    --== Kin ==--

  • XML/XSLT question

    At the moment my java servlet just takes content from an ArrayList and populates html blocks that get concatenated and thrown to the client as a html page. This is not the best way to do things because the java code and html vocabulary is interspersed.
    In a bid to seperate the presentation(html code) from the logic(java code) I am turning to XSLT. From my research this takes as input an XML file that contains the content. But how do you insert the content? Is there a standard way? When the tranformation from XML to html is complete, how do you hand back the resulting html page within the java application? Thanks in advance.

    One solution would be to use a JSP. It can retrieve the ArrayList from the Servlet and use it to build HTML. At least that way the mixture of HTML and Java is minimized in the source form. (Behind the scenes, the JSP is turned into a Servlet, so the mixture is still there, it is just not as visible.)
    Another choice is to use DOM or JDOM to create the Html content using Element objects to create tags. The main advantage of that over doing "
    ...out.println( "<h1>...</h1>);
    is that it makes sure the closing tags match, and empty tags are properly coded.
    In answer to your direct question, there is no standard for how to code data into XML so you can run an XSLT transform to convert it into HTML. It also mixes Java logic and XML in the same file. You need to choose your poison.
    Dave Patterson

  • How to fetch data from XML and store it in internal table

    Hi All,
    Can anyone help me out, in fetching data from xml and store it in an internal table. Is there any standard function module is there?
    Regards,
    Karthick

    to do this you can either develop a XSLT program and use it with CALL TRNSFORMATION key word to tranform the XML into itab .
    (search the ABAP General forum, i have posted few samples)
    or simply use the following FM which converts your XML into a itab of name value pair (name would holw the element name and value would hold the value of the element) which you can then loop and read it to your itb.
    data:             xmldata type xstring .
    data: result_xml type standard table of smum_xmltb .
    data: return type standard table of bapiret2 .
    CALL FUNCTION 'SMUM_XML_PARSE'
      EXPORTING
        xml_input       = xmldata
      TABLES
        xml_table       = result_xml
        return          = return .
    Regards
    Raja

  • Transform XML without validating

    Hi, I use Xalan to transform an XML file.
    I use Tranformer.class, I just want to tranform the XML without validating the file.
    In the parser class, you can use setValidate to avoid or not the validating action.
    Do you know how to do the same with Transformer.class
    Thanks C�dric

    This one piqued my interest, and as no one had responded
    yet I thought I'd poke around and see what's up.
    I looked at the Transfermer class, and the javadoc pointed
    me to the OutputKeys class, the only thing that looked
    remotely interesting was the "STANDALONE" feature. I wonder
    if you can set it to "true" and avoid the validation (as I
    think Standalone implies, no DTD to validate against?)
    Eric

  • Loading multiple tables from one xml-file

    I've got one xml-file containing information which should be loaded into multiple database tables. How can I do that?

    Please use XSLT to tranform to XML file with XSU recognized format and separated for different table input.
    You may refer to Example in book "Building Oracle XML Applications".
    null

  • XML Transformation

    Hi All,
    Can any one help me to tranforming the XML of following type
    <Details>
    <Name>AAA</Name>
    <Number>111</Number>
    <Subject>S1</Subjec>
    </Details>
    <Details>
    <Name>AAA</Name>
    <Number>111</Number>
    <Subject>S2</Subjec>
    </Details>
    <Details>
    <Name>AAA</Name>
    <Number>111</Number>
    <Subject>S3</Subjec>
    </Details>
    to the XML as
    <Details>
    <Name>AAA</Name>
    <Number>111</Number>
    <SubjectDetails>
    <Subject>S1</Subject>
    <Subject>S2</Subject>
    <Subject>S3</Subject>
    </SubjectDetails>
    </Details>
    I need to do this in a XML transformation Mapping in a BPEL process using JDeveloper
    Thanks in advance
    Edited by: user10308218 on 22-Sep-2008 02:37

    Hi Pavan,
    Kindly let me know how you did that.
    2nd thing is , from where you started for BPEL.
    I will also be working on BPEL, but dont know from where to start for this.
    I have to study a big xml flow, in BPEL for my project,
    Help me out with some links.

  • Send special character by mail

    We are creating an XML spreadsheet that is sent by mail, and we are requested to show in a cell the special character Delta (u0394).
    The overview of the process is the following:
    - We create an XML file through IF_IXML interface, with enconding UTF-8 Little Endian.
    - Then we render XML into an internal table.
    - At last, we send the XML spreadsheet (the internal table) as an attached file by mail through SO_NEW_DOCUMENT_ATT_SEND_API1.
    The problem we are facing is the following:
    If we try to put Delta (u0394) as a character in a data tag (it's a variable of type String), SAP is turning it as '#', and not showing the character.
      DATA: o_cell TYPE REF TO if_ixml_element,
            o_data TYPE REF TO if_ixml_element,
            v_string TYPE string.
    * Crea una celda
      o_cell = o_xmldoc->create_simple_element( name = 'Cell'
                                                 parent = o_row ).
    v_string = 'u0394'.
    *   Crea un dato
        o_data = o_xmldoc->create_simple_element( name   = 'Data'
                                                   parent = o_cell
                                                   value  = v_string ).
    When you open the file in Excel, the '#' character is shown instead of  'u0394'.
    How can I show that Delta character (u0394) in the XML spreadsheet file I am sending?
    Please tell me if more information is needed.
    Thanks in advance,
    Martin

    I tried like you said:
      DATA: o_cell TYPE REF TO if_ixml_element,
            o_data TYPE REF TO if_ixml_element,
            v_string TYPE string.
    * Crea una celda
      o_cell = o_xmldoc->create_simple_element( name = 'Cell'
                                                 parent = o_row ).
    v_string = '& #916;'.                                           'Added a space in the middle to show the HTML entity code in the forum
                                                   parent = o_cell
                                                   value  = v_string ).
    But SAP is tranforming my XML text to:
    <Cell>&amp;#916;<Cell>
    ( &amp; is the HTML entity for '&')
    How can I put Delta character so that SAP turns it in the right HTML entity &#916;
    Or how can I manage so that the cell value generated is:
    <Cell>&#916;<Cell>

  • Webservice returning string (but I need XML for XSLT Tranformation)

    Hello everybody,
    I have configured an ip with a webservice. So far so good - everything works fine.
    Now I want to transform the output of the webservice with xslt. The webservice returns the data as a String in form of XML.
    e.g.
        <!XML>
    <!String>
    <!String> </b>
    </Bill> <!XML>
    But XSLT don't find e.g the node , because it is a String. I think the right way is first to transform the String into XML. I tried this step with Java with the method
    public void execute(InputStream inputStream, OutputStream outputStream)
            throws StreamTransformationException {
    but it doesn't work. I am not sure, if this is the right way.I have searched for a code sample, but I didn't find anything.
    What do you think?
    Do you have a code sample?
    This would be great!
    Best regards,
    Jürgen

    Hello Bhavesh,
    thx very much for your help.
    Here is my Java Mapping:
    public class ModusLebenTransformation implements StreamTransformation
    public static byte[] readStream(InputStream in, boolean close)
        throws IOException
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        int c = in.read();
        while (c > -1)
            out.write(c);
            c = in.read();
        out.flush();
        byte[] result = out.toByteArray();
        out.close();
        if (close)
            in.close();
        return result;
    public void setParameter(Map map) {
    public void execute(InputStream inputStream, OutputStream outputStream)
            throws StreamTransformationException {
       try {
    TransformerFactory tFactory = TransformerFactory.newInstance();
                Transformer transformer = tFactory.newTransformer();
       StreamResult result = new StreamResult(outputStream);
    String input = new String(readStream(inputStream,true));
    transformer.transform(new StreamSource(input), result);      
      } catch (Exception e) {
                 throw new StreamTransformationException("Mapping failed", e);
    But I don't know if this code is enough to convert the String( from the webservice) into XML.
    And then I would like to use XSLT for transformation in a new mapping step.
    Do you think this is possible?
    Do you have a code sample, that will tranform the String (from the webservice) into XML?
    This would be very helpful!
    regards,
    Jürgen

  • Problem with Jtree to xml tranform..how to set/get parent of a node?

    Hi,
    I am trying to develop xml import/export module.In import wizard, I am parsing the xml file and the display it in Jtree view using xml tree model which implements TreeModel and xml tree node.I am using jaxp api..
    It is workin fine.
    I got stuck with removal of selected node and save it as a new xml.
    I am not able to get parent node of selected node in remove process,itz throwing null.I think i missed to define parent when i load treemodel.Plz help me out..give some ideas to do it..
    thanks
    -bala
    Edited by: r_bala on May 9, 2008 4:44 AM

    there's no way anyone can help you without seeing your code.

  • Using XSL to tranform xml in Livecycle designer es3

    Hi,
    I have a dynamic form (.xdp), an .xml data file binded to it, we need to make many manupulations to the text (the below xml does not have much text to show but that is our purpose)(i.e) to show partial bolds in some sentences etc, we figured out that this is not possible to manipulate the text in XML , so we thought of using XSL to overcome, but here comes the real problem,
    i am starting it with real basic xsl-- used  The option Trnsforming Incomimg data, but when i try to preview the .pdf from the designer it throws
    XSLT parsing error 1011: Parsing Error (1011):
        systemID:  'file:///C:/Users/c-sds/Desktop/ALC/'
        publicID:  ''
        line:    
        column:    !
    Form version is higher than target version. This form may not run properly on target.
    Xml:
    Xml:
    <Correspondance>
    <Header>
    <CaseNo>Record ID:  02/9441926</CaseNo>
    <Barcode>*90002425393011</Barcode>
    <CAOAddress>
    <Name>SOUTHERN</Name>
    <Address>
    <AddressLine1>Linetest2</AddressLine1>
    <AddressLine2>Linetest1</AddressLine2>
    <city>XXXX</city>
    <state>xx</state>
    <zip>xxxxx</zip>
    <Replyzip>xxxxx-xxxx</Replyzip>
    </Address>
    <PhoneNo>412-565-2232</PhoneNo>
    <FaxNo>412-565-5179</FaxNo>
    </CAOAddress>
    <MailDate>Mail Date:  04/05/2013</MailDate>
    <ClientAddress>
    <Name>\b.INTERNET EXPLORER\b0.</Name>
    <PaymentName></PaymentName>
    <AlternateName></AlternateName>
    <Address>
    <AddressLine1>19</AddressLine1>
    <AddressLine2></AddressLine2>
    <city>ASDF</city>
    <state>xx</state>
    <zip>1xxx5</zip>
    </Address>
    <PhoneNo></PhoneNo>
    </ClientAddress>
    </Header>
    <Correspondance>
    my xsl:
    <?xml version="1.0"?>
    <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
    <xsl:template match="Header">
          <xsl:text>CaseNo</xsl:text>&nl;
        <xsl:if test="//Correspondance/Header/CaseNo">
          <xsl:value-of select="//Correspondance/Header/CaseNo"/>&nl;
        </xsl:if>
                </xsl:template>
                </xsl:stylesheet>
    i am just trying ot field by field in xsl but it doest seem to work any way
    Thanks in Advance
    V sri

    Hi,
    I have a dynamic form (.xdp), an .xml data file binded to it, we need to make many manupulations to the text (the below xml does not have much text to show but that is our purpose)(i.e) to show partial bolds in some sentences etc, we figured out that this is not possible to manipulate the text in XML , so we thought of using XSL to overcome, but here comes the real problem,
    i am starting it with real basic xsl-- used  The option Trnsforming Incomimg data, but when i try to preview the .pdf from the designer it throws
    XSLT parsing error 1011: Parsing Error (1011):
        systemID:  'file:///C:/Users/c-sds/Desktop/ALC/'
        publicID:  ''
        line:    
        column:    !
    Form version is higher than target version. This form may not run properly on target.
    Xml:
    Xml:
    <Correspondance>
    <Header>
    <CaseNo>Record ID:  02/9441926</CaseNo>
    <Barcode>*90002425393011</Barcode>
    <CAOAddress>
    <Name>SOUTHERN</Name>
    <Address>
    <AddressLine1>Linetest2</AddressLine1>
    <AddressLine2>Linetest1</AddressLine2>
    <city>XXXX</city>
    <state>xx</state>
    <zip>xxxxx</zip>
    <Replyzip>xxxxx-xxxx</Replyzip>
    </Address>
    <PhoneNo>412-565-2232</PhoneNo>
    <FaxNo>412-565-5179</FaxNo>
    </CAOAddress>
    <MailDate>Mail Date:  04/05/2013</MailDate>
    <ClientAddress>
    <Name>\b.INTERNET EXPLORER\b0.</Name>
    <PaymentName></PaymentName>
    <AlternateName></AlternateName>
    <Address>
    <AddressLine1>19</AddressLine1>
    <AddressLine2></AddressLine2>
    <city>ASDF</city>
    <state>xx</state>
    <zip>1xxx5</zip>
    </Address>
    <PhoneNo></PhoneNo>
    </ClientAddress>
    </Header>
    <Correspondance>
    my xsl:
    <?xml version="1.0"?>
    <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
    <xsl:template match="Header">
          <xsl:text>CaseNo</xsl:text>&nl;
        <xsl:if test="//Correspondance/Header/CaseNo">
          <xsl:value-of select="//Correspondance/Header/CaseNo"/>&nl;
        </xsl:if>
                </xsl:template>
                </xsl:stylesheet>
    i am just trying ot field by field in xsl but it doest seem to work any way
    Thanks in Advance
    V sri

  • Tranforming xml in struts giving exception

    Hi,
    I am using ajax with struts. I have to transform xml into html using xsl stylesheet at server side and send the response to the client.
    I am using Transformer for the xml transformation. The whole transformation works fine in a simple java application but when i use it in strut framework it throw exception "could not compile style sheet". Following is the code written in the action class of the struts.
    /************ code ***************/
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    try
    StreamSource source = new StreamSource("data.xml");
    StreamSource style = new StreamSource("page.xsl");     
    StreamResult result = new StreamResult(out);
    TransformerFactory transFactory = TransformerFactory.newInstance();
    Transformer transformer = transFactory.newTransformer(style);
    return null;
    catch (Exception e)
    e.printStackTrace(out);
    /************ stack trace **************/
    javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:824) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:619) at RSSFeed.Transformxml.execute(Transformxml.java:80) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)
    I am very much new to java and just can't figure out whats wrong. Can anyone tell me the mistake or suggest any other alternative. I need help fast. I shall really appreciate it.
    Thanx

    I stuck with this same issue today and managed to resolve:
    I removed all the Temp files in the server work directory (I use JBoss 4.0) and when restarted it works

Maybe you are looking for

  • Install new 500 GB in my macbook pro

    I Have MacBook pro A1278 with 250GB HD, I need to install new 500GB HD, what is the fastest and best brand? (part number will be helpful) OS 10.6.8 Thank you, 

  • Programmatically change tab page label font size

    Hellow Fellow LabVIEW Lovers, I thought this subject was easy with LV2009, somehow I cannot find the property for the "tab page label font size", yes, i also looked with the "pages" ref array from the tab ref, also no luck. Could someone point me to

  • Is there any way to upload music without itunes?

    Itunes isnt working for my ipod nano at the moment. Do i HAVE to use itunes? Or is there another method to upload songs?

  • ITunes won't sync music on new computer

    I recently bought a new laptop and copied my entire iTunes library onto it. I've also registered my device onto this computer. So I plug my iPhone in, click on my device on iTunes, then go to the music tab and click on Sync..and after syncing is comp

  • Changing cell numbers after activating with AT&T

    Okay. I have a family plan with 3 lines with AT&T. Can I activate my iPhone using Line 1, then later pass that same iPhone to my wife, but change its phone number to her cell number, Line 2? YoungTurk