XML data - charset encoding problem

Hello all,
  I am facing an issue on charset encoding. My requirement is to send an XML and read the the output XML to display the output. The output XML is encoded in "ISO-8859-1" and we are retrieving/reading it in "UTF-8". But some special characteres in the output XML are appearing as it is.
  Could some one let me know on how to obtain the desired characters.
Code snippet while reading the XML:
BufferedReader inStream = null;
BufferedWriter outStream = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(),"UTF-8"));
inStream =
     new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
Thanks & regards,
Sharath

Hi Sharath,
To read the XML file use the following. Don’t mention the character set during reading it.I hope it will help you.
XML file(emp.xml)
<?xml version="1.0" encoding="ISO-8859-1"?>
<Emp>
<EmpDetails>
       <firstname>Sarbari</firstname>
       <lastname>Saha</lastname>
  </EmpDetails>
  <EmpDetails>
       <firstname>Tumpa</firstname>
       <lastname>Hazra</lastname>
  </EmpDetails>
</Emp>
Java File
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import org.w3c.dom.NamedNodeMap;
class ReadXML
     public static void main(String args[])
          try
               String fileName="emp.xml";
               DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
               DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
               Document doc = docBuilder.parse (fileName);
               NodeList nodeList = doc.getChildNodes();
               int nodeSize = nodeList.getLength();
               for (int i=0;i<nodeSize;i++)
                    Node node = nodeList.item(i);
                    Element elm = (Element) node;
                    NodeList EmpDetailsList=elm.getElementsByTagName("EmpDetails");
                    int stNodeSize = EmpDetailsList.getLength();
                    System.out.println("NodeSize =  "+stNodeSize );
                    for(int j=0;j<stNodeSize;j++)
                              Node nodeEmpdtl = EmpDetailsList.item(j);
                              Element elmDetails = (Element) nodeEmpdtl;
                              NodeList firstnameList=elmDetails.getElementsByTagName("firstname");
                              NodeList lastnameList=elmDetails.getElementsByTagName("lastname");
                              Node fnameNode=firstnameList.item(0);
                              System.out.print("Node : " + fnameNode.getNodeName());
                              System.out.println ("  Value : "+((Element)fnameNode).getChildNodes().item(0).getNodeValue());
                              int lastnameNodeSize = lastnameList.getLength();
                              Node lnameNode=lastnameList.item(0);
                              System.out.print("Node : " + lnameNode.getNodeName());
                              System.out.println("  Value : "+((Element)lnameNode).getChildNodes().item(0).getNodeValue());
          catch(ParserConfigurationException pce)
               System.out.println("Inside ParserConfigurationException Exception");
          catch(SAXException se)
               System.out.println("Inside SAXException Exception");
          catch(IOException ioe)
               System.out.println("Inside IOException Exception");
Regards,
Mithu

