OSB download 250 MG file results in error Error parsing XML: {err}FORG0005

Hi,
Using OSB 11.1.1.5. I have service to download files from Oracle ECM. Running into an issue where the file size is over 250 MB service is failing. Giving me an error
OSB Replace action failed updating variable "body": Error parsing XML: {err}FORG0005: expected exactly one item, got 0 items
I have service callout to get the binary content of the file and it's taking over 5 minutes and then this error. I also set Read Timeout and Connection Timeout to 20 seconds at the business service level
but looks like it's not taking that timeout values and still waiting over 5 minutes before it dies. My JTA Timeout is set to 12 minutes. After service callout I have a log to write the output but it's not even getting there and throwing that error above
How can I trap that kind of errors. How can I set timeout at service level i.e. if after 1 minute if the file is still downloading close the connection etc.
I don't want to have some many open threads in the back ground as this service is being called in a loop to download files. Smaller files like 30 MG downloads fine but the larger ones are not.
I have a error hndler at the root level but the error is not trapped there either. Looks like system errors are not getting trapped.
So Just wondering if OSB is suitable to download that huge files.
Thanks

The reason for the error is the xquery is not able to find the values in the input... Check the input and namespaces...
Try...
<ns1:value1>{ data($addition1/ns0:value1) }</ns1:value1>
<ns1:value2>{ data($addition1/ns0:value2) }</ns1:value2>Cheers,
Vlad

