String to XML Safe String encoding?

I have a string that I'm 99.99999% sure will never have come from anything but a BigDecimal.toString, but is till want to make sure I don't break my XML if something changes later down the line....so.
Are there any premade utilities out there that will take in a normal old string and make it XML safe (ie escape out all the (< > /) stuff??
Is there something in Xerxes?

Normally, you'd build up your XML document as a DOM, and let the serializer do all the escaping (classes in javax.xml.transform). The only problem is that the standard serializer wants to output entire XML subtrees. You can do a single element, which may be sufficient.
The JDK 1.5 XML support is Xerces, but as far as I know there's no (easy) way to get inside the implementation even if you explicitly use Xerces. DOM4J does provide an XMLWriter class that does appear to let you output just text.
I'm not sure if that's what you really want, though. Are you concerned that someone will give you XML that has "foobar" where you expect a decimal value? Or that you'll write that XML? In that case, you probably want to pass the XML though a Schema validator before processing it / handing it out.

Similar Messages

  • Problem in Casting the encoded string to XML

    Hi all,
    From dotnet code i have encoded the XML as string and passed this value as XML attribute value in below.
    Am not sure if we can have XML as attribute value inside another XML.hence i did with below approach.
    Now i have special character '<' in that please refer yellow highlighted.this was having problem in casting to XML.
    Kindly assist me.
    Thanks in advance. 
    DECLARE @XML
    XML                       
    SET @XML
    = '<Utility><Actions><Action Category="ExecuteSp" SettingName="GetDMS" ComponentId="19">
    <Parameters Param="SourceXML" Value="&amp;lt;NewDataSet&amp;gt;&amp;lt;Table1&amp;gt;&amp;lt;DocumentName&amp;gt;US OB
    &amp;amp;lt; 14 Weeks /Transvaginal&amp;lt;/DocumentName&amp;gt;&amp;lt;/Table1&amp;gt;&amp;lt;/NewDataSet&amp;gt;" /></Action></Actions></Utility>'            
    Declare @SourceDMSXML
    as varchar(max)                          
    SELECT 
    @SourceDMSXML = @XML.value('(/Utility/Actions/Action/Parameters[@Param = "SourceXML"]/@Value)[1]','varchar(max)')               
    SET @SourceDMSXML
    = Replace(@SourceDMSXML
    , '&amp;lt;',
    '<');                   
    SET @SourceDMSXML
    = Replace(@SourceDMSXML
    , '&amp;gt;',
    '>');      
    SET @SourceDMSXML
    = Replace(@SourceDMSXML
    , '&lt;',
    '<');                   
    SET @SourceDMSXML
    = Replace(@SourceDMSXML
    , '&gt;',
    '>'); 
    DECLARE @SourceXML
    XML                          
    SET @SourceXML
    = CAST(@SourceDMSXML
    AS XML)    
    select  
    @SourceXML  

    How are you generating this value? You need to use TYPE directive for avoiding this
    see similar example here
    http://visakhm.blogspot.in/2014/01/rowset-concatenation-with-special.html
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • String to XML using XSLT..

    Hey folks
    Am having a XML in a single string in ma request and wanna convert that into a XML. Tried that using XSLT but seems am missing out on some point...It works fine with Stylus but fails within PI 
    Following code am using :
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://www.sdn.com/xslt">
    <xsl:output method="xml" omit-xml-declaration="yes"/>
       <xsl:template match="/">
            <xsl:for-each select="//*:string">
             <xsl:value-of select="." disable-output-escaping="yes"/>
          </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    The name of the element in which i get the whole XML is  "string".
    My request string is something liek this :
    <xml version="1.0" encoding="UTF-8"?><ProductDefinition><RefNo>23232323</RefNo><Description>dfdfdfdfdf</Description></ProductDefinition>
    Now am trying to generate a XML using the XSL but its failing in PI...
    Kindly point out where am i going wrong?

    Thanks, but graphical mapping does not expose <![CDATAhttp:// ... ] to be removed. Surely this must be done with XSLT?+
    Don't worry about <![CDATA ... pass your whole string in source message like this : <![CDATAhttp://<?xml version=\"1.0\" encoding=\"UTF-8\"?><ProductDefinition><RefNo>12345</RefNo><Description>Test</Description></ProductDefinition>]>
    1st the graphical mapping where you use replace string will replace <?xml version=\"1.0\" encoding=\"UTF-8\"?>  and then the XSLT mapping would get a input like this : <![CDATAhttp://<ProductDefinition><RefNo>12345</RefNo><Description>Test</Description></ProductDefinition>]> which would eventually form your target structure...
    I tried it myself few days back so its a sure shot method ... just try it 
    Cheers!!!
    Soumen 

  • String to XML

    Hi everyone,
    i'm just writing a method, that gets a string and a XPath and want writes the string to the specific XPath in my xml document. The problem ist, that the string itself can contain nodes like (e.g. <image> or something else from my dtd, so i got some problems converting the string to xml. Actually i'm trying this:
         public static void setEditFragment(String content, String xPath) throws Exception {
             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
             DocumentBuilder builder  = factory.newDocumentBuilder();
             Document document = builder.parse("data.xml");
             XPath xpath = XPathFactory.newInstance().newXPath();
             Node node = (Node)xpath.evaluate(xPath, document, XPathConstants.NODE);
             System.out.println(content);
             node.setTextContent(content);
             // Use a XSLT transformer for writing the new XML file
                Transformer transformer = TransformerFactory.newInstance().newTransformer();
                // Set output to IsoLatin1
                transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
             DOMSource        source = new DOMSource( document );
             FileOutputStream os     = new FileOutputStream("tmp.xml");
             StreamResult     result = new StreamResult( os );
             transformer.transform( source, result ); 
         }but of course this will not work and sets up some cryptic signs in mein xml document....
    can anyone give me advice ?
    Thanks !

    Well, if you already have the data XML encoded, then just write them to a file:
    http://java.sun.com/docs/books/tutorial/essential/io/index.html
    Make sure you encode the data with UTF8:
    http://java.sun.com/javase/6/docs/api/java/lang/String.html#getBytes(java.lang.String)
    Write "<?xml version="1.0" encoding="utf-8"?>" before the data!
    Note however, I generally don't recommend to write XML data by hand. Rather use a framework like JAXB.
    -Puce
    Edited by: Puce on May 8, 2008 1:36 PM

  • XML string to XML parsing in JCD

    I have stored an XML file as a CLOB in the Oracle DB. While fetching this data into JCD using Oracle OTD, I am getting this CLOB field as a string containing the XML. Now I want to parse this XML string to XML, as I need to map the individual fields to an XSD OTD, which will be my output.
    Kindly suggest a way to achieve this.

    An XSD OTD has an unmarshalFromString() method:
    inputFormat.unmarshalFromString( strData );
    When putting the XML into the CLOB it could be a good idea to wrap an outputstream into a Writer object in order to make certain that the encoding is correct, depending how the data is represented. When retrieving CLOB data using getCharacterStream() you will get a Reader object where the encoding is already given.

  • String to XML conversion without fatal error?

    Can one of you tell me how to convert the folowing string to XML without fatal error?
    String s1 = "<?xml version="1.0" encoding="UTF-6.0"?> <Main> <sub> 12345 </sub> </Main>".

    First, you can't have double quotes (") in a string like that, you need to do (\") instead. If you wrote the below line and saved the file as a file_name.xml It should work fine.
    import java.io.*;
    public class yourclass{
         public static void writeXML(){
              try{
                   File xmlOut = new File("file_name.xml");
                   BufferedWriter xmlWriter = new BufferedWriter(new FileWriter(xmlOut));
                   String s1 = "<?xml version=\"1.0\" encoding=\"UTF-6.0\"?> <Main> <sub> 12345 </sub> </Main>";
                   // you can concatenate the strings using a + 
                   // the \n will create a new line in the file
                   String s2 = "<?xml version=\"1.0\" encoding=\"UTF-6.0\"?>" + "\n" +  "<Main> <sub> 12345 </sub> </Main>";
                   xmlWriter.write(s1);
                   xmlWriter.close();
              }catch(Exception ex){
                   ex.printStackTrace();
    }There are a few other ways to do this, the one above is sloppy. One is XStream to convert xml to Java objects and back again. http://xstream.codehaus.org/tutorial.html

  • Converting string to XML

    Dear All,
    I am using PI 7.1
    I am trying to invoke a third party SOAP API which accepts request in the form of a string which has embedded xml and also return a string which has xml embedded in it.
    To send the xml as string, I used the feature "Retun as XML" in mapping and it worked fine.
    But the response which has xml embedded, needs to be converted back to XML message.
    I understand that we can write parsers in java, ABAP and also do XSLT mapping.
    Just wanted to know that is there any "out of the box" feature to do the same.
    Please refrain from providing links to java mappings or xslt as I have gone through them already.
    regards,
    Piyush

    Hi Piyush,
                      All parsers will fail to parse the XML message you are getting. Since you are getting the following tag twice within the XMl
    "<?xml version="1.0"?>"
    This tag can be present in an document only once in begining of the document. First you need to remove this tag from appearing in source.
    Suppose you are able to do that then your XML structure will become something like this
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <ns1:AuthenticateResponse xmlns:ns1="urn:Login" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
    <return xsi:type="xsd:string"><MessageResponse sessionid=";jsessionid=FxZLTxtJnXJttpW6gMhJ06kyn00tfSgjt9ZwbzJ55CXGn92S8L6f!-444760742!1311845684753" status="SUCCESS" topicprefix="ND-DSK-117.CXL_HMEL_DB"><Entity name="REF_PERSON"><Property name="last_access_dt" value="20110728145937" type="DATE"/><Property name="modify_person_num" value="21" type="INTEGER"/><Property name="persontopic" value="350523952" type="STRING"/><Property name="login_result_ind" value="0" type="INTEGER"/><Property name="login_result_reason" value="" type="STRING"/><Property name="bypass_drafts" value="0" type="STRING"/><Property name="stl_check_swap_option_pricing_end" value="1" type="BOOLEAN"/><Property name="stl_update_provisional_cashflows" value="0" type="BOOLEAN"/><Property name="stl_autoinvoice_costs" value="1" type="BOOLEAN"/><Property name="stl_allow_payments_from_agents" value="0" type="BOOLEAN"/><Property name="stl_payment_allocation_at_invoice_detail_level" value="1" type="BOOLEAN"/><Property name="last_db_reloaded_on" value="" type="DATE"/><Property name="xl_mode_ind" value="0" type="INTEGER"/><Property name="Xchange_enabled" value="1" type="INTEGER"/><Property name="Xchange_server" value="XCHANGE" type="STRING"/><Property name="ipaddress" value="10.60.4.80" type="STRING"/><Property name="appname" value="CommodityXL" type="STRING"/><Property name="version" value="7.XL7.08.17E" type="STRING"/><Property name="econfirm.server.enabled" value="0" type="BOOLEAN"/></Entity></MessageResponse></return>
    </ns1:AuthenticateResponse>
    Then you can use the following java mapping code to remove the SOAP envelop.
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    public class RemoveSoapEnvelopSDN implements StreamTransformation{
    public void execute(InputStream in, OutputStream out)
    throws StreamTransformationException {
    try
         DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
         DocumentBuilder builderel=factory.newDocumentBuilder();
         /*input document in form of XML*/
         Document docIn=builderel.parse(in);
         /*document after parsing*/
         Document docOut=builderel.newDocument();
         TransformerFactory tf=TransformerFactory.newInstance();
         Transformer transform=tf.newTransformer();
         Element root;
         Node p;
         NodeList l;
         int mm,n1;
         //if you need to include namespace use next two lines
         //root=docOut.createElement("ns0:MessageResponse");
         //root.setAttribute("xmlns:ns0","http://connectsystems.be/MAINFR/AccDocument");
         root=docOut.createElement("MessageResponse");
         p=docIn.getElementsByTagName("MessageResponse").item(0);
         l=p.getChildNodes();
         n1=l.getLength();
         for(mm=0;mm<n1;++mm)
              Node temp=docOut.importNode(l.item(mm),true);
              root.appendChild(temp);
         docOut.appendChild(root);
         transform.transform(new DOMSource(docOut), new StreamResult(out));
    catch(Exception e)
         e.printStackTrace();
    public void setParameter(Map arg0) {
    public static void main(String[] args) {
    try{
         RemoveSoapEnvelopSDN genFormat=new RemoveSoapEnvelopSDN();
         FileInputStream in=new FileInputStream("C:\\Apps\\my folder\\sdn\\sdn6.xml");
         FileOutputStream out=new FileOutputStream("C:\\Apps\\my folder\\sdn\\removedEnvelopSdn6.xml");
         genFormat.execute(in,out);
    catch(Exception e)
    e.printStackTrace();
    You can add attributes to the tags as per your requirement. I have commnented those lines in the java code.
    The output will look like this
    http://postimage.org/image/2b2czww90/
    Hope this helps.
    Regards
    Anupam

  • Converting String To XML Format and send as attachment

    Hi
    My requirement is to convert String into XML Format and that XML File i have to send as an attachment
    can any one one give solution for this Problem.
    Thank you
    Venkatesh.K

    hi,
    i m filling the itab first and converting to xml
    itab contaning these data
    GS_PERSON-CUST_ID   = '3'.
    GS_PERSON-FIRSTNAME = 'Bill'.
    GS_PERSON-LASTNAME  = 'Gates'.
    APPEND GS_PERSON TO GT_PERSON.
    GS_PERSON-CUST_ID   = '4'.
    GS_PERSON-FIRSTNAME = 'Frodo'.
    GS_PERSON-LASTNAME  = 'Baggins'.
    APPEND GS_PERSON TO GT_PERSON.
    after conversion data is coming like that
    #<?xml version="1.0" encoding="utf-16"?>
    <CUSTOMERS>
      <item>
        <customer_id>0003</customer_id>
        <first_name>Bill</first_name>
        <last_name>Gates</last_name>
      </item>
      <item>
        <customer_id>0004</customer_id>
        <first_name>Frodo</first_name>
        <last_name>Baggins</last_name>
      </item>
    </CUSTOMERS>
    but errors are  1) # is coming at the first
                            2)for 'encoding="utf-16"?>', it is not coming perfectly, some other data (iso-8859-1) should come here
    can anybody plz solve it.
    regards,
    viki

  • XML to string using xslt or java mapping

    Hi Experts,
    I want to put xml into string and i need to change lessthan symbol to "&lt"   and greaterthan symbol to "&gt" , can anyone please help me how to do this??? can you provide code for java mapping or XSLT mapping to achive this.
    SOURCE
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:source_mt xmlns:ns0="urn:ppp:prototype">
       <row>
          <name1>IT</name1>
          <name2>SOLUTIONS</name2>
       </row>
    </ns0:source_mt>
    TARGET
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:target_mt xmlns:ns0="urn:ppp:prototype">
       <row>
          <Body>"&lt"name1"&gt" IT"&lt"/name1"&gt" "&lt"name2"&gt" SOLUTIONS"&lt";/name2"&gt" </Body>
       </row>
    </ns0:target_mt>

    Hi ,
          here is the XSLT code to obtain the desired output
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml"/>
    <xsl:template match="/">
    <ns0:target_mt xmlns:ns0="urn:ppp:prototype">
         <xsl:for-each select="//row">
              <row>
                   <Body>
                        <xsl:for-each select="name1">
                                  <xsl:value-of select="concat('*&quot;&lt;&quot;name1&quot;&gt;&quot;*',normalize-space(.),'*&quot;&lt;&quot;/name1&quot;&gt;&quot;*')"></xsl:value-of>
                        </xsl:for-each>     
                        <xsl:for-each select="name2">
                                  <xsl:value-of select="concat('*&quot;&lt;&quot;name2&quot;&gt;&quot;*',normalize-space(.),'*&quot;&lt;&quot;/name2&quot;&gt;&quot;*')"></xsl:value-of>
                        </xsl:for-each>
                   </Body>
              </row>
         </xsl:for-each>
    </ns0:target_mt>      
    </xsl:template>
    </xsl:stylesheet>
    output produced as viewed in browser is
    http://postimage.org/image/1lqbgw8kk/
    Now to obtain exactly the output you posted earlier here is the code
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml"/>
    <xsl:template match="/">
    <ns0:target_mt xmlns:ns0="urn:ppp:prototype">
         <xsl:for-each select="//row">
              <row>
                   <Body>
                        <xsl:for-each select="name1">
                                  <xsl:value-of select="concat('*&quot;&amp;lt&quot;name1&quot;&amp;gt&quot;*',normalize-space(.),'*&quot;&amp;lt&quot;/name1&quot;&amp;gt&quot;*')"></xsl:value-of>
                        </xsl:for-each>     
                        <xsl:for-each select="name2">
                                  <xsl:value-of select="concat('*&quot;&amp;lt&quot;name2&quot;&amp;gt&quot;*',normalize-space(.),'*&quot;&amp;lt&quot;/name2&quot;&amp;gt&quot;*')"></xsl:value-of>
                        </xsl:for-each>
                   </Body>
              </row>
         </xsl:for-each>
    </ns0:target_mt>      
    </xsl:template>
    </xsl:stylesheet>
    output you can see from link below
    http://postimage.org/image/2c7bzo478
    Hope this helps.
    Hi,
        Could you please kindly let us know if the solution is working properly as per your requirement?
    regards
    Anupam
    Edited by: anupamsap on Jul 26, 2011 6:29 AM
    Edited by: anupamsap on Jul 26, 2011 4:10 PM

  • String to xml object java

    Hello,
    can anyone suggest me how to convert string to xml object in java?
    I have a string (Data) ant now I have to pass it as parameter as xml object, which structure should be:
    <MGWData>Data</MGWData>
    Where I surf I always see only solutions for converting string to xml document, but never to xml object.
    maybe the problem is I don't completely understand what xml object is in first place :/
    Any answer would help.
    Thanks.

    894871 wrote:
    here is the method to call:
    +/**+
    * Sets the p_DATAXMLTYPEIN value for this SVARCHAR2INSERT_RECEIVESInput.
    *+
    * @param p_DATAXMLTYPEIN
    *public void setP_DATAXMLTYPEIN(com.oracle.xmlns.orawsv.SISTEMA_MOKA.MGW_PUBLIC_FUNCTIONS.SVARCHAR2INSERT_RECEIVESInputP_DATAXMLTYPEIN p_DATAXMLTYPEIN) {*
    this.p_DATAXMLTYPEIN = p_DATAXMLTYPEIN;
    one of the classes contains:
    *public class SVARCHAR2INSERT_RECEIVESInputP_DATAXMLTYPEIN  implements java.io.Serializable, org.apache.axis.encoding.AnyContentType {*
    *private org.apache.axis.message.MessageElement [] _any;*
    this method and some classes where generated using eclipse and wsdl file by creating web service client.
    wsdl says for that part: *<xsd:element name="P_DATA-XMLTYPE-IN">*
    So I suppose it should involve smth org.apache.axis.message.MessageElement. But when I create any type of parameter, it gives me error:
    + ....cannot be cast to com.oracle.xmlns.orawsv.SISTEMA_MOKA.MGW_PUBLIC_FUNCTIONS.SVARCHAR2INSERT_RECEIVESInputP_DATAXMLTYPEIN+
    I am new in web service stuff so thank you for response.Can you explain in plain English what you are trying to do? Or provide a [url http://sscce.org/]SSCE.

  • Convert XML string into XML

    Hi All,
    Can you please let me know for any sample code in xslt/java mapping for converting XML string into XML. We use SAP Pi 7.0
    My XML string starts like this
    <?xml version="1.0" encoding="UTF-8" ?> 
    - <ns0:MT_ReceiverFileStructure <namespace>"><Output><?xml version="1.0" encoding="ISO-8859-9"?><?xml-stylesheet type="text/xsl" href="<xsl>"?><Tarih_Date Tarih="11.09.2014" Date="09/11/2014>
       Thanks,
       Pavithra

    Thanks Praveen. It worked.
    However, the xml i have is an extract from a exchange rate URL and it has the reference to a xsl in it as below
    <?xml version="1.0" encoding="ISO-8859-9"?><?xml-stylesheet type="text/xsl" href="<ABC.xsl>"?>.
    So there is an error in sxmb_moni. Is it possible to remove this.

  • How to handle xml CDATA string element when OSB calling a webservice

    Hi
    Right, I'm new to OSB so bear with me.
    The following is a response from am operation in a webservice.
    As you can see there is a CDATA string in "<m:return>" element. I want to transform the CDATA string to XML.
    I have searched the forum and found a couple of similar queries and tried following the answers and this is what I'm getting.
    Please advise as to where I have gone wrong and how I can correct it.
    <env:Body xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
         <m:ReservationCancelResponse xmlns:m="http://domain/jws">
              <m:return>
                   <![CDATA[<?xml version="1.0" encoding="UTF-8"?><ReservationCancelNegativeAck><MessageId>HGv2OWS6hq</MessageId><ReservationNum>1234</ReservationNum><CsrId></CsrId><ErrorCode>02</ErrorCode><ErrorMessage>Reservation '1234' does not exist.</ErrorMessage></ReservationCancelNegativeAck>]]>
              </m:return>
         </m:ReservationCancelResponse>
    </env:Body>
    In my response pipeline I have an Assign and Replace action.
    My Assign is:
    Expression: fn-bea:inlinedXML($body)
    Variable: reservationCancelReponse
    When I log $reservationCancelReponseI get... so this bit is OK.
    <ReservationCancelNegativeAck>
    <MessageId>HGv2OWS6hq</MessageId>
    <ReservationNum>1234</ReservationNum>
    <CsrId/>
    <ErrorCode>02</ErrorCode>
    <ErrorMessage>Reservation '1234' does not exist.</ErrorMessage>
    </ReservationCancelNegativeAck>
    My Replace
    XPath: executeResponse/executeReturn/text()
    In Variable: body
    Expression: responseTransform.xq (binding with $reservationCancelReponse)
    Replace Node Contents is checked
    When I test the operation using the proxy service I get the following:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
    <m:ReservationCancelResponse xmlns:m="http://com/ventyx/abws/jws">
    <m:return>
    &lt;?xml version="1.0" encoding="UTF-8"?>&lt;ReservationCancelNegativeAck>&lt;MessageId>HGv2OWS6hq&lt;/MessageId>&lt;ReservationNum>1234&lt;/ReservationNum>&lt;CsrId>&lt;/CsrId>&lt;ErrorCode>02&lt;/ErrorCode>&lt;ErrorMessage>Reservation &amp;apos;1234&amp;apos; does not exist.&lt;/ErrorMessage>&lt;/ReservationCancelNegativeAck>
    </m:return>
    </m:ReservationCancelResponse>
    </env:Body>
    </env:Envelope>
    The CDATA string hasn't been transformed.
    Please help. What I have I missed.
    Thanks in advance.
    MI

    OK
    I have made some amendments to the original process and made some progress but still isn't quite right.
    I have created a schema:
    <complexType name="ReservationCancelNegativeAckType">
         <sequence>
                   <element name="MessageId" minOccurs="0">
                        <annotation>
                             <documentation>
                             </documentation>
                        </annotation>
                        <simpleType>
                             <restriction base="string" />
                        </simpleType>
                   </element>
                   <element name="ReservationNum" minOccurs="0">
                        <annotation>
                             <documentation>
                             </documentation>
                        </annotation>
                        <simpleType>
                             <restriction base="string" />
                        </simpleType>
                   </element>
                   <element name="CsrID" minOccurs="0">
                        <annotation>
                             <documentation>
                             </documentation>
                        </annotation>
                        <simpleType>
                             <restriction base="string" />
                        </simpleType>
                   </element>
                   <element name="ErrorCode" minOccurs="0">
                        <annotation>
                             <documentation>
                             </documentation>
                        </annotation>
                        <simpleType>
                             <restriction base="string" />
                        </simpleType>
                   </element>
                   <element name="ErrorDescription" minOccurs="0">
                        <annotation>
                             <documentation>
                             </documentation>
                        </annotation>
                        <simpleType>
                             <restriction base="string" />
                        </simpleType>
                   </element>
         </sequence>
    </complexType>
    <element name="ReservationCancelNegativeAckType"
         type="tns:ReservationCancelNegativeAckType">
    </element>
    I have amended the earlier Assign action to use an XQ to extract the CDATA string into the schema
    My Assign is:
    Expression: responseToSchema.xq
    Variable: reservationCancelReponse
    When I log $reservationCancelReponse variable I get... so this bit is OK.
    <ReservationCancelNegativeAck>
    <MessageId>HGv2OWS6hq</MessageId>
    <ReservationNum>1234</ReservationNum>
    <CsrId/>
    <ErrorCode>02</ErrorCode>
    <ErrorMessage>Reservation '1234' does not exist.</ErrorMessage>
    </ReservationCancelNegativeAck>
    I have also changed my Replace, this time I am using an XQ which will map the schema to the XSD WSDL "ReservationCancelResponse"operation.
    XPath: .
    In Variable: body
    Expression: responseFromSchemaToService.xq (binding with $reservationCancelReponse)
    Replace Node Contents is checked
    XSD WSDL is:
    <xsd:element name="ReservationCancelResponse"
         type="tns:ReservationCancelResponseType">
    </xsd:element>
    <xsd:complexType name="ReservationCancelResponseType">
         <xsd:sequence>
              <xsd:element name="ResponseCode"
                   type="xsd:string">
              </xsd:element>
              <xsd:element name="ResponseDescription"
                   type="xsd:string">
              </xsd:element>
              <xsd:element name="MessageID" type="xsd:string">
              </xsd:element>
              <xsd:element name="ReservationNum" type="xsd:string">
              </xsd:element>
              <xsd:element name="CsrId" type="xsd:string">
              </xsd:element>
              <xsd:element name="ErrorCode" type="xsd:string"
                   minOccurs="0">
              </xsd:element>
              <xsd:element name="ErrorDescription" type="xsd:string" minOccurs="0"></xsd:element>
         </xsd:sequence>
    </xsd:complexType>
    This time the response is better but not right.
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"/>
    <env:Body xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <app:ReservationCancelResponse xmlns:app="http://www.example.org/AppointmentService/">
    <ResponseCode>0</ResponseCode>
    <ResponseDescription/>
    <MessageID/>
    <ReservationNum/>
    <CsrId/>
    </app:ReservationCancelResponse>
    </env:Body>
    </soapenv:Envelope>
    As you can see the tags are empty. (For info: The "ResponseCode" and "ResponseDescription" are constants)
    Where have I gone wrong?

  • Include xml from string

    If this xml would have been in file I could have used following code:
    <?xml version="1.0" encoding='WINDOWS-1252'?>
    <?xml-stylesheet type="text/xsl" href="t.xsl" ?>
    <page xmlns:xsql="urn:oracle-xsql">
    <xsql:include-xsql href="order_id_seq.xsql" reparse="no" />
    <xsql:include-xml href="order.xml"/>
    </page>
    But i will be getting xml as string .so could you please tell me how can i include a xml which i will be receiving as a string in xsql .
    Thanks

    I would like to correct the version informaiton. We are using SUN JAVA WEBSERVICES DEVELOPERS PACK (JWSDP1.1).
    Nathan

  • Need help: String to XML

    Hi everyone,
    Im looking for some assistance regarding string to xml. I wanted to extract the xml from the field 'sendDataReturn'. Is my xsl script correct?
    XML in String
    <sendDataResponse xmlns="http://service.aes.cust.mic.at" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <sendDataReturn><b><?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <MicExportResponseMessage xmlns="http://www.mic-cust.com/Webservice/MicExportWS/v1.1"><Connection><connectionID>MICWEBSERVICE</connectionID><partnerID>SAPKLD400</partnerID><dateTime>2008-12-12T09:35:40</dateTime></Connection><Messages><Message><Envelope><messageID>1</messageID><partyID>01</partyID><schemaID>V 1.0 B01</schemaID><sequenceNum>1</sequenceNum><transActionID>970002570-01-TR-V3</transActionID></Envelope><Detail><actionCode><code>ER</code></actionCode><error><errorSource>MIC</errorSource><errorCode>106615</errorCode><errorType>ERR</errorType><errorText>Objekt ist schon in der Datenbank vorhanden</errorText></error></Detail></Message></Messages></MicExportResponseMessage></b></sendDataReturn>
      </sendDataResponse>
    XSL SCRIPT
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://service.aes.cust.mic.at">
    <xsl:template match="/">
    <xsl:for-each select="//sendDataReturn">
    <xsl:value-of select="." disable-output-escaping="yes"/>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    Thanks

    Hi
    In order to apply an xsl your input needs to be valid xml. In your example this starts at the XML declaration
    <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
    <MicExportResponseMessage xmlns="http://www.mic-cust.com/Webservice/MicExportWS/v1.1">
         <Connection>
              <connectionID>MICWEBSERVICE</connectionID>
              <partnerID>SAPKLD400</partnerID>
              <dateTime>2008-12-12T09:35:40</dateTime>
         </Connection>
         <Messages>
              <Message>
                   <Envelope>
                        <messageID>1</messageID>
                        <partyID>01</partyID>
                        <schemaID>V 1.0 B01</schemaID>
                        <sequenceNum>1</sequenceNum>
                        <transActionID>970002570-01-TR-V3</transActionID>
                   </Envelope>
                   <Detail>
                        <actionCode>
                             <code>ER</code>
                        </actionCode>
                        <error>
                             <errorSource>MIC</errorSource>
                             <errorCode>106615</errorCode>
                             <errorType>ERR</errorType>
                             <errorText>Objekt ist schon in der Datenbank vorhanden</errorText>
                        </error>
                   </Detail>
              </Message>
         </Messages>
    </MicExportResponseMessage>
    To Output all the inpit xml see here use the xsl:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://service.aes.cust.mic.at">
         <xsl:template match="node()|@*">
              <xsl:copy>
                   <xsl:apply-templates select="@*|node()"/>
              </xsl:copy>
         </xsl:template>
    </xsl:stylesheet>
    It looks like you are trying to extract the xml from a syschronous call response, the xsl above may bot be the entire solution but a atarting point at least to extract data, tags included .. you can eaisly test this in a xsl tool such as xml spy (there is a trial version) ..

  • Write indented  XML with string

    Hi people, I know that are many topics, but i didn't find one solution.
    I have that String
    <?xml version="1.0" encoding="UTF-8"?>
    <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
    <wsp:ExactlyOne>
    <wsp:All/>
    </wsp:ExactlyOne>
    </wsp:Policy>and I would to transform that with this code
    public String generateIndentedXML(){
              //The method should get the XML code from the generateXML() method
              //and then do the changes (add the indentation) on that string
              TransformerFactory tf = TransformerFactory.newInstance();
              tf.setAttribute("indent-number", 4);
              OutputStream os = new ByteArrayOutputStream();
              String m = generateXML().replaceAll("\n", "\r");
              String s = "";
              try{
                   Transformer t = tf.newTransformer();
                   t.setOutputProperty(OutputKeys.INDENT,"yes");
                   StreamSource source = new StreamSource(new ByteArrayInputStream(m.getBytes()));
                   StreamResult result = new StreamResult(os);
                   t.transform(source,result);
                   s= result.getOutputStream().toString();
              catch(Exception ex){
                   System.out.print(ex+"bla");
              return s;
         }But it didn't work, somebody has the solution for my problem?

    If all you want to do is format the XML, then the easiest thing to do is use xmllint (a command-line utility) and don't write a Java program at all.
    If you must write the Java code yourself...then I don't think you need to create a transformation if all you want to do is format the code. IIRC, transformations are for changing the structure of the XML tree, not for pretty-printing.

Maybe you are looking for

  • Can I use a camera for application in Labview and VBAI at the same time ?

    Dear all, I'm trying to save an AVI file with Labview and make an image process with VBAI at the same time, in one machine. The error : "Camera already in use" displayed. My Camera is a GIGE and I work with Imaqdx. I've test the multicast mode but it

  • FILE to multiple BAPI/RFC calls

    Hi, I have one input source (CSV with about 100 rows) and I wish to call a custom rfc for each row in my spreadsheet. (The custom RFC has a single flat import structure as opposed to a table or anything complex). I am struggling to do this in XI. I a

  • Importing Word Docs after recent upgrade

    I have RoboHelp Version 8.0.2.208 and importing Word docs (Word 2003 Pro) had worked perfectly. Recently, I leapt forward a couple versions to Word 2010 Pro and now when I try to import Word docs, I get the "Import Word Document Wizard cannot locate

  • I want to clean out my macBrook pro for my daughter to use in college

    I have a macBook pro I want to clean out, would it be better to take it to the apple counter or do it myself?  If doing it myself, simple simple pls, how do I go about it?

  • How to add WebDynpro (for Java) to iView in CE 7.1

    Hi experts, Currently trying CE 7.1 SP3. I have created the Web Dynpro project and wanted to add it in iView and subsequently to the Page. However, there isn't a Web Dynpro for Java  iView template selection. How do i add the web dynpro for Java to i