Similar Messages

  • XML data source - Performance problem

    Environment - Crystal Reports 2008 , crjava-runtime_12.2.200 jar files, Java 1.5  and XML data source
    We are generating reports from our java application. .rpt file is designed using CR 2008 .
    The problem we have is its taking longer time to generate a report. Atleast its taking 5-6 minutes. XML file size is around 300 KB. .rpt file size is 2000 KB.
    Steps involved in report generation in Java program.
    1. Creating ReportClientDocument.
    2.Opening ReportClientDocument( reportClientDocument.Open())
    3. constructing XML datasource IXMLDataSet(xml_ds). ( setting XML and XSD)
    4. setting the datasource to database controller. -- reportClientDocument.getDatabaseController().setDataSource(xml_ds, "", "")
    5. then exporting the report in pdf format.
    I don't know what I am doing wrong. Please advise me to improve the performance of this function.
    Thanks,
    Makesh

    Ted,
    I figured out the cause of the problem. I am using JDeveloper as my IDE thats causing the delay. When I deployed the application and ran it, it took just 30 secs for the report using "Pushing" mechanism. Thats amazing. Thanks for your support.
    I have another problem. I am not sure whether to post a separate thread for this problem. Anyway I explain the problem here. If you think it needs another thread, I will post a new one.
    When I use my IDE or the following command JRC runs fine and generates the reports with graphs and all.
    java -classpath C:\JDK\java1.5\bin\CERT.jar;C:\oracle\JDeveloper10.1.3\jdbc\lib\ojdbc14dms.jar;C:\oracle\JDeveloper10.1.3\jdbc\lib\orai18n.jar;C:\oracle\JDeveloper10.1.3\jdbc\lib\ocrs12.jar;C:\oracle\JDeveloper10.1.3\diagnostics\lib\ojdl.jar;C:\oracle\JDeveloper10.1.3\lib\dms.jar;C:\Apps\CERTLib\log4j-1.2.8.jar;C:\Apps\CERTLib\CRLib\com.azalea.ufl.barcode.1.0.jar;C:\Apps\CERTLib\CRLib\commons-collections-3.1.jar;C:\Apps\CERTLib\CRLib\commons-configuration-1.2.jar;C:\Apps\CERTLib\CRLib\commons-lang-2.1.jar;C:\Apps\CERTLib\CRLib\commons-logging.jar;C:\Apps\CERTLib\CRLib\CrystalCommon2.jar;C:\Apps\CERTLib\CRLib\CrystalReportsRuntime.jar;C:\Apps\CERTLib\CRLib\cvom.jar;C:\Apps\CERTLib\CRLib\DatabaseConnectors.jar;C:\Apps\CERTLib\CRLib\icu4j.jar;C:\Apps\CERTLib\CRLib\jai_imageio.jar;C:\Apps\CERTLib\CRLib\JDBInterface.jar;C:\Apps\CERTLib\CRLib\jrcerom.jar;C:\Apps\CERTLib\CRLib\keycodeDecoder.jar;C:\Apps\CERTLib\CRLib\log4j.jar;C:\Apps\CERTLib\CRLib\logging.jar;C:\Apps\CERTLib\CRLib\pfjgraphics.jar;C:\Apps\CERTLib\CRLib\QueryBuilder.jar;C:\Apps\CERTLib\CRLib\webreporting-jsf.jar;C:\Apps\CERTLib\CRLib\webreporting.jar;C:\Apps\CERTLib\CRLib\XMLConnector.jar;C:\Apps\CERTLib\CRLib\xpp3.jar;C:\Apps\CERTLib\iText-2.1.5.jar -Xms256m -Xmx512m com.cert.gui.CERTMainFrame
    Note: CERT.jar has all the application classes and library classes.
    But when I package all these jar files in to single jar file and run the below command, it generates reports with all the features except Graphs.
    java -Xms256m -Xmx512m -jar CERT.jar (OR)
    java -classpath C:\JDK\java1.5\bin\CERT.jar; -Xms256m -Xmx512m com.cert.gui.CERTMainFrame
    Note: CERT.jar has all the application classes and library classes
    I need the above command to run successfully as I am planning to use java web start for application deployment.
    Please help me to solve this problem.
    Thanks,
    Makesh
    Edited by: Makesh on May 28, 2009 12:07 AM
    Edited by: Makesh on May 28, 2009 12:13 AM
    Edited by: Makesh on May 28, 2009 1:32 AM

  • XML special character/encoding problem

    Hi
    I would like to store XML in a MSSQL database into a column with the datatype xml.
    It seems like the xml datatype in an xMII transaction allways is stored with encoding type UTF-8
    and the MSSQL xml datatype is UTF-16. This gives me some problem with special characters when inserting into the MSSQL database (in the example below is the MSSQL datatype xml):
    INSERT INTO
         VALUES
    The error returned is this:
    "com.microsoft.sqlserver.jdbc.SQLServerException: XML parsing: line 1, character 62, illegal xml character"
    If I replace the 'ä' with a normal 'a' the command executes ok.
    I am currently using a workaround that looks like this, when setting the parameter in my transaction:
    stringreplace(Local.test, " encoding=" & doublequote & "UTF-8" & doublequote, "")
    But I was hoping I could get rid of the stringreplace.
    Is there a solution / recommended way of doing this?
    Best Regards
    Simon Bruun
    Edited by: Simon Bruun on Mar 4, 2011 10:43 AM

    I solved this. I convert to Unicode UTF-8

  • XML to DataGird encoding problem

    XML is in windows-1250 encoding (beacuse special character
    čćžšđ)
    when I load XML into DataGrid there are no special chars like
    čćžšđ

    I solved this. I convert to Unicode UTF-8

  • Charset Encoding Problem

    Hello all,
    I have the problem that umlaut like ä, ü,ö are didn´t shown in the Browser. In the JSP Page I included the charset=iso-8859-1. I used the Web Application Server 6.4 SP12. If I used this charset ín a normal HTML Site it works fine. Could anybody help me to solve the Problem?
    Kind regard
    Axel

    Hi Axel,
    try to use charset UTF-8, which also is the default workbench editor setting on NWDS. At least, the portal's JSP engine (which is different from the WAS') needs that to work properly.
    Hope it helps
    Detlev

  • Language Charset Encoding Problems

    Hi,
    i have Oracle 9i with developer suite installed in my 2000 professional Box my local language is ARABIC which use win1256 charset, when i run my Forms & reports all Arabic characters appears as ???????????????
    What should i do to correct this problem, and is there any methods should be done while Developer or Oracle Installation to make my Arabic characters appears clearly ?
    Thanks

    when i install the database i choose ARABIC Windows-1256 chracter set !
    where can i change my database character set, and what is the best character set for me in my explorer i use Windows-1256 ?
    and did the Registry file NLS_LANG located in my windows Registry.
    affect my database Charset !?? now this value is null.
    thanks for replay
    thanks

  • XML Data w/ plsql

    Greetings,
    Case:
    Trying to create a report on eBS and XDO combines to plsql as xml data source.
    Problem:
    When I execute the procedure, Only one single record is generated, whereas the underlying sql statement retreives more rows.
    Question:
    Could you pls advise on what's wrong with the procedure below ?
    Thks, lamso
    Procedure (gives single row)
    PROCEDURE do_it(errbuf OUT VARCHAR2, retcode OUT VARCHAR2) IS
    CURSOR c_xml IS
    SELECT XMLElement("EMPLOYEES",
                             XMLElement
                              ("Emp"                  
                                , XMLElement("EmployeeName", e.ename)
                                , XMLElement("Dept", d.dname)
                                  , XMLElement("Salary", e.sal)
                                  , XMLElement("Job", e.job)
                                  , XMLElement("Location", d.loc)
                       ).getCLobVal()
    FROM scott.emp e, scott.dept d
    WHERE e.deptno = d.deptno;
    l_xml CLOB;
    proceed BOOLEAN;
    l_curr PLS_INTEGER;
    l_next PLS_INTEGER;
    BEGIN
    proceed := TRUE;
    l_curr := 1;
    l_next := 1;
    OPEN c_xml();
    FETCH c_xml INTO l_xml;
    CLOSE c_xml;
    IF proceed THEN
    WHILE l_curr < dbms_lob.getlength(l_xml) LOOP
    l_next := INSTR(l_xml, '</', l_curr);
    l_next := INSTR(l_xml, '>', l_next);
    Fnd_File.put_line(Fnd_File.OUTPUT, SUBSTR(l_xml, l_curr, l_next - l_curr + 1));
    l_curr := l_next + 1;
    END LOOP;
    END IF;
    Fnd_File.put_line(Fnd_File.LOG, 'XML succesfully created!');
    END do_it;
    END;
    plsql output
    [pre]
    Single rowThe direct sql statement
    SELECT XMLElement("EMPLOYEES",
                             XMLElement
                              ("Emp"                  
                                , XMLElement("EmployeeName", e.ename)
                                , XMLElement("Dept", d.dname)
                                  , XMLElement("Salary", e.sal)
                                  , XMLElement("Job", e.job)
                                  , XMLElement("Location", d.loc)
                       ).getCLobVal()
    FROM scott.emp e, scott.dept d
    WHERE e.deptno = d.deptnosql statement output
    <EMPLOYEES><Emp><EmployeeName>CLARK</EmployeeName><Dept>ACCOUNTING</Dept><Salary>2450</Salary><Job>MANAGER</Job><Location>NEW YORK</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>KING</EmployeeName><Dept>ACCOUNTING</Dept><Salary>5000</Salary><Job>PRESIDENT</Job><Location>NEW YORK</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>MILLER</EmployeeName><Dept>ACCOUNTING</Dept><Salary>1300</Salary><Job>CLERK</Job><Location>NEW YORK</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>SMITH</EmployeeName><Dept>RESEARCH</Dept><Salary>800</Salary><Job>CLERK</Job><Location>DALLAS</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>ADAMS</EmployeeName><Dept>RESEARCH</Dept><Salary>1100</Salary><Job>CLERK</Job><Location>DALLAS</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>FORD</EmployeeName><Dept>RESEARCH</Dept><Salary>3000</Salary><Job>ANALYST</Job><Location>DALLAS</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>SCOTT</EmployeeName><Dept>RESEARCH</Dept><Salary>3000</Salary><Job>ANALYST</Job><Location>DALLAS</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>JONES</EmployeeName><Dept>RESEARCH</Dept><Salary>2975</Salary><Job>MANAGER</Job><Location>DALLAS</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>ALLEN</EmployeeName><Dept>SALES</Dept><Salary>1600</Salary><Job>SALESMAN</Job><Location>CHICAGO</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>BLAKE</EmployeeName><Dept>SALES</Dept><Salary>2850</Salary><Job>MANAGER</Job><Location>CHICAGO</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>MARTIN</EmployeeName><Dept>SALES</Dept><Salary>1250</Salary><Job>SALESMAN</Job><Location>CHICAGO</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>JAMES</EmployeeName><Dept>SALES</Dept><Salary>950</Salary><Job>CLERK</Job><Location>CHICAGO</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>TURNER</EmployeeName><Dept>SALES</Dept><Salary>1500</Salary><Job>SALESMAN</Job><Location>CHICAGO</Location></Emp></EMPLOYEES>
    <EMPLOYEES><Emp><EmployeeName>WARD</EmployeeName><Dept>SALES</Dept><Salary>1250</Salary><Job>SALESMAN</Job><Location>CHICAGO</Location></Emp></EMPLOYEES>

    SELECT      SYS_XMLAGG(xmlelement( "e",
    xmlforest(
                             e.ename as "EmployeeName",
                             e.sal as "Dept"
    ))).getCLobVal() FROM scott.emp e, scott.dept d
    WHERE e.deptno = d.deptno;
    change your query :)

  • Importing XML data into sys.XMLType  - encoding problem

    Hi,
    I'm using "modplsql Gateway" to upload XML file with encoding "windows-1250" with some regional characters in database table.
    The table definition:
    CREATE TABLE NAHRAJ_DATA (
    NAME VARCHAR(128) UNIQUE NOT NULL,
    MIME_TYPE VARCHAR(128),
    DOC_SIZE NUMBER,
    DAD_CHARSET VARCHAR(128),
    LAST_UPDATED DATE,
    CONTENT_TYPE VARCHAR(128),
    CONTENT LONG RAW,
    BLOB_CONTENT BLOB
    The file was uploaded correct.
    My database have
    NLS_CHARACTERSET EE8MSWIN1250
    NLS_NCHAR_CHARACTERSET AL16UTF16
    After upload, I convert data from hex(blob) to dec and with function chr() to char. BLOB -> CLOB.
    Next I create sys.XMLType from CLOB. With this progression works all in order.
    In other system where are
    NLS_CHARACTERSET AL32UTF8
    NLS_NCHAR_CHARACTERSET AL16UTF16
    BLOB_CONTENT column(table NAHRAJ_DATA) starts with "FF FE FF FE" in HEX before my XML data. Exactly convert is OK, bud if I can create sys.XMLType I get this
    ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing
    LPX-00200: could not convert from encoding UTF-8 to UCS2 Error at line 1
    ORA-06512: at "SYS.XMLTYPE", line 0
    ORA-06512: at line 1
    I haven't any idea what's wrong.
    Whats mean the HEX code in BLOB_CONTENT column after upload?
    Thangs
    Lukas

    Please post your question in XMLDB forum

  • Encoding problem while reading binary data from MQ-series

    Dear all,
    we are running on 7.0 and we have an encoding problem while reading binary data from MQ-series. Because we are getting flat strings from queue we use module "Plain2ML" (MessageTransformBean) for wrapping xml-elements around the incoming data.
    The MQ-Series-Server is using CCSID 850, which we configured in connection parameters in communication channel (both parameters for Queuemanager CCSID and also CCSID of target).If there are special characters in the message (which HEX-values differ from codepage to codepage) we get errors in our adapter while executing, please see stack-trace for further analysis below.
    It seems to us that
    1. method ByteToCharUTF8.convert() expects UTF-8 in binary data
    2. Both CCSID parameters are not used anyway in JMS-adapter
    How can we solve this problem without changing anything on MQ-site?
    Here is the stack-trace:
    Catching com.sap.aii.af.mp.module.ModuleException: Transform: failed to execute the transformation: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException caused by: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException
        at com.sap.aii.af.modules.trans.MessageTransformBean.throwModuleException(MessageTransformBean.java:453)
        at com.sap.aii.af.modules.trans.MessageTransformBean.process(MessageTransformBean.java:387)
        at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl0_0.process(ModuleLocalLocalObjectImpl0_0.java:103)
        at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:292)
        at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0_0.process(ModuleProcessorLocalLocalObjectImpl0_0.java:103)
        at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:84)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.ConvertBinaryToXiMessageFilter.filter(ConvertBinaryToXiMessageFilter.java:304)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.ConvertJmsMessageToBinaryFilter.filter(ConvertJmsMessageToBinaryFilter.java:112)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.InboundDuplicateCheckFilter.filter(InboundDuplicateCheckFilter.java:87)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.TxManagerFilter.filterSend(TxManagerFilter.java:123)
        at com.sap.aii.adapter.jms.core.channel.filter.TxManagerFilter.filter(TxManagerFilter.java:59)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.DynamicConfigurationFilter.filter(DynamicConfigurationFilter.java:72)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.PmiAgentFilter.filter(PmiAgentFilter.java:66)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.InboundCorrelationFilter.filter(InboundCorrelationFilter.java:60)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.JmsHeadersProfileFilter.filter(JmsHeadersProfileFilter.java:59)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageInvocationsFilter.filter(MessageInvocationsFilter.java:89)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.JarmMonitorFilter.filter(JarmMonitorFilter.java:57)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.filter.ThreadNamingFilter.filter(ThreadNamingFilter.java:62)
        at com.sap.aii.adapter.jms.core.channel.filter.MessageFilterContextImpl.callNext(MessageFilterContextImpl.java:195)
        at com.sap.aii.adapter.jms.core.channel.SenderChannelImpl.doReceive(SenderChannelImpl.java:263)
        at com.sap.aii.adapter.jms.core.channel.ChannelImpl.receive(ChannelImpl.java:437)
        at com.sap.aii.adapter.jms.core.connector.MessageListenerImpl.onMessage(MessageListenerImpl.java:36)
        at com.ibm.mq.jms.MQMessageConsumer$FacadeMessageListener.onMessage(MQMessageConsumer.java:399)
        at com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl$JmsProviderMessageListener.onMessage(JmsMessageConsumerImpl.java:904)
        at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.receiveAsync(MQMessageConsumer.java:4249)
        at com.ibm.msg.client.wmq.v6.jms.internal.SessionAsyncHelper.run(SessionAsyncHelper.java:537)
        at java.lang.Thread.run(Thread.java:770)
    Caused by: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException
        at com.sap.aii.messaging.adapter.Conversion.service(Conversion.java:714)
        at com.sap.aii.af.modules.trans.MessageTransformBean.processTransform(MessageTransformBean.java:538)
        at com.sap.aii.af.modules.trans.MessageTransformBean.processTransform(MessageTransformBean.java:528)
        at com.sap.aii.af.modules.trans.MessageTransformBean.processTransform(MessageTransformBean.java:471)
        at com.sap.aii.af.modules.trans.MessageTransformBean.process(MessageTransformBean.java:364)
        ... 36 more
    Caused by: sun.io.MalformedInputException
        at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:270)
        at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:287)
        at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:337)
        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:223)
        at java.io.InputStreamReader.read(InputStreamReader.java:208)
        at java.io.BufferedReader.fill(BufferedReader.java:153)
        at java.io.BufferedReader.readLine(BufferedReader.java:316)
        at java.io.LineNumberReader.readLine(LineNumberReader.java:176)
        at com.sap.aii.messaging.adapter.Conversion.convertPlain2XML(Conversion.java:310)
        at com.sap.aii.messaging.adapter.Conversion.service(Conversion.java:709)
        ... 40 more
    Any ideas?
    Kind regards, Stefan

    Hi Stefan,
    for the first MTB now we are using only one parameter: Transform.ContentType = text/plain;charset="ISO-8859-1"
    The second MTB, which does the XML-Wrapping, is configured like this:
    Transform.Class = com.sap.aii.messaging.adapter.Conversion
    Transform.ContentType = application/xml
    xml.conversionType = SimplePlain2XML
    xml.fieldNames = value
    xml.fieldSeparator = §%zulu§%
    xml.processFieldNames = fromConfiguration
    xml.structureTitle = payload
    Both CCSID configuration parameters from the "Source"-Tab we've set to 850.
    Now, we don't get an error anymore - sun.io.malformedInputException - , but, unfortunately, now special character conversion succeeded (we need an "ß" and we get an ISO-HEX-E1 -> á).  E1 is (different from ISO) an "ß" in 850.
    Any ideas?

  • XML data encoding iso-8859-1 . Currently utf-16 is default encoding

    Hello ABAP Gurus ,
    Need a help from you .
    Scenario : We have SAP4.7 enterprise version which we have now converted to Unicode system . There is a BSP application which talks to an external web application (Non Unicode) thru HTTP protocol and sends data thru XML.
    Problem : Problem is at the time when BSP application prepares the XML While preparing XML data , before converting to Unicode environment the encoding was "iso-8859-1" . But now after Unicode conversion , the encoding is "UTF-16".
    The XML data looks like
    <?xml version="1.0" encoding="utf-16"?><DATA><ACTION>CREATE_TICKET</ACTION><CRI
    I have tried replacing "utf-16" by "iso-8859-1 " . The interface works . But at the recieving end , ie external web application , the German umlauts appear as some garbage values .
    I know we need to enforce encoding . I have tried with the following code but could not suceed . The encoding appears as "utf-16".
    Following is the section of code which I have written in BSP application.
      Daten in DOM-Baum wandeln
        CALL FUNCTION 'SDIXML_DATA_TO_DOM'
          EXPORTING
            name        = 'DATA'
            dataobject  = ls_cr_xml
          IMPORTING
            data_as_dom = if_dom
          CHANGING
            document    = if_document
          EXCEPTIONS
            OTHERS      = 1.
        IF sy-subrc NE 0.
          error_out text-f47 text-f48 space space.
        ENDIF.
      DOM-Baum in Character-Stream wandeln
        if_pixml = cl_ixml=>create( ).
        IF if_pixml IS INITIAL.
          error_out text-f50 text-f53 space space.
        ENDIF.
        if_pstreamfact = if_pixml->create_stream_factory( ).
        IF if_pstreamfact IS INITIAL.
          error_out text-f51 text-f53 space space.
        ENDIF.
        if_postream = if_pstreamfact->create_ostream_cstring( string = xml_doc ).
        IF if_pstreamfact IS INITIAL.
          error_out text-f52 text-f53 space space.
        ENDIF.
    --Encoding--
    data: gv_str type string.
    data: gv_l_xml_encoding type ref to if_ixml_encoding.
    data gv_l_resultb type boolean.
    gv_str = 'ISO-8859-1' .
    clear gv_l_xml_encoding.
          call method if_pixml->create_encoding
            EXPORTING
              byte_order    = 0
              character_set = gv_str
            RECEIVING
              rval          = gv_l_xml_encoding.
          clear gv_l_resultb.
          call method gv_l_xml_encoding->set_character_set
            EXPORTING
              charset = gv_str
            RECEIVING
              rval    = gv_l_resultb.
            call method if_document->set_encoding
            EXPORTING
              encoding = gv_l_xml_encoding.
    ----Append child -
    CALL METHOD if_document->append_child
          EXPORTING
            new_child = if_dom
          RECEIVING
            rval      = lv_return.
        IF lv_return NE 0.
          error_out text-f47 text-f49 space space.
        ENDIF.
    --Render the XML data to output stream--
        CALL METHOD if_document->render
          EXPORTING
            ostream = if_postream.
    After this section of code is executed , the variable xml_doc  gets filled up with XML data .
    <?xml version="1.0" encoding="utf-16"?><DATA><ACTION>CREATE_TICKET</ACTION><CRI
    Can anybody help how to enforce encoding ?
    Regards,
    Laxman Nayak.

    Hi Aslam Riaz,
    Did you find any solution..?
    Kindly help me on this issue.
    Thanks and Regards,
    Shailaja Chityala

  • Jaxb & XML & encoding problem                      *URGENT*

    Hello,
    ***Do not be scared because of the length of the question please. I tried to explain problem clearly.***
    I am developing a Web service for a particular client. The client has provided .wsdl and some .xsd files for me.
    I used JWSDP-2.0 to generate holder classes from those .xsd files. In order to specify the root elemnen, I added "@XmlRootElement" annotation in front of the ServiceInfo class (, and also imported "javax.xml.bind.annotation.XmlRootElement"). I am using Eclipse in this project.
    I prepared the Web service exactly as specified by the client, but when I test it with the client the client application cannot show the XML data that it receives as a response to its request. The client application opens a file, writes the XML response to that file and also shows the response on the client application window. However, that file is always empty and I see nothing on the client application window. I do not have the client application's source code, but I do know that client application has no bug.
    NOTE: I have a guideline for developing the Web Service for this particular client and it says there: "ServiceInfo is transfered as a Unicode string, and then encoded as UTF-16."
    (Actually I don't know whether this is the reason of my problem but it is still sth that should be known I guess.)
    Here is the code of my method:
    public java.lang.String getServiceInfo() throws java.rmi.RemoteException {
    JAXBContext servInfoContext = JAXBContext.newInstance("com.gw.oms.serviceinfo"); //com.gw.oms.serviceinfo is the directory where all generated java (from serviceinfo.xsd file) files are stored.
    // create an ObjectFactory instance, create instances of holder classes
    // (root element is "serviceInfo") and set their values.
              try {
                   StringWriter writer = new StringWriter();
                   Marshaller marshaller = servInfoContext.createMarshaller();
                   marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-16");
                   marshaller.marshal(serviceInfo, writer);
                   return writer.toString();
              } catch (JAXBException e) {
                   throw new RemoteException("Error marshalling serviceInfo", e);
    I guess the code piece in the try-catch block is true, but maybe I am continuously missing sth. Can you see any wrong thing in the code?
    In order to see what is happenning in the communication between my Web Service and the client application I analyzed the traffic between them via Ethereal network sniffing tool. Here is some info:
    FROM CLIENT TO WEB SERVICE: (Data Content of HTTP packet)
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope
    xmlns:soap="http://schema.xmlsoap.org/soap/envelope"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <GetServiceInfo
    xmlns="http://....XXX....."/>
    </soap:Body>
    </soap:Envelope>
    FROM WEB SERVICE TO CLIENT: (Data Content of HTTP packet)
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope
    xmlns:soap="http://schema.xmlsoap.org/soap/envelope"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    <GetServiceInfoResult
    xmlns=""/> **>> WARNING 1 <<**
    <?xml version="1.0" encoding="UTF-16" standalone="yes"?>\n<serviceInfo xmlns="http://....XXX..../serviceInfo"><serviceProvider>Service Provider Name< **>> WARNING 2 <<**
    </GetServiceInfoResult>
    </soapenv:Body>
    </soapenv:Envelope>
    **>> WARNING 1 <<**: WHY IS 'XMLNS' EMPTY HERE??? SHOULDN'T IT BE "http://....XXX....." ALSO????
    **>> WARNING 2 <<**: WHY DON'T I SEE THE COMPLETE SERVICEINFO HERE? ONLY 1 HTTP RESPONSE PACKET IS BEING SENT TO THE CLIENT BY MY WEB SERVICE.
    If I make Eclipse write to the console what I am sending, I see the result below:
    <?xml version="1.0" encoding="UTF-16"?>
    <serviceInfo xmlns="http://....XXX...../serviceInfo">
    <serviceProvider>MY UNIVERSITY</serviceProvider>
    <serviceUri>http://myserviceuri.com</serviceUri>
    <signUpPage>http://signupmyservice/services/ITUServiceSoap</signUpPage>
    <targetLocale>1053</targetLocale>
    <localName>MIN SERVIS</localName>
    <englishName>MY SERVICE</englishName>
    <authenticationType>other</authenticationType>
    <supportedService>
    <SMS_SENDER maxSbcsPerMessage="160" maxRecipientsPerMessage="400" maxMessagesPerSend="5" maxDbcsPerMessage="0"/>
    </supportedService>
    </serviceInfo>
    Somehow the client application cannot receive (or validate) the serviceinfo that my Web service sends. I suspect that sth is wrong with my Java code. Can any one see any error in this schema?
    I am really stucked. Any recommendation would be very valuable for me.
    Thanks & Regards

    I feel like nobody is following this forum anymore.. :)
    Does anybody have any idea...?
    Regards

  • Problem in transforming xml data to HTML

    Hai all,
    I am new to J developer, I have generated XML data to transform to HTML.
    Below is my xsql file with the name 'simpleqry.xsql'
    <?xml version='1.0' ?>
    <page xmlns:xsql="urn:oracle-xsql" connection="java:comp/env/jdbc/testDS">
    <xsql:query max-rows="-1" tag-case="lower" null-indicator="no">SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL &gt;= 5000</xsql:query>
    </page>
    it is producing the XML datas
    Further I need to convert it into HTML
    so I generated xsl stylesheet in under META-INF with the name 'EmpDetails.xsl'
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output encoding="ISO-8859-1" method="text/html" />
    <xsl:template match="/page">
    <html>
    <head>
    <title>Employee Results</title>
    </head>
    <body>
    <H2> EMPLOYEE QUERY RESULTS</H2>
    <h5><em> Following demonstrates XSQL query</em></h5>
    <table border="1" cellspacing="1" align="center">
    <tr bgcolor=" #F9F0C1">
    <th>EMP ID</th>
    <th>EMPLOYEE NAME</th>
    <th>SALARY</th>
    </tr>
    <xsl:for-each select="ROWSET/ROW">
    <tr>
    <td><xsl:value-of select="EMPNO"/></td>
    <td><xsl:value-of select="ENAME"/></td>
    <td><xsl:value-of select="SAL"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    next I have added the following to simpleqry.xsql
    <?xml-stylesheet type="text/xsl" href="EmpResults.xsl" ?>
    so my simpleqry.xsql file look like this
    <?xml version='1.0' ?>
    <?xml-stylesheet type="text/xsl" href="C:\JDeveloper\mywork\Application1\querysql\public_html\WEB-INF\EmpDetails.xsl" ?>
    <page xmlns:xsql="urn:oracle-xsql" connection="java:comp/env/jdbc/testDS">
    <xsql:query max-rows="-1" tag-case="lower" null-indicator="no">SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL &gt;= 5000</xsql:query>
    </page>
    when I rerun my simpleqry.xsql file it not generating the output .
    My J developer version is 'Oracle IDE 11.1.2.0.38.60.17'
    I know I made it lengthy. I made it clear so that you can understand my problem clearly. Please explain me how to solve the above mentioned problem(To generate HTML from XML data)
    Thanks in advance.
    Regards,
    Uraja

    next I have added the following to simpleqry.xsql
    +<?xml-stylesheet type="text/xsl" href="EmpResults.xsl" ?>+
    so my simpleqry.xsql file look like this
    +<?xml version='1.0' ?>+
    +<?xml-stylesheet type="text/xsl" href="C:\JDeveloper\mywork\Application1\querysql\public_html\WEB-INF\EmpDetails.xsl" ?>+
    What is added is different from what is listed in the XSQL, the xsl is different, the path to xsl is different.
    Specify relative path for xsl.

  • Problem in importing XML Data In Acrobat - X

    Hello All,
    I have a LiveCycle form where I am embedding a sample XML into it. (No data connection and no binding). After filling the form when the user clicks the submit button before submitting the XML it removes all the nodes of the sample XML that's embedded to it so that the exported data is encapsulated within the field tag/attribute.
    We can again import the submitted XML back into the form to do some  manual editing.It works fine in Acrobat - 9 Pro. But when I try to  import the submitted XML data back into the form in the Acrobat - X it  shows the error : "Could not load data from Text file".It does not give  any error while importing the sample XML into the form. I am totally  confused. What could be the problem here ?
    LiveCycle version - ES 8.2
    Thanks.
    Bibhu.

    declare @x xml='<?xml version="1.0" encoding="UTF-8"?>
    <Flussi xmlns="http://indennitario.acquirenteunico.it/Semplificato/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Flusso xsi:type="FlussoSI1.1150Type" COD_FLUSSO="1150" COD_SERVIZIO="SI1">
    <IdentificativiRichiesta>
    <CodPratGestore>688628</CodPratGestore>
    </IdentificativiRichiesta>
    </Flusso>
    </Flussi>'
    ;WITH XMLNAMESPACES(default 'http://indennitario.acquirenteunico.it/Semplificato/1.0')
    select p.q.value('@COD_FLUSSO','int'),
    p.q.value('@xsi:type[1]','varchar(100)'),
    p.q.value('@COD_SERVIZIO','varchar(10)'),
    p.q.value('(IdentificativiRichiesta/CodPratGestore)[1]','int')
    from @x.nodes('/Flussi/Flusso')p(q)
    Please Mark This As Answer if it solved your issue
    Please Mark This As Helpful if it helps to solve your issue
    Visakh
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Problem when decrypting an encrypted xml data with arabic data

    Hi all
    I have problem in decryption an encrypted Xml file. because my Xml file contains utf-8 characters, this problem occurs. after many proccess on Xml data the following code throws an Exception:
    try {
    // Works if the content is a single child element.
    byte [] a = decbit.getBytes("UTF-8");
    ByteArrayInputStream bais2 = new ByteArrayInputStream(a);
    Document decdoc = docBuilder.parse(bais2);
    Node decNode =
    encDoc.importNode(decdoc.getFirstChild(), true);
    edata.getParentNode().replaceChild(decNode,edata);
    }catch(org.xml.sax.SAXParseException spe) {
    //In case the content is plain text
    //or a group of child elements
    Text decText = encDoc.createTextNode(decbit);
    edata.getParentNode().replaceChild(decText,edata);
    decString = (getString((XmlDocument)encDoc));
    at the line with code "Document decdoc = docBuilder.parse(bais2); " an Exception occurs with message :
    org.xml.sax.SAXParseException: Illegal character at end of document, &#x3c;.
    whereas when I debug the project the filed "decbit", contains correct data. any way, in order to the exception, the control move to "catch" block and create a Text Node but the problem is the replaced data is like this:
    <id root="588588588" extension="" displayable="false" /><beneficiaryOf typeCode="BEN">
    <policyOrAccount classCode="COV" moodCode="EVN">
    <id xsi:type="II" root="855855855" extension="" displayable="false" />
    <author typeCode="AUT">
    <carrierRole classCode="UNDWRT">
    <id root="6548888888" extension="" displayable="false" />
    </carrierRole>
    </author>
    </policyOrAccount>
    </beneficiaryOf>
    as you can see, tha "<" characters are < and the ">" characters are >
    this really exhausted me, please help me out.
    thank you, any help will be appreciated
    regards
    Mohammad

    Hi Naveen,
    In sxmb_moni the content transmitted to the adapter(RFC)is as follows
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ns:ZRFID_EQUIP xmlns:ns="urn:sap-com:document:sap:rfc:functions">
    - <RECORDS>
    - <item>
      <FLOC>f1-01-01</FLOC>
      <RFID_NO>I006</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-02</FLOC>
      <RFID_NO>I002</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-03</FLOC>
      <RFID_NO>I003</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-04</FLOC>
      <RFID_NO>I004</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-05</FLOC>
      <RFID_NO>I005</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-06</FLOC>
      <RFID_NO>I001</RFID_NO>
      </item>
      </RECORDS>
      </ns:ZRFID_EQUIP>
    At r/3 side the field floc and rfid_no gets mapped to floc which is of char30
    eg floc=f1-01-01I006
       rfid_no=

  • Problem inserting and querying XML data with a recursive XML schema

    Hello,
    I'm facing a problem with querying XML data that is valid against a recursive XML Schema. I have got a table category that stores data as binary XML using Oracle 11g Rel 2 on Windows XP. The XML Schema is the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="bold_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="keyword_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
                   <xs:element name="plain_text" type="xs:string"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="emph_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="text_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="parlist_type">
              <xs:sequence>
                   <xs:element name="listitem" minOccurs="0" maxOccurs="unbounded" type="listitem_type"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="listitem_type">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="parlist" type="parlist_type"/>
                   <xs:element name="text" type="text_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:element name="category">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="name"/>
                        <xs:element name="description">
                                  <xs:complexType>
                                            <xs:choice>
                                                           <xs:element name="text" type="text_type"/>
                                                           <xs:element name="parlist" type="parlist_type"/>
                                            </xs:choice>
                                  </xs:complexType>
                        </xs:element>
                                                                </xs:sequence>
                                                                <xs:attribute name="id"/>
                                            </xs:complexType>
                        </xs:element>
    </xs:schema>I registered this schema and created the category table. Then I inserted a new row using the code below:
    insert into category_a values
    (XMlElement("category",
          xmlattributes('categoryAAA' as "id"),
          xmlforest ('ma categ' as "name"),
          (xmlelement("description", (xmlelement("text", 'find doors blest now whiles favours carriage tailor spacious senses defect threat ope willow please exeunt truest assembly <keyword> staring travels <bold> balthasar parts attach </bold> enshelter two <emph> inconsiderate ways preventions </emph> preventions clasps better affections comes perish </keyword> lucretia permit street full meddle yond general nature whipp <emph> lowness </emph> grievous pedro')))    
    The row is successfully inserted as witnessed by the results of row counting. However, I cannot extract data from the table. First, I tried using SqlPlus* which hangs up and quits after a while. I then tried to use SQL Developer, but haven't got any result. Here follow some examples of queries and their results in SQL Developer:
    Query 1
    select * from category
    Result : the whole row is returned
    Query 2
    select xmlquery('$p/category/description' passing object_value as "p" returning content) from category
    Result: "SYS.XMLTYPE"
    now I tried to fully respect the nested structure of description element in order to extract the text portion of <bold> using this query
    Query 3
    select  xmlquery('$p/category/description/text/keyword/bold/text()' passing object_value as "p" returning content) from  category_a
    Result: null
    and also tried to extract the text portion of element <text> using this query
    Query 4
    select  xmlquery('$p/category/description/text/text()' passing object_value as "p" returning content) from  category_a
    Result: "SYS.XMLTYPE".
    On the other hand, I noticed, from the result of query 1, that the opening tags of elements keyword and bold are encoded as the less than operator "&lt;". This explains why query 3 returns NULL. However, query 4 should display the text content of <text>, which is not the case.
    My questions are about
    1. How to properly insert the XML data while preserving the tags (especially the opening tag).
    2. How to display the data (the text portion of the main Element or of the nested elements).
    The problem about question 1 is that it is quite unfeasible to write a unique insert statement because the structure of <description> is recursive. In other words, if the structure of <description> was not recursive, it would be possible to embed the elements using the xmlelement function during the insertion.
    In fact, I need to insert the content of <description> from a source table (called category_a) into a target table (+category_b+) automatically .
    I filled category_a using the Saxloader utility from an flat XML file that I have generated from a benchmark. The content of <description> is different from one row to another but it is always valid with regards to the XML Schema. The data is properly inserted as witnessed by the "select * from category_a" instruction (500 row inserted). Besides, the opening tags of the nested elements under <description> are preserved (no "&lt;"). Then I wrote a PL/SQL procedure in which a cursor extracts the category id and category name into varchar2 variables and description into an XMLtype variable from category_a. When I try to insert the values into a category_b, I get the follwing error:
    LSX-00213: only 0 occurrences of particle "text", minimum is 1which tells that the <text> element is absent (actually it is present in the source table).
    So, my third question is why are not the tags recognized during the insertion?
    Can anyone help please?

    Hello,
    indded, I was using an old version of Sqlplus* (8.0.60.0.0) because I had a previous installation (oracle 10g XE). Instead, I used the Sqlplus* shipped with the 11g2database (version 11.2.0.1.0). All the queries that I wrote work fine and display the data correctly.
    I also used the XMLSERIALIZE function and can now display the description content in SQL Developer.
    Thank you very much.
    To answer your question Marco, I registered the XML Schema using the following code
    declare
      doc varchar2(4000) := '<?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="bold_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="keyword_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
                   <xs:element name="plain_text" type="xs:string"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="emph_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="text_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="parlist_type">
              <xs:sequence>
                   <xs:element name="listitem" minOccurs="0" maxOccurs="unbounded" type="listitem_type"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="listitem_type">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="parlist" type="parlist_type"/>
                   <xs:element name="text" type="text_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:element name="category">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="name"/>
                        <xs:element name="description">
                                  <xs:complexType>
                                            <xs:choice>
                                                           <xs:element name="text" type="text_type"/>
                                                           <xs:element name="parlist" type="parlist_type"/>
                                            </xs:choice>
                                  </xs:complexType>
                        </xs:element>
                                                                </xs:sequence>
                                                                <xs:attribute name="id"/>
                                            </xs:complexType>
                        </xs:element>
    </xs:schema>';
    begin
      dbms_xmlschema.registerSchema('/xmldb/category_auction.xsd', doc,     LOCAL      => FALSE, 
            GENTYPES   => FALSE,  GENBEAN    => FALSE,   GENTABLES  => FALSE,
             FORCE      => FALSE,
             OPTIONS    => DBMS_XMLSCHEMA.REGISTER_BINARYXML,
             OWNER      => USER);
    end;then, I created the Category table as follows:
    CREATE TABLE category_a of XMLType XMLTYPE store AS BINARY XML
        XMLSCHEMA "xmldb/category_auction.xsd" ELEMENT "category";Now, there still remains a problem of how to insert the "description" content which I serialized as a CLOB data into another table as XML. To this purpose, I wrote a view over the Category_a table as follows:
    CREATE OR REPLACE FORCE VIEW "AUCTION_XWH"."CATEGORY_V" ("CATEGORY_ID", "CNAME", "DESCRIPTION") AS
      select category_v."CATEGORY_ID",category_v."CNAME",
      XMLSerialize(content ( xmlquery('$p/category/description/*' passing object_value as "p" returning content)) as clob) as "DESCRIPTION"
      from  auction.category_a p, 
    xmltable ('$a/category' passing p.Object_Value as "a"
    columns  category_id varchar2(15) path '@id',
              cname varchar2(20) path 'name') category_v;Then, I wrote a procedure to insert data into the Category_xwh table (the source and target tables are slightly different: the common elements are just copied wereas new elements are created in the target table). The code of the procedure is the following:
    create or replace PROCEDURE I_CATEGORY AS
    v_cname VARCHAR2(30);
    v_description clob ;
    v_category_id VARCHAR2(15);
    cursor mycursor is select category_id, cname, description from category_v;
    BEGIN
    open mycursor;
      loop
      /*retrieving the columns*/
      fetch mycursor into v_category_id, v_cname, v_description ;
      exit when mycursor%notfound;
      insert into category_xwh values
      (XMlElement("category",
          xmlattributes(v_category_id as "category_id"),
          xmlelement("Hierarchies", xmlelement("ObjHierarchy", xmlelement ("H_Cat"),
                                                               xmlelement ("Rollsup",
                                                                                  (xmlelement("all_categories",
                                                                                   xmlattributes('allcategories' as "all_category_id")))
        xmlforest (
                  v_cname as "cat_name",
                  v_description as "description")    
    end loop;
      commit;
      close mycursor;
    END I_CATEGORY;When I execute the procedure, I get the following error:
    LSX-00201: contents of "description" should be elements onlyso, I just wonder if this is because v_description is considered as plain text and not as XML text, even if its content is XML. Do I need to use a special function to cast the CLOB as XML?
    Thanks for your help.
    Doulkifli

Maybe you are looking for