Similar Messages

  • Error parsing XML: {err}FORG0005: expected exactly one item, got 0 items

    Hi ,
    Good Morning to all
    in osb replace action am using xquery transformation resource.
    source code of xquery is :
    ====================================================================================
    (:: pragma bea:global-element-parameter parameter="$addition1" element="ns0:Addition" location="../wsdl/NewWSDLFile.wsdl" ::)
    (:: pragma bea:global-element-return element="ns1:process" location="../bpelprocess1_client_ep.wsdl" ::)
    declare namespace ns1 = "http://xmlns.oracle.com/POProcessing/AdditionOSB/BPELProcess1";
    declare namespace ns0 = "http://www.example.org/NewWSDLFile/";
    declare namespace xf = "http://tempuri.org/ServiceCallout/trans/route/";
    declare function xf:route($addition1 as element(ns0:Addition))
    as element(ns1:process) {
    <ns1:process>
    <ns1:value1>{ data($addition1/value1) }</ns1:value1>
    <ns1:value2>{ data($addition1/value2) }</ns1:value2>
    </ns1:process>
    declare variable $addition1 as element(ns0:Addition) external;
    xf:route($addition1)
    =====================================================
    at the time of running "error is Error parsing XML: {err}FORG0005: expected exactly one item, got 0 items " in replace action.
    how to resolve this problem...
    Thanks & Regards
    venky

    The reason for the error is the xquery is not able to find the values in the input... Check the input and namespaces...
    Try...
    <ns1:value1>{ data($addition1/ns0:value1) }</ns1:value1>
    <ns1:value2>{ data($addition1/ns0:value2) }</ns1:value2>Cheers,
    Vlad

  • Javax.resource.ResourceException: : Error in parsing XML

    Hi
    Iam developing a connector application.
    Iam using OC4J 9.0.4 version(standalone) for deployment of RAR file. We are parsing the below xml in our application using SAX parser.
    <?xml version="1.0" encoding="utf-8"?>
    <DocAnnoList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" LibName="IMGSERV" DocID="1698353" SystemType="1">
    <AnnoDefPermission>
    <security>
    <securityobject libraryid="IMGSERV" systemtype="idmis" objectid="" objecttype="annotation" clientpermission="change">
    <permission id="1" name="Test1G" type="group" level="read" />
    <permission id="2" name="Test1G" type="group" level="write" />
    <permission id="3" name="Test1G" type="group" level="append" />
    </securityobject>
    </security>
    </AnnoDefPermission>
    </DocAnnoList>
    But iam getting the below error while parsing this xml with OC4J running on Win2k/HPUX/Solaris.
    Error in parsing XML Stream. The element "DocAnnoList" is not as per the XSD.
    04/03/26 14:11:06 org.xml.sax.SAXException: : Error in parsing XML Stream. The element "DocAnnoList" is not as per the
    XSD.
    04/03/26 14:11:06 at com.abc.is.ra.util.AB_IS_XMLObjectHandler.startElement(Unknown Source)
    04/03/26 14:11:06 at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1181)
    04/03/26 14:11:06 at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:300)
    04/03/26 14:11:06 at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:267)
    04/03/26 14:11:06 at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:149)
    04/03/26 14:11:06 at oracle.xml.jaxp.JXSAXParser.parse(JXSAXParser.java:286)
    04/03/26 14:11:06 at oracle.xml.jaxp.JXSAXParser.parse(JXSAXParser.java:224)
    I put the xSchema.jar,xml.jar & xmlparserv2.jar in java CLASSPATH as described at below URL.
    http://otn.oracle.com/pub/articles/vohra_xmlschema.html
    But problem is still there.
    Can anyone tell me what is the problem. Iam sure, there is nothing wrong with our code as it is running well on Websphere 5, Weblogic 8.1, JBoss 3.2.3, SUN ONE 7.

    will come if there are any tab spaces in the file..
    delete the tab spaces from the file..

  • Create a cache for external map source - Error in parsing xml request.

    When doing the following:
    Create a cache for external map source
    I get "error in parsing xml request" when setting the following
    Map service Url:
    http://neowms.sci.gsfc.nasa.gov/wms/wms?version=1.3.0&service=WMS&request=GetCapabilities
    It looks like it is breaking on "&". Any suggestions?
    Rob

    Hi Chris,
    thanks for your reply!
    I've tried to add the following into persistence.xml (although I've read that eclipseLink uses L2 cache by default..):
    <shared-cache-mode>ALL</shared-cache-mode>
    Then I replaced the Cache bean with a stateless bean which has methods like
    Genre findGenreCreateIfAbsent(String genreName){
    Genre genre = genreDAO.findByName(genreName);
    if (genre!=null){
    return genre;
    genre = //Build new genre object
    genreDAO.persist(genre);
    return genre;
    As far as I undestood, the shared cache should automatically store the genre and avoid querying the DB multiple times for the same genre, but unfortunately this is not the case: if I use a FINE logging level, I see really a lot of SELECT queries, which I didn't see with my "home made" Cache...
    I am really confused.. :(
    Thanks again for helping + bye

  • Error in Parsing XML using fx:XML/ [Error- 1090: XML parser failure: element is malformed]

    Hi All,
    I am getting error while loading XML in <fx:XML> tag.
    Error:
    TypeError: Error #1090: XML parser failure: element is malformed.
    MXML Code:
    <fx:Declarations>
    <fx:XML id="xmlSource2" source="sample.xml"/>
    </fx:Declarations>
    Sample XML Used: (sample.xml)
    <?xml version="1.0" encoding="UTF-8"?>
    <File>
        <Chemical id="000035676" displayFormula="C39-H45-N2-O6"
            displayName="Dimethyltubocurarine">
            <NameList>
                <NameOfSubstance>
                    Dimethyltubocurarine
                    <SourceList>
                        <Source>MESH</Source>
                    </SourceList>
                </NameOfSubstance>
                <SystematicName>
                    Tubocuraranium, 6,6',7',12'-tetramethoxy-2,2',2'-trimethyl-
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </SystematicName>
                <Synonyms>
                    Dimethyltubocurarine
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </Synonyms>
                <Synonyms>
                    Dimethyltubocurarinium
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </Synonyms>
                <Synonyms>
                    Methyltubocurarinum
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </Synonyms>
            </NameList>
            <NumberList>
                <CASRegistryNumber>
                    35-67-6
                    <SourceList></SourceList>
                </CASRegistryNumber>
                <RelatedRegistryNumber>
                    518-26-3 (iodide.hydriodide)
                    <SourceList>
                        <Source>MESH</Source>
                    </SourceList>
                </RelatedRegistryNumber>
            </NumberList>
            <ClassificationList>
                <ClassificationCode>
                    Neuromuscular nondepolarizing agents
                    <SourceList>
                        <Source>MESH</Source>
                    </SourceList>
                </ClassificationCode>
            </ClassificationList>
            <FormulaList>
                <MolecularFormula>
                    C39-H45-N2-O6
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </MolecularFormula>
            </FormulaList>
            <FormulaFragmentList></FormulaFragmentList>
            <NoteList></NoteList>
            <LocatorList>
                <FileLocator
                    url="http://cnetdb.nci.nih.gov/cgi-bin/srchcgi.exe?DBID=****3&SFMT=****_basic%2F10%2F0%2F0&TYPE=search&SRCHFORM=passthru%3D%Asrchform%3ASRCH%3A&FIELD_001=[CAS]35-67-6&#38;GoButton=Search&#38;FIELD_001_CTL=EXPR&#38;FIELD_908=&#38;FIELD908_CTL=HASABSTRACT&#38;FIELD_903=&#38;FIELD_903_CTL=YEARFORE&#38;DOCPAGE=10">CANCERLIT</FileLocator>
                <FileLocator
                    url="http://toxnet.nlm.nih.gov/cgi-bin/sis/search/r?dbs+toxline:@and+@term+@rn+35-67-6+@term+@org+DART">DART/ETIC</FileLocator>
                <FileLocator
                    url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=search&db=PubMed&term=35-67-6[ECNO]+OR+&#34;~&#34;[MH]">MEDLINE</FileLocator>
                <FileLocator
                    url="http://www.nlm.nih.gov/cgi/mesh/2K/MB_cgi?term=35-67-6&rn=1">MESH</FileLocator>
                <FileLocator
                    url="http://toxnet.nlm.nih.gov/cgi-bin/sis/search/r?dbs+toxline:@term+@rn+35-67-6+@OR+@mh+""">TOXLINE</FileLocator>
            </LocatorList>
        </Chemical>
    </File>
    Also, when I am using HttpService to load same XML I am getting no such error!!
    <s:HTTPService id="employeeService"
                           url="sample.xml"
                           result="employeeService_resultHandler(event)"
                           fault="employeeService_faultHandler(event)"/>
    Please help!!
    Thanks.
    Abhinav

    I think url in XML is creating problem here.
    <FileLocator
                    url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=search&db=PubMed&term=23-95-0[ECNO]+OR+&#34;~&#34;[MH]">MEDLINE</FileLocator>
    Is there any way to parse this XML using <fx:XML/> ??
    Thanks.

  • Download a zip file with gui_download = CRC error

    Hello erverybody,
    I download a zip compressed file with gui_download (cl_gui_interface_services) in binary mode.
    When I try to open it, I have a crc error. Does anybody has any idea why?
    here the code:
           TYPES: begin of t_zip,
                 text(1024) type c,
                 end of t_zip.
          DATA: itab_zip type table of t_zip,
                wa_zip type t_zip.
          OPEN DATASET p_fileon IN BINARY MODE FOR INPUT.
          IF sy-subrc <> 0.
            MESSAGE text-e01 TYPE 'E'.
          ENDIF.
          DO.
            READ DATASET p_fileon INTO wa_zip MAXIMUM LENGTH 1024.
            APPEND wa_zip TO itab_zip.
            IF sy-subrc <> 0.
              EXIT.
            ENDIF.
          ENDDO.
          CLOSE DATASET p_fileon.
          MOVE p_filedw TO filename.
          CALL METHOD cl_gui_frontend_services=>gui_download
            EXPORTING
              filename                  = filename
              FILETYPE                  = 'BIN'
            CHANGING
              data_tab                  = itab_zip
    Thanks
    Joachim

    Hi Joachim,
    1. use this code (just copy paste in new program)
    2. It will download from SERVER to front-end.
    3.
    *& Report  YBCR_FILEDOWNLOAD                                           *
    REPORT  ybcr_filedownload                       .
    DATA
    DATA : file_name TYPE string.
    DATA : BEGIN OF itab OCCURS 0,
           ln(255) TYPE c,
           END OF itab.
    SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS : appfn(150) TYPE c LOWER CASE OBLIGATORY.
    PARAMETERS : p_file LIKE rlgrap-filename OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION SCREEN
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CLEAR p_file.
      CALL FUNCTION 'F4_FILENAME'
        IMPORTING
          file_name = p_file.
      file_name = p_file.
    START-OF-SELECTION
    START-OF-SELECTION.
      OPEN DATASET appfn FOR INPUT IN TEXT MODE  ENCODING DEFAULT .
      IF sy-subrc <> 0.
        MESSAGE s999(yhr) WITH 'COULD NOT OPEN FILE ON APP SERVER'.
        LEAVE LIST-PROCESSING.
      ENDIF.
      DO.
        READ DATASET appfn INTO itab.
        IF sy-subrc = 0.
          APPEND itab.
        ELSE.
          EXIT.
        ENDIF.
      ENDDO.
      file_name = p_file.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
      BIN_FILESIZE                    =
          filename                        = file_name
      FILETYPE                        = 'ASC'
      APPEND                          = ' '
      WRITE_FIELD_SEPARATOR           = ' '
      HEADER                          = '00'
      TRUNC_TRAILING_BLANKS           = ' '
      WRITE_LF                        = 'X'
      COL_SELECT                      = ' '
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = ' '
      CONFIRM_OVERWRITE               = ' '
      NO_AUTH_CHECK                   = ' '
      CODEPAGE                        = ' '
      IGNORE_CERR                     = ABAP_TRUE
      REPLACEMENT                     = '#'
      WRITE_BOM                       = ' '
      TRUNC_TRAILING_BLANKS_EOL       = 'X'
      WK1_N_FORMAT                    = ' '
      WK1_N_SIZE                      = ' '
      WK1_T_FORMAT                    = ' '
      WK1_T_SIZE                      = ' '
    IMPORTING
      FILELENGTH                      =
        TABLES
          data_tab                        = itab
      FIELDNAMES                      =
    EXCEPTIONS
      FILE_WRITE_ERROR                = 1
      NO_BATCH                        = 2
      GUI_REFUSE_FILETRANSFER         = 3
      INVALID_TYPE                    = 4
      NO_AUTHORITY                    = 5
      UNKNOWN_ERROR                   = 6
      HEADER_NOT_ALLOWED              = 7
      SEPARATOR_NOT_ALLOWED           = 8
      FILESIZE_NOT_ALLOWED            = 9
      HEADER_TOO_LONG                 = 10
      DP_ERROR_CREATE                 = 11
      DP_ERROR_SEND                   = 12
      DP_ERROR_WRITE                  = 13
      UNKNOWN_DP_ERROR                = 14
      ACCESS_DENIED                   = 15
      DP_OUT_OF_MEMORY                = 16
      DISK_FULL                       = 17
      DP_TIMEOUT                      = 18
      FILE_NOT_FOUND                  = 19
      DATAPROVIDER_EXCEPTION          = 20
      CONTROL_FLUSH_ERROR             = 21
      OTHERS                          = 22
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    regards,
    amit m.

  • Implementing CPUID assembly codes in 12.4 Beta C++ file results in iropt Error

    Hi,
    In BOOST 1.56, the CPUID implementation is not available for Solaris 11.2 when compiling the file "libs/log/src/dump.cpp". So I have tried to implement the CPUID-equivalent code below:
    private:    
      static void cpuid(uint32_t& eax, uint32_t& ebx, uint32_t& ecx, uint32_t& edx)
         __asm__(
             "cpuid;"                                        /* assembly code */
             :"=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) /* outputs */
                                                             /* clobbers: none */
    and compiling the file "libs/log/src/dump.cpp" results in some weird iropt errors:
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/iropt'quita+0xa4 [0x8285914]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/iropt'libsunir_error_callback+0xdb [0x8285c9b]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/sys/libsunir.so'0xdd3e [0xfe61dd3e]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/sys/libsunir.so'0x43f28 [0xfe653f28]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/sys/libsunir.so'0x4482a [0xfe65482a]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/sys/libsunir.so'0x2462a [0xfe63462a]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/sys/libsunir.so'0x2646a [0xfe63646a]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/sys/libsunir.so'0x2644c [0xfe63644c]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/sys/libsunir.so'0x26889 [0xfe636889]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/sys/libsunir.so'0x27dc8 [0xfe637dc8]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/sys/libsunir.so'ir_proc_write+0x70 [0xfe625e40]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/iropt'write_irfile+0x1be [0x832746e]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/iropt'0x2d8983 [0x8328983]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/iropt'main+0x7b2 [0x832db22]
    /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/iropt'_start+0x72 [0x80946e2]
    compiler(iropt) error:    Iropt internal error calling libsunir.
    CC: Fatal error in /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/iropt : Abort
    My guess is that Solaris Studio C++ does not support CPUID feature. Does anyone know about this iropt errors and whether has there been a workaround / fix for CPUID feature? Kindly advise. Thanks.
    Regards,
    Brian

    Hi Alexander,
    I have finally reproduced the weird iropt error. The test code when compiled with -xO4 optimization level triggers the weird iropt error.
    Test_CPUID.cpp:
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <string.h>
    #include <errno.h>
    #include <stdio.h>
    static int cpuid(uint32_t& eax, uint32_t& ebx, uint32_t& ecx, uint32_t& edx)
         __asm__
             "cpuid;"                                        /* assembly code */
             :"=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) /* outputs */
                                                             /* clobbers: none */
         return 1;
    int main()
      unsigned int eax, ebx, ecx, edx;
      int i;
      cpuid(eax, ebx, ecx, edx);
      return 0;
    Run it with this command (with or without -noex does not matter):
    CC -xannotate=no -noex -mt -xO4 -Qoption iropt -Rloop_reform   -c -KPIC  -o Test_CPUID.o Test_CPUID.cpp
    If this command is run below at -xO1 optimization level as the suggested workaround, it throws a different error:
    CC -xannotate=no -mt -xO1 -Qoption iropt -Rloop_reform -c -KPIC  -o Test_CPUID.o Test_CPUID.cpp
    assertion failed in function fwAsmStmtArg() @ iexp1.c:415
    assert(ex_op_(actual) == EOPRVAL)
    CC: Fatal error in /opt/SolarisStudio12.4-beta_jul14-solaris-x86/lib/compilers/ube : Segmentation Fault
    The compilation is successful if no optimization levels are specified (-xO1 or -xO4 omitted).
    Regards,
    Brian

  • Cloud service - Uploading package files results in certificate error

    Hi,
    I want to upload a Cloud Service (Visual Studio 2013) to Azure but get the error "The certificate
    with the thumbprint 4bbc8b9188d0e321198a9069b8a0a1c06709e6cb was not found." (in German "Das Zertifikat mit dem Fingerabdruck 4bbc8b9188d0e321198a9069b8a0a1c06709e6cb wurde nicht gefunden").
    What I have done:
    Created a valid Azure subscription (successful)
    On the Azure Portal created a Cloud Service (successful)
    In Visual Studio created a new Project of type "Windows Azure Cloud Service" > "WCF Service Web Role" (successful)
    Hint: I didn't change the predefined settings (HTTP endpoint) and I didn't change any config file!
    In Visual Studio built the solution (successful)
    In Visual Studio created the package files (successful)
    On the Azure Portal started to upload the package files which I have generated  before (not successful!!!)
    --> The upload terminates with the error message mentioned above.
    Do I need a certification though it's a HTTP endpoint?
    Where does the thumbprint (4bbc8b9188d0e321198a9069b8a0a1c06709e6cb) in the error message comes from? It seems that Azure needs a certificate with exactly this thumbprint. But why?
    Can anybody help me?

    hi Sir,
    Did you try to logon in using your azure account or imported your Azure subscription in VS? I am afraid your package lack the windows azure tools certificate. So you could try those methods:
    http://blogs.msdn.com/b/avkashchauhan/archive/2012/05/10/downloading-windows-azure-publish-settings-subscription-configuration-file.aspx
    Also, you could try to select "publish" method to deploy your project to Azure.
    Please try it.
    Regards,
    Will
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • "character conversion error" while parsing xml files

    Hello,
    I'm trying to parse MusicXML (Recordare) files, but I'm getting an exception.
    I'm using the SAX parser (javax.xml.parsers.SAXParser).
    Here is the code I use to instantiate it:
    final javax.xml.parsers.SAXParserFactory saxParserFactory = javax.xml.parsers.SAXParserFactory.newInstance();
    final javax.xml.parsers.SAXParser saxParser = saxParserFactory.newSAXParser();
    final org.xml.sax.XMLReader parser = saxParser.getXMLReader();
    I'm using my own handler, but I get the same exception even if I use org.xml.sax.helpers.DefaultHandler.
    The error I get is:
    Character conversion error: "Illegal ASCII character, 0xc2" (line number may be too low).
    The first few lines of my xml files look like this:
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE score-partwise
    PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN"
    "http://www.musicxml.org/dtds/partwise.dtd">
    <score-partwise>
    [...etc...]
    If I delete the <!DOCTYPE ...> line, then I don't get the exception anymore. But the MusicXML files I get (from some other program) always contain this line, and it would be quite some work to delete them from every file manually.
    So does anyone know if there is a way to avoid deleting that line in every file, while still being able to parse the xml files without exceptions?
    Or maybe does anyone know what the exact cause of the exception is? (because I don't know what exactly causes it)
    Thank you in advance.
    Greetz,
    Jipo

    So does anyone know if there is a way to avoid
    deleting that line in every file, while still being
    able to parse the xml files without exceptions?ok this is side-stepping the real problem but I've used this code to filterout DTD references for other reasons   public static InputStream filterOutDTDRef(InputStream in) throws IOException {
          BufferedReader iniReader = new BufferedReader(new InputStreamReader(in));
          StringBuffer newXML = new StringBuffer();
          for(String line = iniReader.readLine(); line!=null; line = iniReader.readLine())
             newXML.append(line+"\n");
          in.close();
          int s = newXML.indexOf("<!DOCTYPE ");
          if(s!=-1)
             newXML.replace(s,newXML.indexOf(">",s)+1,"");
          return new ByteArrayInputStream(newXML.toString().getBytes());
       }and it actually speeds up the parsing phase too (since the DTD ref.s were on the web and the XML standard mandates that there is a fetch for each xml file parsed..)
    you can feed the above into the InputSource constructor that takes an InputStream argument.
    Now for the real problem... 0xc2 is "LATIN CAPITAL LETTER A WITH CIRCUMFLEX" according to a unicode chart - which is not an ASCII character (as the error message correctly reports). I'm not sure why the file is being parsed as ASCII though? You could try parsing in a FileReader to the inputsource and hope it picks up the default character encoding of your system, and that that character encoding matches the file. Or you could try passing in a FileReader constructed with a explicit character encoding (eg "UTF8") and see if that does the trick?
    asjf

  • Parsing Error while Parsing XML file

    Hi I am trying to parse an xml file with use of an stylehseet as shown below but its giving an error message as follows
    [Fatal Error] myfile2.xml:1:8: The processing instruction target matching "[xX][mM][lL]" is not allowed.
    org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
    at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:235)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:201)
    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
    at Stylizer.main(Stylizer.java:50)
    The sample xml file is
    - <nitf id="366045">
    - <head>
    <title type="main">������� �������� ������</title>
    - <tobject toobject.type="���� �����">
    <tobject.subject tobject.subject.type="�����" tobject.subject.matter="����� ������" />
    </tobject>
    - <docdata>
    <date.issue norm="28/09/2002" />
    <doc.copyright year="YYYY" holder="Aljazeera.net" />
    </docdata>
    <pubdata type="web" position.section="�����" />
    </head>
    - <body>
    - <body.head>
    - <hedline>
    <hl1>������� �������� ������</hl1>
    </hedline>
    - <byline>
    <person>�������</person>
    </byline>
    - <dateline>
    <location>�����</location>
    <story.date>31/03/1999</story.date>
    </dateline>
    <abstract>����� ����������� �������������� ���� ����� �������� ���� ��� ������� ������ �� ����� ������.</abstract>
    </body.head>
    <body.content>���� ������: �� ��� ��������. ���� ���� ��� ���� ���� �� ���� ����.</body.content>
    </body>
    </nitf>
    and stylesheet file is as follows:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
    <xsl:for-each select="NITF_News/News/nitf">
    <xsl:value-of select='body.head/hedline/hl1'/>
    </xsl:for-each>     
    </xsl:template>
    </xsl:stylesheet>
    Now can anyone tell me why is this coming up
    Thanks
    Raj

    Sorry for that
    This is the xml file as follows : --
    <?xml version="1.0" encoding="UTF-16" ?>
    - <NITF_News xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="http://mycompany.com/mynamespace">
    - <user_data>
    <client_no>31</client_no>
    <profile_id>57</profile_id>
    <private_key>5A07A6F0-0535-46E8-87CF-398062BA77C3</private_key>
    </user_data>
    - <News>
    - <nitf id="365751">
    - <head>
    <title type="main">���� ���� ��� ����� �� ������� ���������</title>
    - <tobject toobject.type="������ ��������">
    <tobject.subject tobject.subject.type="�����" tobject.subject.matter="������ ������" />
    </tobject>
    - <docdata>
    <date.issue norm="29/09/2002" />
    <doc.copyright year="YYYY" holder="Aljazeera.net" />
    </docdata>
    <pubdata type="web" position.section="�����" />
    </head>
    - <body>
    - <body.head>
    - <hedline>
    <hl1>���� ���� ��� ����� �� ������� ���������</hl1>
    </hedline>
    - <byline>
    <person>none</person>
    </byline>
    - <dateline>
    <location>�������</location>
    <story.date>29/09/2002</story.date>
    </dateline>
    <abstract>���� ���� ���� ���������� ��� ����� �� ������� �������� �������� �� �������� ���� ��� ������� ������ ����� �� ������� �������� ���������. ��� ���� ������ ����� ��������� �� ���� ������ �� ����� ������ �� ������ ��� ������� ������.</abstract>
    </body.head>
    <body.content>������ ���� ���� ����� ��� ������ ��� ������� ������ ������ ����� ��������� ���� ���� ���� ���������� �� ����� ������ �������� ��� ����� �� ������� �������� �������� �� ������� ���� ��� ���� ������ ������� ��� ������ �� ����� ������ ���������. ���� ���� ��� �� ����� ���� ���� ���� ���� ������ "����� ����� ���� ����� ����� �� ������ ��������� �� ����� ��� ���� ���� ����"� ����� ��� �� ��� ������ ����� ��� ���� ������� ����� ��� ���� ������� ������ �� ���� ������. ����� ������ �� ����� ��� ����� ������ ������ ��������� ������� ����� ������ ������ ������ ��� �� �� ��� ��� �������� �������� ����� ������ �� ���� �������� �� ��� �������. ��� ���� ������ ����� ��������� �� ���� ������ �� ����� ������ ������� ������ �� ������ ����� ���� ��� ����� ����� ����� �� ���� ����� ������ �������. ���� �������� �������� �� ��� ����� ��� �������� ���� ����� �� ������� ������ ���� ���� ��� ���� ����� �� ��� ������ ����� ������� ��� ��� ��� ����� ���� ������ ��������. ���� ������ ������� ������ �� ������� �������� �� ������� ��� ��� ���� ����� �� ������ ��� ����� ������� ������� ������� ����� ��� ���� ������� ���������. ���� ��� �� ���� ���� ����� ����� ���� �� 800 ��� ��� ��� 1968 �� ������ ���� ���� ��� ����� ���� ������ ������ �� ���� ������� ����� ��� �����. ����� �������� ������� �������� �������� ��� ������ ��������� ����� �������.</body.content>
    </body>
    </nitf>
    </News>
    </NITF_News>
    I have a java program which will parse this xml file using an xsl file and will produce another xml file as desired by me .This new xml file format will be defined in the xsl file as follows
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
    <?xml version="1.0" encoding="UTF-16"?>
    <businessnews>
    <xsl:for-each select="root/nitf">
    <story>
    <h1 color="RED">
    <headline>Headline<xsl:value-of select='mitem_maintitle'/></headline>
    <author>Author</author>
    <summary>Summary<xsl:value-of select='mitem_summary'/></summary>
    <article>Article</article>
    <date>Date<xsl:value-of select='published_date'/></date>
    <category>Category<xsl:value-of select='el_topics/main_topic_desc'/></category>
    </h1>
    </story>
    </xsl:for-each>
    </businessnews>
    </xsl:template>
    </xsl:stylesheet>
    Now it is always giving the error message as follows
    The processing instruction target matching "[xX][mM][lL]" is not allowed.
    Hoping for a positive reply
    Thanks
    Raj

  • Error while parsing xml document that file name is Japanese.

    who can help me.
    when my xml file name is Japanese. Error occurs while parsing.
    the error message is "ORA-20100: Error occurred while parsing: No such file or directory"
    thanks.

    Hi,
    When I am trying to parse the XML file, I am getting
    the following error. When I run it on Windows having
    JDK1.4 it is working fine. But when I am running it
    on UNIX having JDK1.2, I am getting this ERROR.
    org.xml.sax.SAXParseException: Illegal character at
    end of document, <.
    Any help is appreiciated.I am just guessing, but I would imagine that some of the classes of your JDK 1.4 API have code that is not backwards compatible with earlier versions. There were a few significant changes to the language when 1.4 was released. You would have to read the release notes of 1.4 and also check the API documentation for the classes you are using to parse the XML.
    Also, there are some subtle differences between the OS versions of the Java compiler. You are using two different versions of the Java language and two different versions of operating system code.

  • Persisting unexplained errors when parsing XML with schema validation

    Hi,
    I am trying to parse an XML file including XML schema validation. When I validate my .xml and .xsd in NetBeans 5.5 beta, I get not error. When I parse my XML in Java, I systematically get the following errors no matter what I try:
    i) Document root element "SQL_STATEMENT_LIST", must match DOCTYPE root "null".
    ii) Document is invalid: no grammar found.
    The code I use is the following:
    try {
    Document document;
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setValidating(true);
    factory.setNamespaceAware(true);
    DocumentBuilder builder = factory.newDocumentBuilder();
    document = builder.parse( new File(PathToXml) );
    My XML is:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <!-- Defining the SQL_STATEMENT_LIST element -->
    <xs:element name="SQL_STATEMENT_LIST" type= "SQL_STATEMENT_ITEM"/>
    <xs:complexType name="SQL_STATEMENT_ITEM">
    <xs:sequence>
    <xs:element name="SQL_SCRIPT" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <!-- Defining simple type ApplicationType with 3 possible values -->
    <xs:simpleType name="ApplicationType">
    <xs:restriction base="xs:string">
    <xs:enumeration value="DawningStreams"/>
    <xs:enumeration value="BaseResilience"/>
    <xs:enumeration value="BackBone"/>
    </xs:restriction>
    </xs:simpleType>
    <!-- Defining the SQL_SCRIPT element -->
    <xs:element name="SQL_SCRIPT" type= "SQL_STATEMENT"/>
    <xs:complexType name="SQL_STATEMENT">
    <xs:sequence>
    <xs:element name="NAME" type="xs:string"/>
    <xs:element name="TYPE" type="xs:string"/>
    <xs:element name="APPLICATION" type="ApplicationType"/>
    <xs:element name="SCRIPT" type="xs:string"/>
    <!-- Making sure the following element can occurs any number of times -->
    <xs:element name="FOLLOWS" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    and my XML is:
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    Document : SQLStatements.xml
    Created on : 1 juillet 2006, 15:08
    Author : J�r�me Verstrynge
    Description:
    Purpose of the document follows.
    -->
    <SQL_STATEMENT_LIST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://www.dawningstreams.com/XML-Schemas/SQLStatements.xsd">
    <SQL_SCRIPT>
    <NAME>CREATE_PEERS_TABLE</NAME>
    <TYPE>CREATION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    CREATE CACHED TABLE PEERS (
    PEER_ID           VARCHAR(20) NOT NULL,
    PEER_KNOWN_AS      VARCHAR(30) DEFAULT ' ' ,
    PRIMARY KEY ( PEER_ID )
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>CREATE_COMMUNITIES_TABLE</NAME>
    <TYPE>CREATION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    CREATE CACHED TABLE COMMUNITIES (
    COMMUNITY_ID VARCHAR(20) NOT NULL,
    COMMUNITY_KNOWN_AS VARCHAR(25) DEFAULT ' ',
    PRIMARY KEY ( COMMUNITY_ID )
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>CREATE_COMMUNITY_MEMBERS_TABLE</NAME>
    <TYPE>CREATION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    CREATE CACHED TABLE COMMUNITY_MEMBERS (
    COMMUNITY_ID VARCHAR(20) NOT NULL,
    PEER_ID VARCHAR(20) NOT NULL,
    PRIMARY KEY ( COMMUNITY_ID, PEER_ID )
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>DROP_PEER_TABLE</NAME>
    <TYPE>DELETION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    DROP TABLE PEERS IF EXISTS
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>DROP_COMMUNITIES_TABLE</NAME>
    <TYPE>DELETION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    DROP TABLE COMMUNITIES IF EXISTS
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>DROP_COMMUNITY_MEMBERS_TABLE</NAME>
    <TYPE>DELETION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    DROP TABLE COMMUNITY_MEMBERS IF EXISTS
    </SCRIPT>
    </SQL_SCRIPT>
    <SQL_SCRIPT>
    <NAME>CREATE_COMMUNITY_MEMBERS_VIEW</NAME>
    <TYPE>CREATION</TYPE>
    <APPLICATION>DawningStreams</APPLICATION>
    <SCRIPT>
    CREATE VIEW COMMUNITY_MEMBERS_VW AS
    SELECT P.PEER_ID, P.PEER_KNOWN_AS, C.COMMUNITY_ID, C.COMMUNITY_KNOWN_AS
    FROM PEERS P, COMMUNITIES C, COMMUNITY_MEMBERS CM
    WHERE P.PEER_ID = CM.PEER_ID
    AND C.COMMUNITY_ID = CM.COMMUNITY_ID
    </SCRIPT>
    <FOLLOWS>CREATE_PEERS_TABLE</FOLLOWS>
    <FOLLOWS>CREATE_COMMUNITIES_TABLE</FOLLOWS>
    </SQL_SCRIPT>
    </SQL_STATEMENT_LIST>
    Any ideas? Thanks !!!
    J�r�me Verstrynge

    Hi,
    I found the solution in the following post:
    Validate xml with DOM - no grammar found
    Sep 17, 2003 10:58 AM
    The solution is to add a line of code when parsing:
    try {
    Document document;
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setValidating(true);
    factory.setNamespaceAware(true);
    factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
    DocumentBuilder builder = factory.newDocumentBuilder();
    document = builder.parse( new File(PathToXml) );
    The errors are gone !!!
    J�r�me Verstrynge

  • OSB transformation error- BEA-382513- Error parsing XML

    Hi Gurus -
    I am struggling to fix one OSB Xquery transformation error
    <con:errorCode>BEA-382513</con:errorCode>
    <con:reason>OSB Replace action failed updating variable "body": Error parsing XML: {err}FORG0005: expected exactly one item, got 0 items
    I am passing SIL formatted data to this transformation an expecting a transformation but its keep on failing, I have tested the transformation and thats looking good.
    This is my replace operation where I am doing transformation.
    Replace [ node contents ] of [ ./* ]
    in [ body ] with
    XQuery Resource: TestProject/Common/Transformation/XQJMS2DBTransformation
    Variable Names And Bindings:
    commonInterfaceLayout1 - $body/*:CommonInterfaceLayout
    transformation file
    (:: pragma bea:global-element-parameter parameter="$commonInterfaceLayout1" element="ns0:CommonInterfaceLayout" location="../../Common/Schema/CommonInterfaceLayout.xsd" ::)
    (:: pragma bea:global-element-return element="ns1:EaiAuditCollection" location="../../Common/Schema/XSD_InsertEAIAuditDBTable.xsd" ::)
    declare namespace ns1 = "http://xmlns.oracle.com/pcbpel/adapter/db/top/InsertEAIAuditDBTable";
    declare namespace ns0 = "http://eai.fpl.com/schema/CommonInterfaceLayout";
    declare namespace xf = "http://tempuri.org/ErrorHandlingR1V1/XQJMS2DB/";
    declare function xf:XQJMS2DB($commonInterfaceLayout1 as element(ns0:CommonInterfaceLayout))
    as element(ns1:EaiAuditCollection) {
    <ns1:EaiAuditCollection>
    <ns1:EaiAudit>
    <ns1:eaiAuditId></ns1:eaiAuditId>
    <ns1:messageId>{ data($commonInterfaceLayout1/ns0:Header/ns0:MessageId) }</ns1:messageId>
    <ns1:messageDate>{ data($commonInterfaceLayout1/ns0:Header/ns0:MessageReceivedDate) }</ns1:messageDate>
    <ns1:messageType>{ data($commonInterfaceLayout1/ns0:Header/ns0:MessageType) }</ns1:messageType>
    <ns1:messageSource>{ data($commonInterfaceLayout1/ns0:Header/ns0:MessageSource) }</ns1:messageSource>
    <ns1:messageTarget>{ data($commonInterfaceLayout1/ns0:Header/ns0:MessageTarget) }</ns1:messageTarget>
    <ns1:appUniqId>{ data($commonInterfaceLayout1/ns0:Header/ns0:ApplicationUniqueId) }</ns1:appUniqId>
    <ns1:payload>{ data($commonInterfaceLayout1/ns0:Body) }</ns1:payload>
    <ns1:componentName>{ data($commonInterfaceLayout1/ns0:Header/ns0:ComponentName) }</ns1:componentName>
    <ns1:clientId>{ data($commonInterfaceLayout1/ns0:Header/ns0:ClientId) }</ns1:clientId>
    <ns1:createDate>{ fn:current-date() }</ns1:createDate>
    <ns1:processFlag></ns1:processFlag>
    </ns1:EaiAudit>
    </ns1:EaiAuditCollection>
    declare variable $commonInterfaceLayout1 as element(ns0:CommonInterfaceLayout) external;
    xf:XQJMS2DB($commonInterfaceLayout1)
    pls advice whats wrong I am doing here.
    Edited by: KumarB on Feb 7, 2013 9:56 PM

    update - I dont see this error any more but transformation is not happening. as a result of transformation, i get same message as output .. no change in it.

  • Need help on parsing xml file...

    Hi all,
    I need to collect some data from an Xml file using java. I have the following code with me but I am unable to get the required result. I am unable to get the data from the tags belonging to the header and footer elements. Please find the code and the sample xml file below.
    Program to parse XML:
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    public class JobLogDetails3{
         //No generics
         List myJobs;
         Document dom;
         public JobLogDetails3(){
              //create a list to hold the job objects
              myJobs = new ArrayList();
         public void runJobDetails() {
              //parse the xml file and get the dom object
              parseXmlFile();
              //get each joblog element and create a job object
              parseDocument();
              //Iterate through the list and print the data
              printData();
         private void parseXmlFile(){
              //get the factory
              DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
              try {
                   //Using factory get an instance of document builder
                   DocumentBuilder db = dbf.newDocumentBuilder();
                   //parse using builder to get DOM representation of the XML file
                   dom = db.parse("test.xml");
              }catch(ParserConfigurationException pce) {
                   pce.printStackTrace();
              }catch(SAXException se) {
                   se.printStackTrace();
              }catch(IOException ioe) {
                   ioe.printStackTrace();
         private void parseDocument(){
              //get the root elememt
              Element docEle = dom.getDocumentElement();
              //get a nodelist of <joblog> elements
              NodeList nl = dom.getElementsByTagName("*");
              if(nl != null && nl.getLength() > 0) {
                   for(int i = 0 ; i < nl.getLength();i++) {
                        //get the joblog element
                        Element el = (Element)nl.item(i);
                        //get the joblog object
                        Job J = getJob(el);
                        //add it to list
                        myJobs.add(J);
         * I take an joblog element and read the values in, create
         * an joblog object and return it
         * @param JobEl
         * @return
         private Job getJob(Element JobEl) {
              //for each <joblog> element get text or int values of
              //name ,id, age and name
              String jobServer = getTextValue(JobEl,"server");
              String jobName = getTextValue(JobEl,"name");
              String jobClient = getTextValue(JobEl,"machine_name");
              String jobStart = getTextValue(JobEl,"start_time");
              String jobType = getTextValue(JobEl,"type");
              String jobEnd = getTextValue(JobEl,"end_time");
              String jobSize = getTextValue(JobEl,"new_processed_bytes");
              //Create a new Job with the value read from the xml nodes
              Job J = new Job(jobServer,jobName,jobClient,jobStart,jobType,jobEnd,jobSize);
              return J;
         * I take a xml element and the tag name, look for the tag and get
         * the text content
         * i.e for <employee><name>John</name></employee> xml snippet if
         * the Element points to employee node and tagName is name I will return John
         * @param ele
         * @param tagName
         * @return
         private String getTextValue(Element ele, String tagName) {
              String textVal = null;
              NodeList nl = ele.getElementsByTagName(tagName);
              if(nl != null && nl.getLength() > 0) {
                   Element el = (Element)nl.item(0);
                   textVal = el.getFirstChild().getNodeValue();
              return textVal;
         * Calls getTextValue and returns a int value
         * @param ele
         * @param tagName
         * @return
         private int getIntValue(Element ele, String tagName) {
              //in production application you would catch the exception
              return Integer.parseInt(getTextValue(ele,tagName));
         * Iterate through the list and print the
         * content to console
         private void printData(){
              System.out.println("No of Jobs '" + myJobs.size() + "'.");
              Iterator it = myJobs.iterator();
              while(it.hasNext()) {
                   System.out.println(it.next().toString());
         public static void main(String[] args){
              //create an instance
              JobLogDetails JLD = new JobLogDetails();
              //call run example
              JLD.runJobDetails();
    Job Class
    public class Job {
         private String jobServer;
    private String jobName;
    private String jobClient;
    private String jobStart;
    private String jobType;
    private String jobEnd;
    private String jobSize;
         public Job(){
         public Job(String jobServer,String jobName,String jobClient,String jobStart,String jobType,String jobEnd,String jobSize ) {
              this.jobServer = jobServer;
              this.jobName = jobName;
              this.jobClient = jobClient;
    this.jobStart = jobStart;
              this.jobType = jobType;
    this.jobEnd = jobEnd;
    this.jobSize = jobSize;
         public String getjobServer() {
              return jobServer;
         public void setjobServer(String jobServer) {
              this.jobServer = jobServer;
         public String getjobName() {
              return jobName;
         public void setjobname(String jobName) {
              this.jobName = jobName;
         public String getjobClient() {
              return jobClient;
         public void setjobClient(String jobClient) {
              this.jobClient = jobClient;
    public String getjobStart() {
              return jobStart;
         public void setjobStart(String jobStart) {
              this.jobStart = jobStart;
    public String getjobType() {
              return jobType;
         public void setjobType(String jobType) {
              this.jobType = jobType;
    public String getjobEnd() {
              return jobEnd;
         public void setjobEnd(String jobEnd) {
              this.jobEnd = jobEnd;
    public String getjobSize() {
              return jobSize;
         public void setjobSize(String jobSize) {
              this.jobSize = jobSize;
         public String toString() {
              StringBuffer sb = new StringBuffer();
    sb.append(getjobServer());
              sb.append(",");
    sb.append(getjobName());
              sb.append(",");
              sb.append(getjobClient());
              sb.append(",");
              sb.append(getjobType());
              sb.append(",");
              sb.append(getjobStart());
              sb.append(",");
              sb.append(getjobEnd());
              sb.append(",");
              sb.append(getjobSize());
              sb.append(",");
              return sb.toString();
    Sample XML File:
    <?xml version="1.0" encoding="UTF-16" ?>
    - <joblog>
    <job_log_version version="2.0" />
    - <header>
    <filler>======================================================================</filler>
    <server>Job server: TGBBAK</server>
    <name>Job name: TGBSAP4-SQL-SQL DB Servers S2T - High-Weekly Full Backup</name>
    <start_time>Job started: 26 September 2011 at 01:00:04</start_time>
    <type>Job type: Backup</type>
    <log_name>Job Log: GFD_TGBBAK_71887.xml</log_name>
    <filler>======================================================================</filler>
    </header>
    <media_mount_date>Drive and media mount requested: 26/09/2011 01:00:04</media_mount_date>
    - <media_drive_and_media_info>
    <media_mount_date>Drive and media information from media mount: 26/09/2011 01:00:39</media_mount_date>
    <robotic_library_name>Robotic Library Name: HP 1</robotic_library_name>
    <drive_name>Drive Name: LTO4_2</drive_name>
    <slot>Slot: 43</slot>
    <media_label>Media Label: 000059L</media_label>
    <media_guid>Media GUID: {a6ca0062-7a6f-4b4b-8144-732ca25f2f9d}</media_guid>
    <media_overwrite_date>Overwrite Protected Until: 25/10/2011 19:24:58</media_overwrite_date>
    <media_append_date>Appendable Until: 02/10/2011 14:00:30</media_append_date>
    <media_set_target>Targeted Media Set Name: Weekly Tape</media_set_target>
    </media_drive_and_media_info>
    - <backup>
    <filler>======================================================================</filler>
    <title>Job Operation - Backup</title>
    <append_or_overwrite>Media operation - append.</append_or_overwrite>
    <compression>Compression Type: Hardware [if available, otherwise none]</compression>
    <verify_option>WARNING: The option 'Verify after backup completes' was not selected. Performing a verify operation to make sure that media can be read after the backup has completed is recommended.</verify_option>
    <filler>======================================================================</filler>
    - <machine>
    <machine_name>TGBSAP4.Tetley.Grp</machine_name>
    <info>Network control connection is established between 10.22.2.18:3271 <--> 10.22.2.4:10000</info>
    <info>Network data connection is established between 10.22.2.18:3301 <--> 10.22.2.4:3094</info>
    - <set>
    <set_resource_name>TGBSAP4.Tetley.Grp</set_resource_name>
    <tape_name>Family Name: "Media created 25/09/2011 13:59:55"</tape_name>
    - <volume>
    <display_volume>Backup of "TGBSAP4.Tetley.Grp "</display_volume>
    </volume>
    <description>Backup set #45 on storage media #1 Backup set description: "Weekly Full Backup"</description>
    <backup_type>Backup Method: Full - Back up entire database or filegroup</backup_type>
    <agent_started>Microsoft SQL Server Agent: Started</agent_started>
    <start_time>Backup started on 26/09/2011 at 01:01:45.</start_time>
    - <database>
    <database>Database PRD</database>
    </database>
    - <database>
    <database>Database master</database>
    </database>
    - <database>
    <database>Database model</database>
    </database>
    - <database>
    <database>Database msdb</database>
    </database>
    <end_time>Backup completed on 26/09/2011 at 02:42:25.</end_time>
    - <summary>
    <backed_up_database>Backed up 4 databases</backed_up_database>
    <new_processed_bytes>Processed 573363576542 bytes in 1 hour, 40 minutes, and 40 seconds.</new_processed_bytes>
    <vlm_hist_rateformat2>Throughput rate: 5432 MB/min</vlm_hist_rateformat2>
    </summary>
    <filler>----------------------------------------------------------------------</filler>
    </set>
    </machine>
    </backup>
    - <footer>
    <filler>======================================================================</filler>
    <end_time>Job ended: 26 September 2011 at 02:43:12</end_time>
    <engine_completion_status>Job completion status: Successful</engine_completion_status>
    <filler>======================================================================</filler>
    <completeStatus>19</completeStatus>
    </footer>
    </joblog>

    1. your code does not compile (in your main method you try to create an instance of a class which does not exist).
    2. your XML document is not well formed.
    +[Fatal Error] test.xml:34:74: The content of elements must consist of well-formed character data or markup.+
    org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
    Maybe there are other problems but you can start by fixing these.

  • Parse XML Inbound Interface file

    What are SAP best practices to parse XML Inbound Interface file?
    Currently we are parsing XML Inbound file with custom ABAP code, but it is somewhat cumbersome and requires maintenance.
    We do not any middleware that can parse file for us.
    Is there is any best way we can handle this without lot of maintenance..

    You can do it thro XLST..
    Check this links..
    Upload XML to internal table and vice versa in SAP 4.6C
    /people/r.eijpe/blog/2005/11/10/xml-dom-processing-in-abap-part-i--convert-an-abap-table-into-xml-file-using-sap-dom-approach
    YOu can do it through XLST. it is supported in ABAP from 4.7. you can create a XSLT, and read you XML, then CALL TRANSFORMATION to convert a XML into ABAP data structure.
    reference link:
    http://help.sap.com/saphelp_nw04/helpdata/en/fd/9d7348389211d596a200a0c94260a5/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/bb/576670dca511d4990b00508b6b8b11/content.htm
    Reward each helpful answer.
    Raja T
    Message was edited by:
            Raja Thangamani

Maybe you are looking for