There is a xml parser written in pl/sql

Hi everybody,
We know xml parser for pl/sql is based on xml parser for java, that is, we need the Jsever running. However, Jserver needs 60-80 MB of memory and initially we don't need Jserver, except for xml parsing. Then:
There is a xml parser written in pure pl/sql ?.
Thanks for your help!
Jairo.

PL/SQL is not sufficient to write for XML Parsing. The implementation is either in C or in Java.
If you use Oracle9i, you can take use of XMLType for the C-based XML Parser.

Similar Messages

  • XML Parsing error in PL/SQL

    Hello,
    I have some problem in parsing Mircrosoft OpenXML file using Oracle 10g Release2 XML Parser for PL/SQL.
    I use dbms_xmlparser, dbms_xmldom, dbms_xslprocessor packages
    OpenXML file use "w:" as namespace, so every element has prefix "w:" like
    <w:wordDocument ..>
    <w:body..>
    <w:p..>
    <w:r..>
    <w:t..>
    My job is to read OpenXML file inside PL/SQL code, parse it, and load it into the corresponding table.
    Here is my PL/SQL code.
    DECLARE
    doc dbms_xmldom.DOMDocument;
    node_list dbms_xmldom.DOMNodeList;
    l_node dbms_xmldom.DOMNode;
    one_element dbms_xmldom.DOMElement;
    PROCEDURE p (msg VARCHAR2, nl BOOLEAN := TRUE) IS
    BEGIN
    dbms_output.put_line (msg);
    IF nl THEN dbms_output.put(CHR(10)); END IF;
    END:
    BEGIN
    doc := xml.parse(BFileName('XML_DIR','OpenXMLFile.xml'));
    node_list := xpath.selectNodes(doc, '/w:wordDocument/w:body/w:p/w:r/w:t');
    FOR j IN 0..dbms_xmldom.getLength(node_list)-1
    LOOP
    p( xpath.valueOf(dbms_xmldom.item(node_list, j), '.'), nl=>FALSE );
    END LOOP;
    Here is the error message.
    ERROR at line 1:
    ORA-31011: XML parsing failed
    ORA-19202: Error occurred in XML processing
    LPX-00601: Invalid token in: '/w:wordDocument/w:body/w:p/w:r/w:t
    [starts-with(., "!")]'
    ORA-06512: at "XDB.DBMS_XSLPROCESSOR", line 900
    ORA-06512: at "XDB.DBMS_XSLPROCESSOR", line 928
    ORA-06512: at "SYSTEM.XPATH", line 173
    ORA-06512: at "SYSTEM.XPATH", line 179
    ORA-06512: at line 38
    I really don't know why I got this error message nor how to solve it. If I remove "w:" manually within open xml file, then parsing works well. I guess XML parser for PL/SQL doesn't recognize ":" or maybe doesn't support namespace?
    My question is
    1. In oracle 10g release2, XML Parser for PL/SQL can recognize ":" in the element name? or does it support namespace? If not, is there any workaround for solving this problem?
    2. How can I make XML Parser recognize ":" in the element name in the xml file or How can I declare namespace in the PL/SQL code so that PL/SQL xml parser can recognize namespace like "w:"?
    In fact, I don't use XML DB and what I want to do is just to load XML file into the relational table and some parts of whole XML file will be inserted into the CLOB in the table.
    Should I really use XML DB to do the above job?
    Any comment or suggestions will be greatly appreciated.

    This works correctly. I added prefixes to your extract path. (I had to add the xmlns:xsi to your root node also.)
    declare
      -- Local variables here
       doc_in       dbms_xmldom.DOMDocument;
       aNodeList    dbms_xmldom.DOMNodeList;
    begin
      -- Test statements here
      doc_in := dbms_xmldom.newdomdocument(
    '<?xml version="1.0" encoding="UTF-8"?>' ||
    '<ap:Collection xmlns:ap="http://www.abc.com/ap" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abc.com/ap template.xsd"> ' ||
    '<ap:info>' ||
    '<ap:data name="Barbie" age="3">' ||
    '</ap:data>' ||
    '</ap:info>' ||
    '</ap:Collection>');
      aNodeList := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(doc_in),
                                                 '/ap:Collection/ap:info',
                                                 'xmlns:ap="http://www.abc.com/ap"');  
      dbms_output.put_line('length of aNodeList = '|| dbms_xmldom.getLength(aNodeList) );
    end;

  • Generic XML Parser for PL/SQL

    Is there a generic XML parser written in PL/SQL that does not
    rely on java that will run against a 7.3.4 database?
    If please let me know where I can locate it.
    Thanks,
    Tim
    null

    Tim (guest) wrote:
    : Is there a generic XML parser written in PL/SQL that does not
    : rely on java that will run against a 7.3.4 database?
    : If please let me know where I can locate it.
    : Thanks,
    : Tim
    There is not one currently but there are plans to provide the
    PL/SQL one on top of our C version. You can also check out the
    PLXML Utilities that have a limited version.
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    null

  • Xml parser v2.0.2.9

    We are in the beginning stages of our Oracle XML Gateway project and have made no customizations to out-of-the-box expected functionality of XML gateway product. Currently using Oracle 11.5.7 and RDBMS 8.1.7.3.0
    when running ecxver.sql, results indicated that there were invalid XML parser objects and that it needed to be reinstalled using patch 2199206.
    We downloaded the patch but our SysAdmin needs specific instructions on how to go about applying the patch (evidently it is just file replacement and she needs specific instructions) Our SysAdmin can't find any documentation about the XML parser v2.0.2.9 and installation of that patch.
    Am I correct in assuming that we actually need to run a sql script to LOAD the parser from the XDK library? If so, could someone please point us in the right direction?
    Your help is greatly appreciated!
    Meg Hanson

    Please send the TAR name to me.

  • XML parser performance

    Hello,
    I was wondering if anybody had any experience in regards to the relative performance (i.e., speed) of the different Java XML parsers out there. Specifically,
    javax.xml.parsers.DocumentBuilder.parse() vs. any others.
    My goal is to reduce the amount of time needed to parse ~1000 XML files (avg size 3kb) and I have done some tests that lead me to conclude that the rate-limiting step is not the file i/o (surprisingly).
    Is there any particular XML parser that people favor?
    Thanks,
    ckl

    I have created a parser with interesting performance result with
    files < 100 Ko at http://www.japisoft.com/fastparser
    Regards,
    A.Brillant

  • XMLElement cause ORA-31011: XML parsing failed

    Hi,
    already simple examples,
    e.g. like descibed in tech articles 'SQL in,XML out',
    cause always error 31011.
    What is wrong?
    Is something missing in my installation?
    Worng version?
    SQL> select xmlelement("KUNDEID",KUNDEID) from DSL_KUNDE;
    ERROR:
    ORA-31011: XML parsing failed
    But normal SQL works fine and data is available:
    SQL> select kundeid from dsl_kunde;
    KUNDEID
    1
    2
    3
    Here is the SQL*Plus login message
    SQL*Plus: Release 9.2.0.1.0 - Production on Mi Nov 12 17:14:42 2003
    Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.4.0 - Production

    Please post this message at:
    Forums Home » Oracle Technology Network (OTN) » Products » Database » XML DB

  • I used to use SpeedBit Video Downloader with Mozilla Firefox, but suddenly a problem happened, I can not download with it now at all as there is an code error appears in the bar of SpeedBit like "XML Parsing Error: unclosed token Location: chrome://browse

    I used to use SpeedBit Video Downloader with Mozilla Firefox, but suddenly a problem happened, I can not download with it now at all as there is an code error appears in the bar of SpeedBit like "XML Parsing Error: unclosed token Location: chrome://browser/content/browser.xul Line Number 1, column 8702:....................."
    I did evrey thing, but the same problem
    reinstall SpeedBit, reinstall Mozilla Firefox.
    So what can I do!
    == This happened ==
    Every time Firefox opened
    == 4 days ago

    look people, i may have a solution for this. This happened to me a few times before and resolved alone, but last time it happened was when i turned off my router and back on while my comp was running and appeared when i tried opening firefox after that. so wat i did was i shutdown the computer and the router and tried turning both on again, and it resolved.
    Therefore, Summary: Shutdown computer then turnoff router then turn both back on
    Hope this helps anyone.

  • Why the oracle XML parser "parses" the DTD comments?

    Hi all,
    I always use the header
    <?xml version = '1.0' encoding='ISO-8859-1' ?>
    to be able to use foreign characters in the XML documents.
    The oracle xml parser handles this correctly.
    My problem is, when I write comments inside the DTD, the
    parser reports "Invalid UTF8 encoding".
    Why the parser "parse" the comments? (protected by <!-- and -->)
    How do I say that the DTD encoding is different from UTF, like
    ISO-8859-1?
    Example of a correct DTD and corresponding XML, reporting
    problems, related to the 2nd comment in the DTD specification,
    written with ISO-8859-1 characters.
    The DTD:
    <!-- valid.dtd -->
    <!ELEMENT valid ( B, C ) >
    <!-- valid represents the concept "Identificagco" -->
    <!ELEMENT B (#PCDATA) >
    <!ELEMENT C (#PCDATA) >
    The XML:
    <?xml version = '1.0' encoding='ISO-8859-1' ?>
    <!DOCTYPE valid SYSTEM 'valid.dtd'>
    <valid>
    <B>How are you, Conceigco</B>
    <C>I'm fine, thank you.</C>
    </valid>
    The parser output:
    [jgr@frontera test-dtd]$ java oracle.xml.parser.v2.oraxml -v
    valid.xml
    Error while parsing input sourcevalid.xml(Invalid UTF8 encoding.)
    Thank you for any help.
    Jorge Gustavo Rocha

    I was wrong in saying that the attributes are not added to the element.My main aim is to add a array of elements to the root node.
    Is there a efficient manner in adding the elements , rather than adding them individually with the help of appendChild method.
    Thanks in advance.
    null

  • Problem in XML Parsing via oracle procedure...

    Hi,
    I wrote one oracle procedure for xml parsing.
    I have one valid xml file which has "encode UTF-8". The XML file contains some comments also. While we are parsing the xml file at that time it is not parse successfully and also it is not giving any error. After the following line it is skip rest of the codes(lines).
    dbms_xmlparser.parseclob(l_parser, l_clob);
    At the end of the xml file there are some comments which is like "<!-- abc --> ".
    When I am changing the "encode UTF-8 to ISO-88596-1" & removing the comments which wrote on bottom of the file then its working fine, but the files which we are getting from the system is contains the encode UTF-8 and we don't want to preprocess on that xml files. Even if we will do that via shell script or perl script then it will be overhead to the system and in a single stroke our system will parse more than 5k xml files, so if we will do some preprocess on it, it will take some more time approx 1-2 minutes extra.
    So, If someone knows any solution of this problem, then please guide & help me on this.
    My xml file structure is as follows:-
    <?xml version="1.0" encoding="UTF-8"?>
    <mcd xmlns:HTML="http://www.w3.org/TR/REC-xml">
         <child>
              <child1>32.401 V5.5</child1>
              <child2>ZoneGate</child2>
         </child>
         <mc>
              <newid>
                   <id>12</id>
              </newid>
              <mindex>
                   <date>20111102180000</date>
                   <mt>abc1</mt>
                   <mt>abc2</mt>
                   <mvalue>
                        <r>val_1</r>
                        <r>val_2</r>
                   </mvalue>
              </mindex>
         </mc>
    </mcd>
    <!--
    ALARM STATUS
    morning 10
    afternoon 14
    evening 18
    night 22
    -->
    <!--
    PARAM:EID = 1
    PARAM:GId = 3
    PARAM:GSId = 0
    --!>
    And my oracle procedure is as follows:-
    create or replace procedure loadXMLtotable(dir_name IN varchar2, xmlfile IN varchar2) AS
    -- Defining the variables
    ecode               NUMBER;
    emesg           VARCHAR2(200);
    l_bfile      BFILE;
    l_clob      CLOB;
    l_dest_offset      INTEGER:=1;
    l_src_offset      INTEGER:=1;
    l_Char_set_id      NUMBER := NLS_CHARSET_ID('UTF8');
    l_lang_context      INTEGER := dbms_lob.default_lang_ctx;
    l_warning           INTEGER;
    l_parser dbms_xmlparser.Parser;
    l_doc dbms_xmldom.DOMDocument;
    l_nl1 dbms_xmldom.DOMNodeList;
    l_nl2 dbms_xmldom.DOMNodeList;
    l_n dbms_xmldom.DOMNode;
    node1 dbms_xmldom.DOMNode;
    colid integer ; -- column id used for identifying which column it belongs.
    l_xmltype XMLTYPE;
    sub_xmltype XMLTYPE;
    num_nodes number;
    l_index PLS_INTEGER;
    l_subIndex           PLS_INTEGER;
    starttime Date;
         temp_datatime VARCHAR(25);
    columnname varchar2(300);
    columnvalue varchar2(300);
    -- creating a Type which is a type of "test_hem" table RowType, which I created in SVN server
    TYPE tab_type IS TABLE OF test_hem%ROWTYPE;
    t_tab tab_type := tab_type();
    BEGIN
    -- Passing the xmlfile and virtual directory name which we gave at the time of directory creation
    l_bfile := BFileName('MY_FILES', xmlfile);
    dbms_lob.createtemporary(l_clob, cache=>FALSE);
    dbms_lob.open(l_bfile, dbms_lob.lob_readonly);
    --dbms_lob.loadFromFile(dest_lob => l_clob,
    -- src_lob => l_bfile,
    -- amount => dbms_lob.getLength(l_bfile));
    dbms_lob.loadclobfromfile(l_clob, l_bfile, dbms_lob.getlength(l_bfile),
    l_dest_offset, l_src_offset, l_Char_set_id, l_lang_context, l_warning);
    dbms_lob.close(l_bfile);
    -- make sure implicit date conversions are performed correctly
    dbms_session.set_nls('NLS_DATE_FORMAT','''YYYY-MON-DD HH24:MI:SS''');
    dbms_output.put_line('Date format set');
    -- Create a parser.
    l_parser := dbms_xmlparser.newParser;
    dbms_output.put_line('output 1');
    -- Parse the document and create a new DOM document.
    dbms_xmlparser.parseclob(l_parser, l_clob);
    dbms_output.put_line(' passed parsing');
    l_doc := dbms_xmlparser.getDocument(l_parser);
    dbms_output.put_line(' passed getdocument');
    -- Free resources associated with the CLOB and Parser now they are no longer needed.
    dbms_lob.freetemporary(l_clob);
    dbms_xmlparser.freeParser(l_parser);
    -- Get a list of all the EMP nodes in the document using the XPATH syntax.
    l_nl1 := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'//mcd/child');
    -- Loop through the list and create a new record in a tble collection
    FOR cur_sel IN 0 .. dbms_xmldom.getLength(l_nl1) - 1 LOOP
    l_n := dbms_xmldom.item(l_nl1, cur_sel);
    t_tab.extend;
    -- Use XPATH syntax to assign values to he elements of the collection.
    dbms_xslprocessor.valueOf(l_n,'child1/text()',t_tab(t_tab.last).country);
    -- putting the state and vendorname into the table rowtype
    dbms_xslprocessor.valueOf(l_n,'child2/text()',t_tab(t_tab.last).state);
    END LOOP;
    -- getting the version and putting into the table rowtype
    l_n := dbms_xslprocessor.selectSingleNode(dbms_xmldom.makeNode(l_doc),'//mcd/mc/newid/id');
    dbms_xslprocessor.valueOf(l_n,'id/text()',t_tab(t_tab.last).id);
    -- selecting the nodes whose starting tag is "mindex"
    l_nl1 := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'//mcd/mc/mindex');
    -- checking the total number of nodes whose starting through "mi"
    num_nodes := dbms_xmldom.getLength(l_nl1);
    l_index := 1;
    -- For loop to iterate the nodes.
    FOR cur_sel IN 0 .. dbms_xmldom.getLength(l_nl1) - 1 LOOP
    -- whole current node is selected and storing into the node1 variable
    node1 := dbms_xmldom.item(l_nl1, cur_sel);
    -- setting the xmltype as AL32UTF8
    l_xmltype := xmltype(l_bfile, nls_charset_id('AL32UTF8'));
    -- if selecting parent node containing the mt child node then only proceed else skip that parent node.
    IF (l_xmltype.Existsnode('//mcd/mc/mindex[' || l_index || ']/mt') > 0 and l_xmltype.Existsnode('//mcd/mc/mindex[' || l_index || ']/mvalue/r') > 0) Then
    -- fetch the datatime, convert it into to_date format and store it into table rowtype
    temp_datatime := dbms_xslprocessor.valueOf(node1, 'date/text()');
    t_tab(t_tab.last).data_time := to_char(to_date(temp_datatime, 'YYYYMmcDHH24MISS'));
    l_subIndex := 1;
                                  while (l_xmltype.Existsnode('//mcd/mc/mindex[' || l_index || ']/mt[' || l_subIndex || ']') > 0 and l_xmltype.Existsnode('//mcd/mc/mindex[' || l_index || ']/mvalue/r['|| l_subIndex || ']') > 0 ) LOOP
                                  -- getting mt and corresponging mvalue/r values
    dbms_xslprocessor.valueOf(node1,'mt[' || l_subIndex || ']/text()',columnname);
    dbms_xslprocessor.valueOf(node1,'mvalue/r[' || l_subIndex || ']/text()',columnvalue);
    l_subIndex := l_subIndex + 1;
    -- getting the column to which this mapping belongs.
    select columnid into colid from abc_table where columnname=name;
    CASE colid
    WHEN 1 THEN t_tab(t_tab.last).col1 := columnvalue;
                             WHEN 2 THEN t_tab(t_tab.last).col2 := columnvalue;
                             WHEN 3 THEN t_tab(t_tab.last).col3 := columnvalue;
    ELSE dbms_output.put_line('No column mapping for counter ' || columnname) ;
    END CASE; -- end of case statement.
    END LOOP;
    -- Insert data into the real table from the table collection.
    FORALL i IN t_tab.first .. t_tab.last
    INSERT INTO test_hem VALUES t_tab(i);
    END IF;
    l_index := l_index + 1;
    COMMIT;
    END LOOP;
    commit;
    EXCEPTION
    WHEN OTHERS THEN
    ecode := SQLCODE;
    emesg := SQLERRM;
    dbms_output.put_line(TO_CHAR(ecode) || '-' || emesg);
         dbms_lob.freetemporary(l_clob);
         dbms_xmlparser.freeParser(l_parser);
         dbms_xmldom.freeDocument(l_doc);
    END;

    Sorry Odie,
    I am new to this site as well as PL/SQL. I am giving additional details which you had mentioned in your last comments.
    our Oracle Database version is "10.2.0.4.0"
    The structure of target table Instrument_Details is as follows:
    Create table Instrument_Details (
    instrument_id          Integer  Primary Key,
    provider_name          Varchar2(32),
    version_number          Varchar2(32),
    location_id                  Integer,
    installation_date             Date,
    granularity                  Integer,
    time_out                  Integer );
    Note:- Here test_hem is alias of Instrument_details.
    Here instrument_id is a primary key.
    provider_name contains the child2 xml tag value.
    version_number contains the child1 xml tag value.
    location_id contains the newid/id value which is map to other table which fetching the location name corresponding to the location_id.
    installation_date contains the date xml tag value.
    Now we have created one mapping tables where we mapped the xml tag values "mt" with table column name means "abc1 = granularity", "abc2 = time_out" in that table.
    these table column value are written under mvalue xml tag.
    _Our Database Character set is_:-
    NLS_CHARACTERSET WE8ISO8859P1
    Now as you suggest me to format your code. I am writing the xml code and procedure code again.
    My xml file structure is as follows:-
    <?xml version="1.0" encoding="UTF-8"?>
    <mcd xmlns:HTML="http://www.w3.org/TR/REC-xml">
      <child>
          <child1>32.401 V5.5</child1>
          <child2>ZoneGate</child2>
      </child>
      <mc>
          <newid>
               <id>12</id>
          </newid>
      <mindex>
           <date>20111102180000</date>
           <mt>abc1</mt>
           <mt>abc2</mt>
           <mvalue>
                 <r>val_1</r>   -- here val_1 and val_2 are numeric values
                 <r>val_2</r>
            </mvalue>
      </mindex>
      </mc>
    </mcd>
    <!--
    ALARM STATUS
    morning 10
    afternoon 14
    evening 18
    night 22
    -->
    <!--
    PARAM:EID = 1
    PARAM:GId = 3
    PARAM:GSId = 0
    --!> And my oracle procedure is as follows:-
    create or replace procedure loadXMLtotable(dir_name IN varchar2, xmlfile IN varchar2) AS
    -- Defining the variables
    ecode NUMBER;
    emesg VARCHAR2(200);
    l_bfile BFILE;
    l_clob CLOB;
    l_dest_offset INTEGER:=1;
    l_src_offset INTEGER:=1;
    l_Char_set_id NUMBER := NLS_CHARSET_ID('UTF8');
    l_lang_context INTEGER := dbms_lob.default_lang_ctx;
    l_warning INTEGER;
    l_parser dbms_xmlparser.Parser;
    l_doc dbms_xmldom.DOMDocument;
    l_nl1 dbms_xmldom.DOMNodeList;
    l_nl2 dbms_xmldom.DOMNodeList;
    l_n dbms_xmldom.DOMNode;
    node1 dbms_xmldom.DOMNode;
    colid integer ; -- column id used for identifying which column it belongs.
    l_xmltype XMLTYPE;
    sub_xmltype XMLTYPE;
    num_nodes number;
    l_index PLS_INTEGER;
    l_subIndex PLS_INTEGER;
    starttime Date;
    temp_datatime VARCHAR(25);
    columnname varchar2(300);
    columnvalue varchar2(300);
    -- creating a Type which is a type of "Instrument_Details" table RowType, which I created in SVN server
    TYPE tab_type IS TABLE OF Instrument_Details%ROWTYPE;
    t_tab tab_type := tab_type();
    BEGIN
    -- Passing the xmlfile and virtual directory name which we gave at the time of directory creation
    l_bfile := BFileName('MY_FILES', xmlfile);
    dbms_lob.createtemporary(l_clob, cache=>FALSE);
    dbms_lob.open(l_bfile, dbms_lob.lob_readonly);
    --dbms_lob.loadFromFile(dest_lob => l_clob,
    -- src_lob => l_bfile,
    -- amount => dbms_lob.getLength(l_bfile));
    dbms_lob.loadclobfromfile(l_clob, l_bfile, dbms_lob.getlength(l_bfile),
    l_dest_offset, l_src_offset, l_Char_set_id, l_lang_context, l_warning);
    dbms_lob.close(l_bfile);
    -- make sure implicit date conversions are performed correctly
    dbms_session.set_nls('NLS_DATE_FORMAT','''YYYY-MON-DD HH24:MI:SS''');
    dbms_output.put_line('Date format set');
    -- Create a parser.
    l_parser := dbms_xmlparser.newParser;
    dbms_output.put_line('output 1');
    -- Parse the document and create a new DOM document.
    dbms_xmlparser.parseclob(l_parser, l_clob);
    *-- Below lines are skipping....*
    dbms_output.put_line(' passed parsing');
    l_doc := dbms_xmlparser.getDocument(l_parser);
    dbms_output.put_line(' passed getdocument');
    -- Free resources associated with the CLOB and Parser now they are no longer needed.
    dbms_lob.freetemporary(l_clob);
    dbms_xmlparser.freeParser(l_parser);
    -- Get a list of all the EMP nodes in the document using the XPATH syntax.
    l_nl1 := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'//mcd/child');
    -- Loop through the list and create a new record in a tble collection
    FOR cur_sel IN 0 .. dbms_xmldom.getLength(l_nl1) - 1 LOOP
    l_n := dbms_xmldom.item(l_nl1, cur_sel);
    t_tab.extend;
    -- Use XPATH syntax to assign values to he elements of the collection.
    dbms_xslprocessor.valueOf(l_n,'child1/text()',t_tab(t_tab.last).country);
    -- putting the state and vendorname into the table rowtype
       dbms_xslprocessor.valueOf(l_n,'child2/text()',t_tab(t_tab.last).state);
    END LOOP;
    -- getting the version and putting into the table rowtype
       l_n := dbms_xslprocessor.selectSingleNode(dbms_xmldom.makeNode(l_doc),'//mcd/mc/newid/id');
      dbms_xslprocessor.valueOf(l_n,'id/text()',t_tab(t_tab.last).id);
    -- selecting the nodes whose starting tag is "mindex"
      l_nl1 := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'//mcd/mc/mindex');
    -- checking the total number of nodes whose starting through "mi"
      num_nodes := dbms_xmldom.getLength(l_nl1);
    l_index := 1;
      -- For loop to iterate the nodes.
      FOR cur_sel IN 0 .. dbms_xmldom.getLength(l_nl1) - 1 LOOP
      -- whole current node is selected and storing into the node1 variable
      node1 := dbms_xmldom.item(l_nl1, cur_sel);
      -- setting the xmltype as AL32UTF8
       l_xmltype := xmltype(l_bfile, nls_charset_id('AL32UTF8'));
      -- if selecting parent node containing the mt child node then only proceed else skip that parent node.
        IF (l_xmltype.Existsnode('//mcd/mc/mindex[' || l_index || ']/mt') > 0 and l_xmltype.Existsnode('//mcd/mc/mindex[' || l_index || ']/mvalue/r') > 0) Then
      -- fetch the datatime, convert it into to_date format and store it into table rowtype
        temp_datatime := dbms_xslprocessor.valueOf(node1, 'date/text()');
        t_tab(t_tab.last).data_time := to_char(to_date(temp_datatime, 'YYYYMmcDHH24MISS'));
        l_subIndex := 1;
       while (l_xmltype.Existsnode('//mcd/mc/mindex[' || l_index || ']/mt[' || l_subIndex || ']') > 0 and l_xmltype.Existsnode('//mcd/mc/mindex[' || l_index || ']/mvalue/r['|| l_subIndex || ']') > 0 ) LOOP
    -- getting mt and corresponging mvalue/r values
       dbms_xslprocessor.valueOf(node1,'mt[' || l_subIndex || ']/text()',columnname);
      dbms_xslprocessor.valueOf(node1,'mvalue/r[' || l_subIndex || ']/text()',columnvalue);
      l_subIndex := l_subIndex + 1;
      -- getting the column to which this mapping belongs.
      select columnid into colid from abc_table where columnname=name;
      CASE colid
      WHEN 1 THEN t_tab(t_tab.last).col1 := columnvalue;
      WHEN 2 THEN t_tab(t_tab.last).col2 := columnvalue;
      WHEN 3 THEN t_tab(t_tab.last).col3 := columnvalue;
          ELSE dbms_output.put_line('No column mapping for counter ' || columnname) ;
      END CASE; -- end of case statement.
      END LOOP;
    -- Insert data into the real table from the table collection.
      FORALL i IN t_tab.first .. t_tab.last
        INSERT INTO test_hem VALUES t_tab(i);
      END IF;
      l_index := l_index + 1;
    COMMIT;
    END LOOP;
    commit;
    EXCEPTION
      WHEN OTHERS THEN
      ecode := SQLCODE;
      emesg := SQLERRM;
      dbms_output.put_line(TO_CHAR(ecode) || '-' || emesg);
      dbms_lob.freetemporary(l_clob);
      dbms_xmlparser.freeParser(l_parser);
      dbms_xmldom.freeDocument(l_doc);
    END;Thanks in advance for your help...

  • XML parsing with SQL/PL-SQL

    Hi,
    My question is about how can an XML message can be best parsed using SQL/PL-SQL.
    The scenario is as follow. The XML message is stored in a CLOB; only some of its data needs to be extracted; there are six different types of structures of XML; the size of each XML is about 50 lines (maximum depth level is 3); the data could be written in English or Greek or French or German or Russian; this is going to be done every hour and the parsing is going to be against 3,000 records approx.
    In the development, I need to take into consideration performance. We are using Oracle 10, but we could migrate to Oracle 11 if necessary.
    Apologies for this basic question but I have never done XML parsing in SQL/PL-SQL before.
    Thank you.
    PS I have copied this question to the XML forum.
    Edited by: user3112983 on May 19, 2010 3:30 PM
    Edited by: user3112983 on May 19, 2010 3:39 PM

    user3112983 wrote:
    The scenario is as follow. The XML message is stored in a CLOB; only some of its data needs to be extracted; there are six different types of structures of XML; the size of each XML is about 50 lines (maximum depth level is 3); the data could be written in English or Greek or French or German or Russian; this is going to be done every hour and the parsing is going to be against 3,000 records approx.Parsing is done using the XMLTYPE data type (object class) in Oracle.
    Something as follows:
    SQL> create table xml_doc( id number, doc clob );
    Table created.
    SQL>
    SQL> insert into xml_doc values( 1, '<root><row><name>John</name></row><row><name>Jack</name></row></root>' );
    1 row created.
    SQL> commit;
    Commit complete.
    SQL>
    SQL> declare
      2          rawXml  xml_doc.doc%type;
      3          xml     xmltype;
      4  begin
      5          -- get the raw XML (as a CLOB)
      6          select doc into rawXml from xml_doc where id = 1;
      7
      8          -- parse it
      9          xml := new xmltype( rawXml );  
    10         -- process the XML...
    11  end;
    12  /
    PL/SQL procedure successfully completed.
    SQL>The variable xml in the sample code is the XML DOM object. XML functions can be used against it (e.g. to extract values in a tabular row and column structure).
    Note that the CLOB needs to contain a valid XML. An XML containing XML fragments is not valid and cannot be parsed. E.g.
    SQL> declare
      2          xml     xmltype;
      3  begin
      4          -- attemp to parse fragments
      5          xml := new xmltype( '<row><name>John</name></row>  <data><column>Name</column></data>' );
      6  end;
      7  /
    declare
    ERROR at line 1:
    ORA-31011: XML parsing failed
    ORA-19202: Error occurred in XML processing
    LPX-00245: extra data after end of document
    Error at line 1
    ORA-06512: at "SYS.XMLTYPE", line 301
    ORA-06512: at line 5This XML contains 2 fragments. A row structure and a data structure. It is not a valid XML and as such cannot be parsed. If a root tag is used to encapsulate these 2 fragments, then it will be a valid XML structure.
    In the development, I need to take into consideration performance. We are using Oracle 10, but we could migrate to Oracle 11 if necessary.Have not run into any XML performance problems specifically - and am using it extensively. Even large XMLs (10's of 1000's of elements) parse pretty fast.

  • ANN: Oracle XML Parser for Java v2.0.2

    The new version of the Oracle XML Parser for Java v2 is
    available for download and has the following features and
    changes:
    1. Conformance to the XSLT/XPATH August WD.
    Note that there are several changes between April99 XSLT draft
    and the August99 XSLT/Xpath draft and these changes have been
    implemented in the XSL Processor. The XSL Processor has been
    modified to accept XPath syntax for expressions and patterns.
    Stylesheets might have to be modified to be conformant to the
    August XSLT/XPath draft before they can be used with this
    release.
    Some of the changes between April draft and the August draft
    are:
    a. Expressions in the stylesheet must match the XPath
    production Expr.
    b. Some of the attribute names and element names in XSL
    namespace have changed.
    c. Some new functions have been added to XPath CORE function
    library.
    Please refer to the August XSLT/XPath draft for more details.
    This is the first production release for v2.
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    null

    The link has been fixed. You will go to the v2 download page
    now. Sorry for the inconvience.
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    Renilton Oliveira (guest) wrote:
    : I didn't find the file for version 2.0.0.0 as well.
    : Renilton
    : Andrei Filimonov (guest) wrote:
    : : I tried to download XML Parser for Java v2 it seems that
    only
    : v
    : : 1.0.1.4 is available. Could you please give an exact URL for
    : v2
    : : download?
    : : Andrei Filimonov
    : : Oracle XML Team wrote:
    : : : The Oracle XML v2 parser is now available for download
    here
    : as
    : : : an early beta release and is written in Java. It features
    : an
    : : : improved architecture over the Oracle XML v1 parser and
    has
    : : : shown better performance on small to large XML documents.
    : It
    : : : will also be able to format the XML document according to
    a
    : : : stylesheet, having integrated an XSLT processor.
    : : : Version 2 of the XML Parser for Java, besides
    incorporating
    : an
    : : : XSLT processor, has been re-architected from version 1.
    This
    : : has
    : : : resulted in a number of changes to the class names
    : especially
    : : : those that support Namespaces. See v2changes.txt and
    : the .diff
    : : : difference files in the sample directory.
    : : : Oracle XML Team
    : : : http://technet.oracle.com
    : : : Oracle Technology Network
    null

  • Error during XML Parser Sample building.

    I tried to build your sample for XML Parser for C++ v.2 for Solaris.
    I had some errors :
    c++ -o DOMSample -I../include DOMSample.cpp -L../lib -lxml8 -lcore8 -lnls8 -lcore8 -lnls8 -lcore8 -lnsl -lsocket
    Undefined first referenced
    symbol in file
    Node::getFirstChild void) /var/tmp/ccxhDPf2.o
    Node::getValue(void) /var/tmp/ccxhDPf2.o
    Node::hasChildNodes(void) /var/tmp/ccxhDPf2.o
    Node::getChildNode(unsigned int) /var/tmp/ccxhDPf2.o
    Node::getName(void) /var/tmp/ccxhDPf2.o
    Node::numChildNodes(void) /var/tmp/ccxhDPf2.o
    Node::getType(void) /var/tmp/ccxhDPf2.o
    ld: fatal: Symbol referencing errors. No output written to DOMSample
    collect2: ld returned 1 exit status
    make: *** [DOMSample] Error 1
    I use Solaris version 2.7 and c++ (gcc)version 2.95.
    I tried with the -G compilation option.(for comptability with other compilers.
    It compiled but the executable doesnot run.
    Please, could you give the right compilation options.
    null

    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.

  • Error when Bursting - XML Parser expected '-- ' instead of 'EOF'.

    Hi,
    We're generating invoices using BI Publisher as one large XML report, then routing them to customers using the concurrent bursting program to break up the xml by customer and faxing / emailing / printing as needed.
    the report seems to generate properly - here's a sample:
    <?xml version="1.0"?>
    <!-- Generated by Oracle Reports version 6.0.8.27.0 -->
    <DWDRAXINV>
    <LIST_G_ORDER_BY>
    <G_ORDER_BY>
    <ORDER_BY>100800</ORDER_BY>
    <LIST_G_INVOICE>
    <G_INVOICE>
    <CUSTOMER_TRX_ID>xx</CUSTOMER_TRX_ID>
    <TRX_NUMBER>100800</TRX_NUMBER>
    <TRX_TYPE>INV</TRX_TYPE>
    <TRX_TYPE_NAME>Invoice</TRX_TYPE_NAME>
    <OPEN_RECEIVABLE_FLAG>Y</OPEN_RECEIVABLE_FLAG>
    <TRX_DATE>04-APR-05</TRX_DATE>
    <BILL_TO_CUSTOMER_ID>40214</BILL_TO_CUSTOMER_ID>
    <BILL_TO_CONTACT_ID/>
    <SHIP_TO_CUSTOMER_ID>9663</SHIP_TO_CUSTOMER_ID>
    <SHIP_TO_CONTACT_ID/>
    <REMIT_TO_ADDRESS_ID>1210</REMIT_TO_ADDRESS_ID>
    <BILL_TO_SITE_USE_ID>245883</BILL_TO_SITE_USE_ID>
    <PRIMARY_SALESREP_ID>xx</PRIMARY_SALESREP_ID>
    <CUSTOMER_NUMBER>xx</CUSTOMER_NUMBER>
    <INTERNAL_NOTES/>
    <PREVIOUS_CUSTOMER_TRX_ID/>
    <SHIP_TO_SITE_USE_ID>55369</SHIP_TO_SITE_USE_ID>
    <BATCH_SOURCE_ID>1024</BATCH_SOURCE_ID>
    <PRINTING_COUNT>9</PRINTING_COUNT>
    <PRINTING_ORIGINAL_DATE>05-APR-05</PRINTING_ORIGINAL_DATE>
    <LAST_PRINTED_SEQUENCE_NUMBER>1</LAST_PRINTED_SEQUENCE_NUMBER>
    <START_DATE_COMMITMENT/>
    <END_DATE_COMMITMENT/>
    <INITIAL_CUSTOMER_TRX_ID/>
    <INVOICE_CURRENCY_CODE>USD</INVOICE_CURRENCY_CODE>
    <BILL_CUST_NAME>xx</BILL_CUST_NAME>
    <BILL_ADDRESS1>xx</BILL_ADDRESS1>
    <BILL_ADDRESS2>xx</BILL_ADDRESS2>
    <BILL_ADDRESS3>xx</BILL_ADDRESS3>
    <BILL_ADDRESS4/>
    <BILL_CITY>CONCORD</BILL_CITY>
    <BILL_STATE>CA</BILL_STATE>
    <BILL_POSTAL_CODE>94524-xx</BILL_POSTAL_CODE>
    <BILL_COUNTRY>US</BILL_COUNTRY>
    <TERM_ID>1016</TERM_ID>
    <PURCHASE_ORDER_REVISION/>
    <PURCHASE_ORDER_DATE/>
    <TRX_COMMENTS/>
    <BILL_TO_LOCATION>PO BOX Q</BILL_TO_LOCATION>
    <BILL_TO_ADDRESS1>PO BOX xx1</BILL_TO_ADDRESS1>
    <BILL_TO_ADDRESS2>xx</BILL_TO_ADDRESS2>
    <BILL_TO_ADDRESS3>10365268 / 348025</BILL_TO_ADDRESS3>
    <BILL_TO_ADDRESS4/>
    <BILL_TO_STATE>CA</BILL_TO_STATE>
    <BILL_TO_PROVINCE/>
    <LIST_G_INV_TERM>
    <G_INV_TERM>
    <SALES_ORDER_NUMBER>15042116</SALES_ORDER_NUMBER>
    <INTERFACE_HEADER_CONTEXT>ORDER ENTRY</INTERFACE_HEADER_CONTEXT>
    <PARTY_ID>43923</PARTY_ID>
    <C_ACCT_ID>40214</C_ACCT_ID>
    <TERM_SEQUENCE_NUMBER>1</TERM_SEQUENCE_NUMBER>
    <SHIP_DATE_ACTUAL>04-APR-05</SHIP_DATE_ACTUAL>
    <SHIP_VIA/>
    <WAYBILL_NUMBER>0</WAYBILL_NUMBER>
    <CREDIT_MEMO_TYPE_ID>1130</CREDIT_MEMO_TYPE_ID>
    <BILL_TO_ADDRESS_ID/>
    <TRX_ORG>509</TRX_ORG>
    <PURCHASE_ORDER_NUMBER>9373872-4</PURCHASE_ORDER_NUMBER>
    <TERM_DUE_DATE_FROM_PS>05-APR-05</TERM_DUE_DATE_FROM_PS>
    <TRX_LINE_AMOUNT>85</TRX_LINE_AMOUNT>
    <TRX_TAX_AMOUNT>0</TRX_TAX_AMOUNT>
    <BILL_CUST_TAX_REFERENCE/>
    <TERM_RELATIVE_AMOUNT>100</TERM_RELATIVE_AMOUNT>
    <PRINTING_LAST_PRINTED>11-JAN-08</PRINTING_LAST_PRINTED>
    <TRX_ALL_AMOUNT>85</TRX_ALL_AMOUNT>
    <PRINTING_PENDING>N</PRINTING_PENDING>
    <BILL_SITE_TAX_REFERENCE/>
    <TRX_FREIGHT_AMOUNT>0</TRX_FREIGHT_AMOUNT>
    <TERM_NAME>COD</TERM_NAME>
    <LIST_G_LINE_TOTAL>
    <G_LINE_TOTAL>
    <LINE_OF_TYPE_FRT>A</LINE_OF_TYPE_FRT>
    <ORDER_BY1>1</ORDER_BY1>
    <LINK_TO_LINE>2445027</LINK_TO_LINE>
    <DUMMY>1</DUMMY>
    <LIST_G_LINES>
    <G_LINES>
    <LINE_ORDER>1</LINE_ORDER>
    <LINE_NUMBER>1</LINE_NUMBER>
    <ASSET_CREATION_CODE>43883</ASSET_CREATION_CODE>
    <EQUIPMENT_TYPE>1</EQUIPMENT_TYPE>
    <CONFIG_MODEL_TYPE>STANDARD</CONFIG_MODEL_TYPE>
    <BUYER_ID>113851</BUYER_ID>
    <UN_NUMBER_ID>433207</UN_NUMBER_ID>
    <INVOICING_RULE_ID>0</INVOICING_RULE_ID>
    <INVENTORY_ITEM_STATUS_CODE>TRAVEL LAB</INVENTORY_ITEM_STATUS_CODE>
    <DEFAULT_SO_SOURCE_TYPE>433207</DEFAULT_SO_SOURCE_TYPE>
    <CONTACT_NAME/>
    <ITEM_NUMBER>TRAVEL-CA</ITEM_NUMBER>
    <LINE_CUSTOMER_TRX_ID>179471</LINE_CUSTOMER_TRX_ID>
    <LINE_CUSTOMER_TRX_LINE_ID>2445027</LINE_CUSTOMER_TRX_LINE_ID>
    <SALES_ORDER_LINE_NUMBER>1</SALES_ORDER_LINE_NUMBER>
    <LINE_CHILD_INDICATOR>0</LINE_CHILD_INDICATOR>
    <LINE_TYPE>LINE</LINE_TYPE>
    <LINE_ITEM_DESCRIPTION>TRAVEL LABOR - CA</LINE_ITEM_DESCRIPTION>
    <LINE_QTY_ORDERED>.5</LINE_QTY_ORDERED>
    <LINE_QTY_INVOICED>.5</LINE_QTY_INVOICED>
    <LINE_UOM>HOUR</LINE_UOM>
    <LINE_UNIT_SELLING_PRICE>68</LINE_UNIT_SELLING_PRICE>
    <LINE_EXTENDED_AMOUNT>34</LINE_EXTENDED_AMOUNT>
    <LINE_NET_AMOUNT>34</LINE_NET_AMOUNT>
    <LINE_TAX_RATE/>
    <LINE_VAT_TAX_ID>1245</LINE_VAT_TAX_ID>
    <LINE_TAX_EXEMPTION_ID/>
    <LINE_LOCATION_RATE_ID/>
    <LINK_TO_CUST_TRX_LINE_ID>-1</LINK_TO_CUST_TRX_LINE_ID>
    <LINE_TAX_PRECEDENCE/>
    <LINE_IS_A_CHILD_FLAG>N</LINE_IS_A_CHILD_FLAG>
    <LINE_TAX_INCLUSIVE>N</LINE_TAX_INCLUSIVE>
    <LINE_SALES_ORDER_DATE>04-APR-05</LINE_SALES_ORDER_DATE>
    <LINE_SALES_ORDER>15042116</LINE_SALES_ORDER>
    <LIST_G_TAX_RATE>
    <G_TAX_RATE>
    <LINE_CUSTOMER_TRX_ID1>179471</LINE_CUSTOMER_TRX_ID1>
    <LINK_TO_CUST_TRX_LINE_ID1>2445027</LINK_TO_CUST_TRX_LINE_ID1>
    <LINE_TAX_RATE1>0</LINE_TAX_RATE1>
    </G_TAX_RATE>
    </LIST_G_TAX_RATE>
    <CF_INVOICE_LINE_PRINT_NUMBER>1</CF_INVOICE_LINE_PRINT_NUMBER>
    <C_SER_REQ>43883</C_SER_REQ>
    <C_SHIP_INSTR/>
    <C_SER_REQDATE>10-JAN-05</C_SER_REQDATE>
    <C_PROB_DESC/>
    <C_DISCOUNT>0</C_DISCOUNT>
    <CF_ITEM_DISCOUNT_STRING/>
    <CF_ITEM_DESC_DSP/>
    <C_PRB_RES/>
    <SETLINESPRINTEDFLAG>1</SETLINESPRINTEDFLAG>
    <SET_PRINTED_FLAG/>
    <CF_SERIAL_NUMBER/>
    <D_LINE_UNIT_SELLING_PRICE> 68.00 </D_LINE_UNIT_SELLING_PRICE>
    <CP_LINE_EXTENDED_AMOUNT> 34.00 </CP_LINE_EXTENDED_AMOUNT>
    <CP_DISCOUNT>0</CP_DISCOUNT>
    <LINE_DESCRIPTION>TRAVEL LABOR - CA </LINE_DESCRIPTION>
    <LINE_TAXYN/>
    <CP_LINE_ITEM_AMOUNT>68</CP_LINE_ITEM_AMOUNT>
    <LINE_ITEM_AMOUNT>17</LINE_ITEM_AMOUNT>
    <LINE_TAX_AMOUNT>0</LINE_TAX_AMOUNT>
    <LINE_FREIGHT_AMOUNT>0</LINE_FREIGHT_AMOUNT>
    <LINE_TAX_INCL_AMOUNT>0</LINE_TAX_INCL_AMOUNT>
    <CF_LINE_ALL_AMOUNT>68</CF_LINE_ALL_AMOUNT>
    </G_LINES>
    </LIST_G_LINES>
    <D_LINE_TOTAL> 17.00 </D_LINE_TOTAL>
    <LINE_TOTAL>17</LINE_TOTAL>
    <LINE_CHILDREN_COUNT>0</LINE_CHILDREN_COUNT>
    <MIN_LINK_TO_CUST_TRX_LINE_ID>-1</MIN_LINK_TO_CUST_TRX_LINE_ID>
    <MIN_LINE_TYPE>LINE</MIN_LINE_TYPE>
    <CS_LINE_ALL_TOTAL>68</CS_LINE_ALL_TOTAL>
    </G_LINE_TOTAL>
    <G_LINE_TOTAL>
    <LINE_OF_TYPE_FRT>A</LINE_OF_TYPE_FRT>
    <ORDER_BY1>2</ORDER_BY1>
    <LINK_TO_LINE>2445028</LINK_TO_LINE>
    <DUMMY>1</DUMMY>
    <LIST_G_LINES>
    <G_LINES>
    <LINE_ORDER>2</LINE_ORDER>
    <LINE_NUMBER>2</LINE_NUMBER>
    <ASSET_CREATION_CODE>43883</ASSET_CREATION_CODE>
    <EQUIPMENT_TYPE>2</EQUIPMENT_TYPE>
    <CONFIG_MODEL_TYPE>STANDARD</CONFIG_MODEL_TYPE>
    <BUYER_ID>113851</BUYER_ID>
    <UN_NUMBER_ID>433208</UN_NUMBER_ID>
    <INVOICING_RULE_ID>0</INVOICING_RULE_ID>
    <INVENTORY_ITEM_STATUS_CODE>SERVICE LA</INVENTORY_ITEM_STATUS_CODE>
    <DEFAULT_SO_SOURCE_TYPE>433208</DEFAULT_SO_SOURCE_TYPE>
    <CONTACT_NAME/>
    <ITEM_NUMBER>LABOR-CA</ITEM_NUMBER>
    <LINE_CUSTOMER_TRX_ID>xx</LINE_CUSTOMER_TRX_ID>
    <LINE_CUSTOMER_TRX_LINE_ID>2445028</LINE_CUSTOMER_TRX_LINE_ID>
    <SALES_ORDER_LINE_NUMBER>2</SALES_ORDER_LINE_NUMBER>
    <LINE_CHILD_INDICATOR>0</LINE_CHILD_INDICATOR>
    <LINE_TYPE>LINE</LINE_TYPE>
    <LINE_ITEM_DESCRIPTION>SERVICE LABOR - CA</LINE_ITEM_DESCRIPTION>
    <LINE_QTY_ORDERED>.75</LINE_QTY_ORDERED>
    <LINE_QTY_INVOICED>.75</LINE_QTY_INVOICED>
    <LINE_UOM>HOUR</LINE_UOM>
    <LINE_UNIT_SELLING_PRICE>68</LINE_UNIT_SELLING_PRICE>
    <LINE_EXTENDED_AMOUNT>51</LINE_EXTENDED_AMOUNT>
    <LINE_NET_AMOUNT>51</LINE_NET_AMOUNT>
    <LINE_TAX_RATE/>
    <LINE_VAT_TAX_ID>1245</LINE_VAT_TAX_ID>
    <LINE_TAX_EXEMPTION_ID/>
    <LINE_LOCATION_RATE_ID/>
    <LINK_TO_CUST_TRX_LINE_ID>-1</LINK_TO_CUST_TRX_LINE_ID>
    <LINE_TAX_PRECEDENCE/>
    <LINE_IS_A_CHILD_FLAG>N</LINE_IS_A_CHILD_FLAG>
    <LINE_TAX_INCLUSIVE>N</LINE_TAX_INCLUSIVE>
    <LINE_SALES_ORDER_DATE>04-APR-05</LINE_SALES_ORDER_DATE>
    <LINE_SALES_ORDER>15042116</LINE_SALES_ORDER>
    <LIST_G_TAX_RATE>
    <G_TAX_RATE>
    <LINE_CUSTOMER_TRX_ID1>xx</LINE_CUSTOMER_TRX_ID1>
    <LINK_TO_CUST_TRX_LINE_ID1>2445028</LINK_TO_CUST_TRX_LINE_ID1>
    <LINE_TAX_RATE1>0</LINE_TAX_RATE1>
    </G_TAX_RATE>
    </LIST_G_TAX_RATE>
    <CF_INVOICE_LINE_PRINT_NUMBER>2</CF_INVOICE_LINE_PRINT_NUMBER>
    <C_SER_REQ>43883</C_SER_REQ>
    <C_SHIP_INSTR/>
    <C_SER_REQDATE>10-JAN-05</C_SER_REQDATE>
    <C_PROB_DESC/>
    <C_DISCOUNT>0</C_DISCOUNT>
    <CF_ITEM_DISCOUNT_STRING/>
    <CF_ITEM_DESC_DSP/>
    <C_PRB_RES/>
    <SETLINESPRINTEDFLAG>1</SETLINESPRINTEDFLAG>
    <SET_PRINTED_FLAG/>
    <CF_SERIAL_NUMBER/>
    <D_LINE_UNIT_SELLING_PRICE> 68.00 </D_LINE_UNIT_SELLING_PRICE>
    <CP_LINE_EXTENDED_AMOUNT> 51.00 </CP_LINE_EXTENDED_AMOUNT>
    <CP_DISCOUNT>0</CP_DISCOUNT>
    <LINE_DESCRIPTION>SERVICE LABOR - CA </LINE_DESCRIPTION>
    <LINE_TAXYN/>
    <CP_LINE_ITEM_AMOUNT>68</CP_LINE_ITEM_AMOUNT>
    <LINE_ITEM_AMOUNT>38.25</LINE_ITEM_AMOUNT>
    <LINE_TAX_AMOUNT>0</LINE_TAX_AMOUNT>
    <LINE_FREIGHT_AMOUNT>0</LINE_FREIGHT_AMOUNT>
    <LINE_TAX_INCL_AMOUNT>0</LINE_TAX_INCL_AMOUNT>
    <CF_LINE_ALL_AMOUNT>68</CF_LINE_ALL_AMOUNT>
    </G_LINES>
    </LIST_G_LINES>
    <D_LINE_TOTAL> 38.25 </D_LINE_TOTAL>
    <LINE_TOTAL>38.25</LINE_TOTAL>
    <LINE_CHILDREN_COUNT>0</LINE_CHILDREN_COUNT>
    <MIN_LINK_TO_CUST_TRX_LINE_ID>-1</MIN_LINK_TO_CUST_TRX_LINE_ID>
    <MIN_LINE_TYPE>LINE</MIN_LINE_TYPE>
    <CS_LINE_ALL_TOTAL>68</CS_LINE_ALL_TOTAL>
    </G_LINE_TOTAL>
    </LIST_G_LINE_TOTAL>
    <LIST_G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451402</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>34</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 34.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451403</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>34</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 34.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451404</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>34</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 34.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451406</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>51</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 51.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451407</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>51</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 51.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451408</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>SBXNOTAX</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>51</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax SBXNOTAX @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 51.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2445028</TRX_LINE_ID>
    <INV_TAX_TYPE>LINE</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Line</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION>SERVICE LABOR - CA</INV_TAX_LINE_DESCRIPTION>
    <INV_TAX_EXTENDED_AMOUNT>51</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>Sabrix</INV_TAX_CODE_NAME>
    <INV_TAX_RATE/>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT/>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 51.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>51</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Line</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2445027</TRX_LINE_ID>
    <INV_TAX_TYPE>LINE</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Line</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION>TRAVEL LABOR - CA</INV_TAX_LINE_DESCRIPTION>
    <INV_TAX_EXTENDED_AMOUNT>34</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>Sabrix</INV_TAX_CODE_NAME>
    <INV_TAX_RATE/>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT/>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 34.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>34</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Line</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451401</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>US Tax</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>34</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax US Tax @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 34.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    <G_SUMMARY_INV>
    <TRX_LINE_ID>2451405</TRX_LINE_ID>
    <INV_TAX_TYPE>TAX</INV_TAX_TYPE>
    <INV_TAX_TYPE_NAME>Tax</INV_TAX_TYPE_NAME>
    <INV_TAX_LINE_DESCRIPTION/>
    <INV_TAX_EXTENDED_AMOUNT>0</INV_TAX_EXTENDED_AMOUNT>
    <INV_TAX_CODE_NAME>US Tax</INV_TAX_CODE_NAME>
    <INV_TAX_RATE>0</INV_TAX_RATE>
    <INV_TAX_EXEMPTION_ID/>
    <INV_TAX_LOCATION_RATE_ID/>
    <INV_TAX_PRECEDENCE/>
    <EURO_TAXABLE_AMOUNT>51</EURO_TAXABLE_AMOUNT>
    <INV_TAX_INCLUSIVE_FLAG>N</INV_TAX_INCLUSIVE_FLAG>
    <D_TAX_SUMMARY> 0.00 </D_TAX_SUMMARY>
    <INV_TAX_TOTAL>0</INV_TAX_TOTAL>
    <INV_TAX_DESCRIPTION>Tax US Tax @ 0.00</INV_TAX_DESCRIPTION>
    <D_EURO_TAXABLE_AMOUNT> 51.00 </D_EURO_TAXABLE_AMOUNT>
    </G_SUMMARY_INV>
    </LIST_G_SUMMARY_INV>
    <LIST_G_SHIP_CUSTOMER>
    <G_SHIP_CUSTOMER>
    <SHIP_CUST_NAME>xx</SHIP_CUST_NAME>
    <SHIP_ADDRESS1>xx</SHIP_ADDRESS1>
    <SHIP_ADDRESS2/>
    <SHIP_ADDRESS3/>
    <SHIP_ADDRESS4/>
    <SHIP_CITY>VAN NUYS</SHIP_CITY>
    <SHIP_STATE>CA</SHIP_STATE>
    <SHIP_POSTAL_CODE>91405</SHIP_POSTAL_CODE>
    <SHIP_COUNTRY>US</SHIP_COUNTRY>
    <SHIP_SITE_ID>xx</SHIP_SITE_ID>
    <SHIP_CUSTOMER_ID>xx</SHIP_CUSTOMER_ID>
    <SHIP_SITE_TAX_REFERENCE/>
    <SHIP_CUST_TAX_REFERENCE/>
    <SHIP_TO_STATE>CA</SHIP_TO_STATE>
    <SHIP_TO_PROVINCE/>
    <SHIP_COUNTRY_DESCRIPTION>United States</SHIP_COUNTRY_DESCRIPTION>
    <SHIP_TRX_TAX_REFERENCE/>
    <C_SHIP_TO_CONCATENATED>xx
    United States</C_SHIP_TO_CONCATENATED>
    </G_SHIP_CUSTOMER>
    </LIST_G_SHIP_CUSTOMER>
    <LIST_G_REMIT_CUSTOMER>
    <G_REMIT_CUSTOMER>
    <REMIT_PROVINCE/>
    <REMIT_ADDRESS1>DRESSER, INC - xx</REMIT_ADDRESS1>
    <REMIT_ADDRESS2>FED TAX NO: xx</REMIT_ADDRESS2>
    <REMIT_ADDRESS3>PO BOX xxx</REMIT_ADDRESS3>
    <REMIT_ADDRESS4/>
    <REMIT_CITY>DALLAS</REMIT_CITY>
    <REMIT_STATE>TX</REMIT_STATE>
    <REMIT_POSTAL_CODE>75320-1266</REMIT_POSTAL_CODE>
    <REMIT_COUNTRY>US</REMIT_COUNTRY>
    <REMIT_ADDRESS_ID>1210</REMIT_ADDRESS_ID>
    <REMIT_COUNTRY_DESCRIPTION>United States</REMIT_COUNTRY_DESCRIPTION>
    <CF_ADDR>DRESSER, INC - xxx
    United States</CF_ADDR>
    <C_REMIT_TO_CONCATENATED>DRESSER, INC - xxx
    United States</C_REMIT_TO_CONCATENATED>
    <CF_SPECIAL_NOTE>Billing Inquiries: DRESSER, INC - xxx </CF_SPECIAL_NOTE>
    </G_REMIT_CUSTOMER>
    </LIST_G_REMIT_CUSTOMER>
    <LIST_G_ADJUSTMENT>
    </LIST_G_ADJUSTMENT>
    <C_CONTRACT_NAME/>
    <CF_ADDR_STRING>xxx;</CF_ADDR_STRING>
    <CF_FOB>O</CF_FOB>
    <CF_SHIPPING_INSTRUCTION/>
    <SHIP_VIA_DESCRIPTION>SHIPPING TO DECIDE</SHIP_VIA_DESCRIPTION>
    <CF_WORK_REQUIRED>Q3-L4</CF_WORK_REQUIRED>
    <CP_PROBLEM_SPL_INSTN>Problem - Q3-L4
    Resolution - </CP_PROBLEM_SPL_INSTN>
    <CP_SERV_REQDATE/>
    <CF_TRACKING_NUMBER> </CF_TRACKING_NUMBER>
    <CF_RESET_INVOICE_NUMBERING>0</CF_RESET_INVOICE_NUMBERING>
    <D_INV_TAX_AMOUNT> 0.00 </D_INV_TAX_AMOUNT>
    <CF_DELIVERY_ADDRESS/>
    <LINE_COUNT>2</LINE_COUNT>
    <D_INV_ITEM_AMOUNT> 136.00 </D_INV_ITEM_AMOUNT>
    <TERM_RELATIVE_ROUNDED>100</TERM_RELATIVE_ROUNDED>
    <INV_SALES_ORDER_COUNT>1</INV_SALES_ORDER_COUNT>
    <INV_ITEM_AMOUNT>136</INV_ITEM_AMOUNT>
    <D_INV_FREIGHT_AMOUNT> 0.00 </D_INV_FREIGHT_AMOUNT>
    <INV_FREIGHT_AMOUNT>0</INV_FREIGHT_AMOUNT>
    <INV_TAX_AMOUNT>0</INV_TAX_AMOUNT>
    <D_INV_ALL_AMOUNT> 136.00 </D_INV_ALL_AMOUNT>
    <INV_SALES_ORDER>15042116</INV_SALES_ORDER>
    <INV_ALL_AMOUNT>136</INV_ALL_AMOUNT>
    <TERM_TAX_COUNT>10</TERM_TAX_COUNT>
    <INV_TAX_COUNT>10</INV_TAX_COUNT>
    <TERM_ITEM_AMOUNT>85</TERM_ITEM_AMOUNT>
    <TERM_TAX_AMOUNT>0</TERM_TAX_AMOUNT>
    <TERM_FREIGHT_AMOUNT>0</TERM_FREIGHT_AMOUNT>
    <SUM_LINE_TAX_INCL_AMOUNT>0</SUM_LINE_TAX_INCL_AMOUNT>
    <SUM_LINE_TAX_AMOUNT>0</SUM_LINE_TAX_AMOUNT>
    <TERM_ALL_AMOUNT>85</TERM_ALL_AMOUNT>
    </G_INV_TERM>
    </LIST_G_INV_TERM>
    <LIST_G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    <G_TEMP>
    <TRX_NUMBER1>100800</TRX_NUMBER1>
    <CUSTOMER_TRX_ID1>179471</CUSTOMER_TRX_ID1>
    </G_TEMP>
    </LIST_G_TEMP>
    <LIST_G_COMMITMENT_ADJUSTMENT>
    <G_COMMITMENT_ADJUSTMENT>
    <COMMIT_THIS_INVOICE/>
    <D_COMMIT_THIS_INVOICE> </D_COMMIT_THIS_INVOICE>
    <D_COMMIT_ACTIVITY> 0.00 </D_COMMIT_ACTIVITY>
    </G_COMMITMENT_ADJUSTMENT>
    </LIST_G_COMMITMENT_ADJUSTMENT>
    <C_TRX_TYPE>INVOICE</C_TRX_TYPE>
    <CF_TAX_CITY>1</CF_TAX_CITY>
    <CP_TCITY> 0.00 </CP_TCITY>
    <CF_TAX_STATE>1</CF_TAX_STATE>
    <CP_TSTATE> 0.00 </CP_TSTATE>
    <CF_TAX_COUNTY>1</CF_TAX_COUNTY>
    <CP_TCOUNTY> 0.00 </CP_TCOUNTY>
    <CF_TAX_LOCAL>1</CF_TAX_LOCAL>
    <CP_TLOCAL> 0.00 </CP_TLOCAL>
    <CF_PHONE_NUMBER>909-xxx-xxxx</CF_PHONE_NUMBER>
    <C_TRX_DISPLAY/>
    <C_SHIP>WAS</C_SHIP>
    <CF_IF_SALES_ORDER_EXISTS>1</CF_IF_SALES_ORDER_EXISTS>
    <CF_NO>ABC</CF_NO>
    <GET_CONTACT_INFO>Y</GET_CONTACT_INFO>
    <SALESREP_NAME>WSG - NJ</SALESREP_NAME>
    <BILL_TO_FNAME/>
    <CF_CTRL_STRING>{PRN:noprint CPY:1} </CF_CTRL_STRING>
    <BILL_TO_LNAME/>
    <BILL_TO_MAIL_STOP/>
    <BILL_TO_ATTN/>
    <SHIP_TO_FNAME/>
    <SHIP_TO_LNAME/>
    <SHIP_TO_ATTN/>
    <SHIP_TO_MAIL_STOP/>
    <TAX_PRINTING_OPTION>ITEMIZE AND SUM</TAX_PRINTING_OPTION>
    <TAX_GROUP_BY>,v.tax_code</TAX_GROUP_BY>
    <TAX_ORDER_BY>v.tax_code,</TAX_ORDER_BY>
    <TAX_SUMMARY>Y</TAX_SUMMARY>
    <TAX_DETAIL>Y</TAX_DETAIL>
    <TAX_RECAP>N</TAX_RECAP>
    <FREIGHT_DETAIL>Y</FREIGHT_DETAIL>
    <COMMIT_BOX_FLAG>N</COMMIT_BOX_FLAG>
    <COMMIT_TRX_NUMBER/>
    <COMMIT_PARENT_TYPE/>
    <COMMIT_PARENT_TYPE_NAME/>
    <COMMIT_ORIGINAL_AMT/>
    <COMMIT_TOTAL_ACTIVITY/>
    <COMMIT_AMT_UNINVOICED/>
    <COMMIT_START_DATE/>
    <COMMIT_END_DATE/>
    <REMIT_TO_CONTROL_ID>1210</REMIT_TO_CONTROL_ID>
    <PREVIOUS_TYPE_NAME/>
    <PREVIOUS_TRX_NUMBER/>
    <TERM_COUNT>1</TERM_COUNT>
    <TERM_MAX_VALUE>1</TERM_MAX_VALUE>
    <D_COMMIT_BALANCE> </D_COMMIT_BALANCE>
    <D_COMMIT_AMOUNT> </D_COMMIT_AMOUNT>
    <D_COMMIT_AMT_UNINVOICED> </D_COMMIT_AMT_UNINVOICED>
    <BILL_COUNTRY_DESCRIPTION>United States</BILL_COUNTRY_DESCRIPTION>
    <TRX_TAX_REFERENCE/>
    <C_BILL_TO_CONCATENATED>Attn: Accounts Payable
    XXX COMPANY - NA MARKETING
    PO BOX Q, SECTION XX
    XX
    CONCORD CA 94524-XXXX
    United States</C_BILL_TO_CONCATENATED>
    </G_INVOICE>
    </LIST_G_INVOICE>
    </G_ORDER_BY>
    </LIST_G_ORDER_BY>
    <LIST_G_REPEAT_HEADER>
    <G_REPEAT_HEADER>
    <ROWNUM>1</ROWNUM>
    </G_REPEAT_HEADER>
    </LIST_G_REPEAT_HEADER>
    <MSG_PRECEDENCE>Precedence:</MSG_PRECEDENCE>
    <SPECIAL_INSTRUCTIONS/>
    <MSG_SALES_TAX>Sales Tax @ &amp;TAX_RATE</MSG_SALES_TAX>
    <MSG_VAT_TAX>Tax &amp;TAX_CODE &amp;EURO_TAXABLE_AMOUNT@ &amp;TAX_RATE</MSG_VAT_TAX>
    <REPORT_ALL_AMOUNT>85</REPORT_ALL_AMOUNT>
    <REPORT_ITEM_AMOUNT>85</REPORT_ITEM_AMOUNT>
    <REPORT_TAX_AMOUNT>0</REPORT_TAX_AMOUNT>
    <REPORT_FREIGHT_AMOUNT>0</REPORT_FREIGHT_AMOUNT>
    <REPORT_TERM_COUNT>1</REPORT_TERM_COUNT>
    <PAGE_ITEM_RUNNING_TOTAL>136</PAGE_ITEM_RUNNING_TOTAL>
    <PAGE_FREIGHT_RUNNING_TOTAL>0</PAGE_FREIGHT_RUNNING_TOTAL>
    <PAGE_TAX_RUNNING_TOTAL>0</PAGE_TAX_RUNNING_TOTAL>
    <PAGE_ALL_RUNNING_TOTAL>136</PAGE_ALL_RUNNING_TOTAL>
    <PAGE_CURRENCY_CODE>USD</PAGE_CURRENCY_CODE>
    <DISP_ITEM_RUNNING_TOTAL/>
    <PAGE_TERM_ITEM_AMOUNT>85</PAGE_TERM_ITEM_AMOUNT>
    <INVOICE_LINES_PRINTED_FLAG>N</INVOICE_LINES_PRINTED_FLAG>
    <PAGE_TERM_TAX_AMOUNT>0</PAGE_TERM_TAX_AMOUNT>
    <PAGE_TERM_FREIGHT_AMOUNT>0</PAGE_TERM_FREIGHT_AMOUNT>
    <PAGE_TERM_ALL_AMOUNT>85</PAGE_TERM_ALL_AMOUNT>
    <PAGE_END_OF_INVOICE>Y</PAGE_END_OF_INVOICE>
    <PAGE_ADJ_LINE_AMOUNT/>
    <PAGE_ADJ_TAX_AMOUNT/>
    <PAGE_ADJ_FREIGHT_AMOUNT/>
    <PAGE_ADJ_ALL_AMOUNT/>
    <PAGE_ADJ_COMMENTS/>
    <PAGE_TRX_TYPE>INV</PAGE_TRX_TYPE>
    <REPORT_INV_COUNT>1</REPORT_INV_COUNT>
    <PRODUCT_INSTALLED_SO>N</PRODUCT_INSTALLED_SO>
    <REPORT_ADJ_ALL_AMOUNT>85</REPORT_ADJ_ALL_AMOUNT>
    <D_PAGE_TERM_ITEM_AMOUNT/>
    <D_PAGE_TERM_TAX_AMOUNT/>
    <D_PAGE_TERM_FREIGHT_AMOUNT/>
    <D_PAGE_TERM_ALL_AMOUNT/>
    <D_PAGE_ADJ_LINE_AMOUNT/>
    <D_PAGE_ADJ_TAX_AMOUNT/>
    <D_PAGE_ADJ_FREIGHT_AMOUNT/>
    <D_PAGE_ADJ_ALL_AMOUNT/>
    <C_EC_WHERE_CLAUSE>AND NOT EXISTS
              (SELECT 'X'
              from ECE_TP_DETAILS ETD,
              ECE_TP_HEADERS ETH
              WHERE ETH.TP_HEADER_ID = A_BILL.TP_HEADER_ID
              AND ETD.TP_HEADER_ID = ETH.TP_HEADER_ID
              AND ETD.EDI_FLAG = 'Y'
              AND ETD.DOCUMENT_ID = 'INO'
              AND ETD.DOCUMENT_TYPE =
                   DECODE (TYPES.TYPE, 'CM',
                   DECODE(A.PREVIOUS_CUSTOMER_TRX_ID,
                        NULL,'OACM',
                        'CM'),
                   TYPES.TYPE)
         </C_EC_WHERE_CLAUSE>
    <RP_ERROR>ERROR</RP_ERROR>
    <C_DESCRIPTION/>
    <C_TAX_SUMMARY_NAME/>
    <C_CREDIT_MEMO/>
    <C_CONFIRMATION1/>
    <C_CONFIRMATION2/>
    <C_NUM_ADJUST/>
    <C_DATE/>
    <C_TAX_SUMMARY_CODE/>
    <PAGE_SUM_TAX_AMOUNT>0</PAGE_SUM_TAX_AMOUNT>
    <PAGE_SUM_TAX_INCL_AMOUNT>0</PAGE_SUM_TAX_INCL_AMOUNT>
    <C_PRB_BRIEF_DESC/>
    <CP_SID>SID:NAOADEV3</CP_SID>
    </DWDRAXINV>
    Here's the error:
    XML Publisher: Version : 11.5.0
    Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
    XDOBURSTREP module: XML Publisher Report Bursting Program
    Current system time is 24-JAN-2008 14:45:31
    XML/BI Publisher Version : 5.6.3
    Request ID: 12167213
    All Parameters: ReportRequestID=12167133:DebugFlag=Y
    Report Req ID: 12167133
    Debug Flag: Y
    Updating request description
    Updated description
    Retrieving XML request information
    Node Name:DFW111SSUN012
    Preparing parameters
    null output =/naoadev1/app/comn/admin/out/naoadev1_dfw111ssun012/o12167213.out
    inputfilename =/naoadev1/app/comn/admin/out/naoadev1_dfw111ssun012/o12167133.out
    Data XML File:/naoadev1/app/comn/admin/out/naoadev1_dfw111ssun012/o12167133.out
    Set Bursting parameters..
    Temp. Directory:/naoadev1/app/appl/dres/11.5.0/xml
    [012408_024539888][][STATEMENT] Oracle XML Parser version ::: Oracle XDK Java 9.0.4.0.0 Production
    Start bursting process..
    [012408_024539899][][STATEMENT] /naoadev1/app/appl/dres/11.5.0/xml
    [012408_024539984][][EXCEPTION] oracle.xml.parser.v2.XMLParseException: Expected '-->' instead of 'EOF'.
         at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:205)
         at oracle.xml.parser.v2.XMLReader.scanComment(XMLReader.java:1087)
         at oracle.xml.parser.v2.NonValidatingParser.parseComment(NonValidatingParser.java:368)
         at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1222)
         at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:301)
         at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:268)
         at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:227)
         at oracle.apps.xdo.common.config.ConfigReader.read(ConfigReader.java:437)
         at oracle.apps.xdo.common.config.ConfigReader.read(ConfigReader.java:416)
         at oracle.apps.xdo.batch.bursting.FileHandler.setTempDir(FileHandler.java:272)
         at oracle.apps.xdo.batch.bursting.FileHandler.<init>(FileHandler.java:41)
         at oracle.apps.xdo.batch.BurstingProcessorEngine.setTempDir(BurstingProcessorEngine.java:774)
         at oracle.apps.xdo.batch.BurstingProcessorEngine.process(BurstingProcessorEngine.java:891)
         at oracle.apps.xdo.oa.cp.JCP4XDOBurstingEngine.runProgram(JCP4XDOBurstingEngine.java:269)
         at oracle.apps.fnd.cp.request.Run.main(Run.java:161)
    Followed many lines later by this error:
    [012408_024546649][oracle.apps.xdo.batch.bursting.ProcessCoreDocument][EXCEPTION] java.io.FileNotFoundException: -- I used my own path
    /xdoehgHGavj1O012408_0245466440.fo (No such file or directory)
         at java.io.FileOutputStream.open(Native Method)
         at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
         at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
    which I assume is simply a consequence of the earlier step failing...
    Here's the control file for the bursting program, based on the demo:
    <?xml version="1.0" encoding="UTF-8"?>
    <xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi" type="bursting">
    <xapi:request select="/DWDRAXINV/LIST_G_ORDER_BY/G_ORDER_BY/LIST_G_INVOICE/G_INVOICE">
    <xapi:delivery>
    <xapi:email id="123" server="ads119sexch1.corp.dresser.com" port="25" from="[email protected]" reply-to ="[email protected]">
    <xapi:message id="123" to="[email protected]" attachment="true" subject="Your Invoice #${TRX_NUMBER} ${BILL_CUST_NAME}">Dear Sir/Madam,
    Please find attached your invoice #${TRX_NUMBER} for ${BILL_CUST_NAME} dated ${TRX_DATE}
    Your payment terms for this invoice are ${G_INV_TERM[1]/TERM_NAME}.
    Please pay on time.
    Regards
    Oracle</xapi:message>
    </xapi:email>
    </xapi:delivery>
    <xapi:document output-type="pdf" delivery="123">
    <xapi:template type="rtf"
    location="/naoadev3/app/appl/dres/11.5.0/xml/DRESRTSRAXINV.rtf" >
    </xapi:template>
    </xapi:document>
    </xapi:request>
    </xapi:requestset>
    This part seems fine - the email goes out, but the expected PDF attachment of the invoice is not there, presumably because it wasn't generated.
    Thanks for making it to the bottom of this!!!
    Any suggestions?
    Thanks,
    Eric Safern
    Dresser, Inc.

    Hello,
    I'm working on the similar requirement. same bursting the program based on the TRX_NUMBER. Does the bursting happens?
    Thanks
    Geetha

  • XML Parser for C++ v2 on HP-UX 11.00

    Hi,
    We are using XML parser for C++ v2(2.0.1) on HP-UX 11.00.Oracle version is 8.0.5. Our application is dumping core .analyzing the core gives pointers to Oracle function calls. We found that some datatypes in parser's oratypes.h (e.g ub4,sb4)were not in consistence with datatypes in native Oracle's oratypes.h.how to solve this problem? is there any linkage or Includepath order recommended to solve this? let me know if u know any solution/workaround
    thanx in advance
    vijayanand
    null

    We're working on getting this fixed. Thanks for reporting it.

  • Since installing the latest update, Firefox will not load; it gives me the following error -- XML Parsing Error: not well formed.

    since installing the latest update, Firefox first operated with some errors but now will not load at all; it gives me the following error --
    XML Parsing Error: not well formed
    locations chrome://browser/content/browser.xml
    Line Number 1191, column 20:
    utton id="back-forward-dropmarker" type="menu" chromedir="&locale.dir;"-------------------
    please note that the words "utton ID" are exactly as the error message gives it; and at the end of the message there are exactly 19 hyphens.
    I don't know why this faulty code is referencing things to do with "chrome"... the Chrome browser is not installed on this PC or anywhere on our network.
    Also, this is not the first problem I had after clicking Firefox's prompt for the latest update. Before Firefox retreated into this error message, it was loading but running with some faults...
    1. the bookmark symbol was not appearing on the right hand side of the URL line, so I had always to click on "bookmark this page", after which the bookmark symbol did appear; however I don't know if the bookmarking function worked properly.
    2. the back and forward buttons were not highlighted, as if I had not come from a previous page; so once I clicked on a link to a new page I could not go back to where I came from because Fiefox thought I hadn't come from anywhere.
    3. there may have been other errors, but I did not find them.
    How do I reinstate my Firefox program to work properly please? do I have to download the latest version and reinstal? if so, do I have to remove the old version first? or is there a fix?
    Even to write this message I have been forced to use (yuk -- I don't like to say this!!!) Internet Explorer. So please -- I need help urgently.
    Thanks,
    NOEL

    Some how I solved my problem by opening a user account and downloading Firefox 4.0 beta and installing it, I did try it, worked fine, so I did close the user account and did go back to my own account(switched user), the main page that I had problem with Firefox which would not open, I dabble click on Firefox it start working again!! I hope that solves your problem too.
    firefox will not open, it gives me this cod and would not turn off, Error on switching in renew: NS_ERROR_UNEXPECTED, Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getCharPref] id: none

Maybe you are looking for