Shredding XML with Document... to XMLTable

Hi,
I'm relatively new to XML, so apologies in advanace for any solecisms!
I am trying to shred an XML document to a relational table (11g v2). A simplified procedure demonstrating what I am trying to do is below.
DECLARE
v_xml CLOB :=
'<?xml version="1.0" encoding="UTF-8" ?>
<Document xmlns="urn:xxxxxx." xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yyyyyy zzzz.xsd">
     <TrfInfo>
          <GrpHdr>
               <MsgId>1001</MsgId>
               <CreDt>2011-05-27</CreDt>
               <NoTxs>10</NoTxs>
          </GrpHdr>
     </TrfInfo>
</Document>';
v_msgid VARCHAR2(255);
v_credt VARCHAR2(255);
v_notxs VARCHAR2(255);
BEGIN
SELECT *
INTO v_msgid, v_credt, v_notxs
FROM XMLTABLE('$aaa/Document/TrfInfo/GrpHdr' PASSING XMLTYPE(v_xml) AS "aaa"
COLUMNS message_identifier VARCHAR2(255) PATH 'MsgId'
,created_date_time VARCHAR2(255) PATH 'CreDt'
,number_of_transactions VARCHAR2(255) PATH 'NoTxs'
dbms_output.put_line('MsgId ' || v_msgid || ' CreDt ' || v_credt || ' NoTxs ' || v_notxs);
END;
If I do this then I get:
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at line 20
But if I miss out the /Document line, it works:
DECLARE
v_xml CLOB :=
'<?xml version="1.0" encoding="UTF-8" ?>
     <TrfInfo>
          <GrpHdr>
               <MsgId>1001</MsgId>
               <CreDt>2011-05-27</CreDt>
               <NoTxs>10</NoTxs>
          </GrpHdr>
     </TrfInfo>';
v_msgid VARCHAR2(255);
v_credt VARCHAR2(255);
v_notxs VARCHAR2(255);
BEGIN
SELECT *
INTO v_msgid, v_credt, v_notxs
FROM XMLTABLE('$aaa/TrfInfo/GrpHdr' PASSING XMLTYPE(v_xml) AS "aaa"
COLUMNS message_identifier VARCHAR2(255) PATH 'MsgId'
,created_date_time VARCHAR2(255) PATH 'CreDt'
,number_of_transactions VARCHAR2(255) PATH 'NoTxs'
dbms_output.put_line('MsgId ' || v_msgid || ' CreDt ' || v_credt || ' NoTxs ' || v_notxs);
END;
I then get:
MsgId 1001 CreDt 2011-05-27 NoTxs 10
PL/SQL procedure successfully completed.
I did try putting the full <Document......> tag in the XMLTABLE statement, but then I got:
ERROR at line 1:
ORA-19114: XPST0003 - error during parsing the XQuery expression:
LPX-00801: XQuery syntax error at 'xmlns'
1 $aaa/Document xmlns="urn:xxxxxx." xmlns:xsi="http://www.w3.org/2001/XMLSche
- ^
ORA-06512: at line 20
Could someone please tell me how I should handle this? Is there a facility on XMLTABLE to allow me to ignore the <Document...> line?
Is there a better way of doing this?
All responses gratefully received!
Graham

Hi,
The document has a default namespace, so you have to declare it in XMLTable :
SQL> DECLARE
  2     v_xml CLOB :=
  3  '<?xml version="1.0" encoding="UTF-8" ?>
  4  <Document xmlns="urn:xxxxxx." xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yyyyyy zzzz.xsd">
  5       <TrfInfo>
  6            <GrpHdr>
  7                 <MsgId>1001</MsgId>
  8                 <CreDt>2011-05-27</CreDt>
  9                 <NoTxs>10</NoTxs>
10            </GrpHdr>
11       </TrfInfo>
12  </Document>';
13 
14  v_msgid VARCHAR2(255);
15  v_credt VARCHAR2(255);
16  v_notxs VARCHAR2(255);
17 
18  BEGIN
19 
20        SELECT  *
21          INTO v_msgid, v_credt, v_notxs
22          FROM XMLTABLE(
23                  XMLNamespaces(default 'urn:xxxxxx.'),
24                  '$aaa/Document/TrfInfo/GrpHdr' PASSING XMLTYPE(v_xml) AS "aaa"
25                    COLUMNS  message_identifier      VARCHAR2(255)   PATH 'MsgId'
26                            ,created_date_time       VARCHAR2(255)   PATH 'CreDt'
27                            ,number_of_transactions  VARCHAR2(255)   PATH 'NoTxs'
28                            );
29 
30     dbms_output.put_line('MsgId ' || v_msgid || ' CreDt ' || v_credt || ' NoTxs ' || v_notxs);
31 
32  END;
33  /
MsgId 1001 CreDt 2011-05-27 NoTxs 10
PL/SQL procedure successfully completed
http://download.oracle.com/docs/cd/E11882_01/appdev.112/e16659/xdb_xquery.htm#CBABFGAJ

Similar Messages

  • Error while parsing or executing XML-SQL document attribute "action" missin

    Hi All,
          I am doing a scenario for IDOC to JDBC, When I push IDOC from R/3 , IDOC sent to XI System successfully, 
           I have also checked in SXMB_MONI it is showing the successful staus without any errors, and I have also copied the xml structure from main document of payloads and tested the mapping in Integration Designer, and it is showing successfull message.
    here is the xml structure from  payloads of Request Message Mapping ........
      <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:RTACOGRP_RECEIVER_MT xmlns:ns0="http://prospecta.com/wsorta/cosmas/idoc2jdbc">
    - <COGRP_TMP_PROC action="EXECUTE">
      <IDOCNUMBER isInput="TRUE" type="CHAR">1000001</IDOCNUMBER>
      <E1COGH_NUMBER isInput="TRUE" type="CHAR">1</E1COGH_NUMBER>
      <E1COGH_HIGHERSEGMENT isInput="TRUE" type="CHAR">1</E1COGH_HIGHERSEGMENT>
      <E1COGH_MSGFN isInput="TRUE" type="CHAR">1</E1COGH_MSGFN>
      <E1COGH_GROUPTYPE isInput="TRUE" type="CHAR">1</E1COGH_GROUPTYPE>
      <E1COGH_GROUPNAME isInput="TRUE" type="CHAR">1</E1COGH_GROUPNAME>
      <E1COGH_KOKRS isInput="TRUE" type="CHAR">1</E1COGH_KOKRS>
      <E1COGHT_NUMBER isInput="TRUE" type="CHAR">1</E1COGHT_NUMBER>
      <E1COGHT_HIGHERSEGMENT isInput="TRUE" type="CHAR">2</E1COGHT_HIGHERSEGMENT>
      <E1COGHT_LANGU isInput="TRUE" type="CHAR">2</E1COGHT_LANGU>
      <E1COGHT_DESCRIPT isInput="TRUE" type="CHAR">2</E1COGHT_DESCRIPT>
      <E1COGHT_LANGU_ISO isInput="TRUE" type="CHAR">2</E1COGHT_LANGU_ISO>
      <E1COGV_NUMBER isInput="TRUE" type="CHAR">1</E1COGV_NUMBER>
      <E1COGV_HIGHERSEGMENT isInput="TRUE" type="CHAR">3</E1COGV_HIGHERSEGMENT>
      <E1COGV_FROMVALUE isInput="TRUE" type="CHAR">6</E1COGV_FROMVALUE>
      <E1COGV_TOVALUE isInput="TRUE" type="CHAR">6</E1COGV_TOVALUE>
      <E1COGS_NUMBER isInput="TRUE" type="CHAR">1</E1COGS_NUMBER>
      <E1COGS_HIGHERSEGMENT isInput="TRUE" type="CHAR">5</E1COGS_HIGHERSEGMENT>
      <E1COGS_SUBGROUP isInput="TRUE" type="CHAR">4</E1COGS_SUBGROUP>
      <E1COGHR_NUMBER isInput="TRUE" type="CHAR">1</E1COGHR_NUMBER>
      <E1COGHR_HIGHERSEGMENT isInput="TRUE" type="CHAR">6</E1COGHR_HIGHERSEGMENT>
      <E1COGHR_SNAME isInput="TRUE" type="CHAR">3</E1COGHR_SNAME>
      <E1COGHR_PRTCLASS isInput="TRUE" type="CHAR">3</E1COGHR_PRTCLASS>
      <E1COGHR_AUTHGR isInput="TRUE" type="CHAR">3</E1COGHR_AUTHGR>
      <E1COGSR_NUMBER isInput="TRUE" type="CHAR">1</E1COGSR_NUMBER>
      <E1COGSR_HIGHERSEGMENT isInput="TRUE" type="CHAR">7</E1COGSR_HIGHERSEGMENT>
      <E1COGSR_XSUPPRESS isInput="TRUE" type="CHAR">5</E1COGSR_XSUPPRESS>
      <E1COGSR_PRTCLASS isInput="TRUE" type="CHAR">5</E1COGSR_PRTCLASS>
      <E1COGSR_LNAME isInput="TRUE" type="CHAR">5</E1COGSR_LNAME>
      <E1COGVT_NUMBER isInput="TRUE" type="CHAR">1</E1COGVT_NUMBER>
      <E1COGVT_HIGHERSEGMENT isInput="TRUE" type="CHAR">9</E1COGVT_HIGHERSEGMENT>
      <E1COGVT_LANGU isInput="TRUE" type="CHAR">7</E1COGVT_LANGU>
      <E1COGVT_DESCRIPT isInput="TRUE" type="CHAR">7</E1COGVT_DESCRIPT>
      <E1COGVT_LANGU_ISO isInput="TRUE" type="CHAR">7</E1COGVT_LANGU_ISO>
      <E1COGVR_NUMBER isInput="TRUE" type="CHAR">1</E1COGVR_NUMBER>
      <E1COGVR_HIGHERSEGMENT isInput="TRUE" type="CHAR">12</E1COGVR_HIGHERSEGMENT>
      <E1COGVR_XSUPPRESS isInput="TRUE" type="CHAR">8</E1COGVR_XSUPPRESS>
      <E1COGVR_PRTCLASS isInput="TRUE" type="CHAR">8</E1COGVR_PRTCLASS>
      <E1COGVR_LNAME isInput="TRUE" type="CHAR">8</E1COGVR_LNAME>
      </COGRP_TMP_PROC>
      </ns0:RTACOGRP_RECEIVER_MT>
    When I checked for component monitoring in runtime workbench....
    these are the messages........
    <i>Error while parsing or executing XML-SQL document: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure)</i>
    Here are the messages from message monitoring ......
    2007-06-07 12:42:17 Success Receiver JDBC adapter: processing started; QoS required: ExactlyOnce
    2007-06-07 12:42:17 Success JDBC adapter receiver channel RTACOGRP_COM_Chan: processing started; party  , service WSORTABS
    2007-06-07 12:42:17 Error No "action" attribute found in XML document ("action" attribute missing or wrong XML structure)
    2007-06-07 12:42:17 Error MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure)
    2007-06-07 12:42:17 Error Exception caught by adapter framework: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure)
    2007-06-07 12:42:17 Error Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure).
    2007-06-07 12:42:17 Error The message status set to NDLV.
    Can any body please resolve the problem.....
    Thanks in Advance
    Murthy

    Bhavesh,
    Now I have changed the data structure , and the resultant structure is like this...
      <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:RTACOGRP_RECEIVER_MT xmlns:ns0="http://prospecta.com/wsorta/cosmas/idoc2jdbc">
    - <Statement>
    - <COGRP_TMP_PROC action="EXECUTE">
      <IDOCNUMBER isInput="TRUE" type="CHAR">100002223</IDOCNUMBER>
      <E1COGH_NUMBER isInput="TRUE" type="CHAR">1</E1COGH_NUMBER>
      <E1COGH_HIGHERSEGMENT isInput="TRUE" type="CHAR">1</E1COGH_HIGHERSEGMENT>
      <E1COGH_MSGFN isInput="TRUE" type="CHAR">H</E1COGH_MSGFN>
      <E1COGH_GROUPTYPE isInput="TRUE" type="CHAR">H</E1COGH_GROUPTYPE>
      <E1COGH_GROUPNAME isInput="TRUE" type="CHAR">H</E1COGH_GROUPNAME>
      <E1COGH_KOKRS isInput="TRUE" type="CHAR">H</E1COGH_KOKRS>
      <E1COGHT_NUMBER isInput="TRUE" type="CHAR">1</E1COGHT_NUMBER>
      <E1COGHT_HIGHERSEGMENT isInput="TRUE" type="CHAR">2</E1COGHT_HIGHERSEGMENT>
      <E1COGHT_LANGU isInput="TRUE" type="CHAR">T</E1COGHT_LANGU>
      <E1COGHT_DESCRIPT isInput="TRUE" type="CHAR">T</E1COGHT_DESCRIPT>
      <E1COGHT_LANGU_ISO isInput="TRUE" type="CHAR">T</E1COGHT_LANGU_ISO>
      <E1COGV_NUMBER isInput="TRUE" type="CHAR">1</E1COGV_NUMBER>
      <E1COGV_HIGHERSEGMENT isInput="TRUE" type="CHAR">3</E1COGV_HIGHERSEGMENT>
      <E1COGV_FROMVALUE isInput="TRUE" type="CHAR">V</E1COGV_FROMVALUE>
      <E1COGV_TOVALUE isInput="TRUE" type="CHAR">V</E1COGV_TOVALUE>
      <E1COGS_NUMBER isInput="TRUE" type="CHAR">1</E1COGS_NUMBER>
      <E1COGS_HIGHERSEGMENT isInput="TRUE" type="CHAR">5</E1COGS_HIGHERSEGMENT>
      <E1COGS_SUBGROUP isInput="TRUE" type="CHAR">S</E1COGS_SUBGROUP>
      <E1COGHR_NUMBER isInput="TRUE" type="CHAR">1</E1COGHR_NUMBER>
      <E1COGHR_HIGHERSEGMENT isInput="TRUE" type="CHAR">7</E1COGHR_HIGHERSEGMENT>
      <E1COGHR_SNAME isInput="TRUE" type="CHAR">R</E1COGHR_SNAME>
      <E1COGHR_PRTCLASS isInput="TRUE" type="CHAR">R</E1COGHR_PRTCLASS>
      <E1COGHR_AUTHGR isInput="TRUE" type="CHAR">R</E1COGHR_AUTHGR>
      <E1COGSR_NUMBER isInput="TRUE" type="CHAR">1</E1COGSR_NUMBER>
      <E1COGSR_HIGHERSEGMENT isInput="TRUE" type="CHAR">8</E1COGSR_HIGHERSEGMENT>
      <E1COGSR_XSUPPRESS isInput="TRUE" type="CHAR">S</E1COGSR_XSUPPRESS>
      <E1COGSR_PRTCLASS isInput="TRUE" type="CHAR">S</E1COGSR_PRTCLASS>
      <E1COGSR_LNAME isInput="TRUE" type="CHAR">S</E1COGSR_LNAME>
      <E1COGVT_NUMBER isInput="TRUE" type="CHAR">1</E1COGVT_NUMBER>
      <E1COGVT_HIGHERSEGMENT isInput="TRUE" type="CHAR">10</E1COGVT_HIGHERSEGMENT>
      <E1COGVT_LANGU isInput="TRUE" type="CHAR">T</E1COGVT_LANGU>
      <E1COGVT_DESCRIPT isInput="TRUE" type="CHAR">T</E1COGVT_DESCRIPT>
      <E1COGVT_LANGU_ISO isInput="TRUE" type="CHAR">T</E1COGVT_LANGU_ISO>
      <E1COGVR_NUMBER isInput="TRUE" type="CHAR">1</E1COGVR_NUMBER>
      <E1COGVR_HIGHERSEGMENT isInput="TRUE" type="CHAR">11</E1COGVR_HIGHERSEGMENT>
      <E1COGVR_XSUPPRESS isInput="TRUE" type="CHAR">E</E1COGVR_XSUPPRESS>
      <E1COGVR_PRTCLASS isInput="TRUE" type="CHAR">E</E1COGVR_PRTCLASS>
      <E1COGVR_LNAME isInput="TRUE" type="CHAR">E</E1COGVR_LNAME>
      </COGRP_TMP_PROC>
      </Statement>
      </ns0:RTACOGRP_RECEIVER_MT>
    Now in message monitoring error is showing like this...
    <i>Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'COGRP_TMP_PROC' (structure 'Statement'): java.sql.SQLException: General error</i>
    Now in Component Monitoring error is showing like this....
    <i>Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'COGRP_TMP_PROC' (structure 'Statement'): java.sql.SQLException: General error</i>
    I have tested the stored procedure in sql by giving the same values , it was successfully executed..
    Can you please tell me where is the error still in structure ...
    Thanks in Advance,
    Murthy.

  • Unable to transform XML with XSL in java code

    Hi,
    Could somebody please tell me what's wrong with my code, why it isn't transform the XML with XSL to the output that I want. If I use the command line to transform the XML, it output perfectly:
    java org.apache.xalan.xslt.Process -in marc.xml -xsl MARC21slim2MODS.xsl -out out.xml
    Here is the code of my program to transform the XML with XSL, I am using xalan-j_2_2-bin:
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import org.w3c.dom.*;
    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    import javax.xml.transform.dom.*;
    import java.math.BigInteger;
    String xslDoc = "MODS.xsl";
    String xmlResult = "out.xml";
    DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
    dfactory.setNamespaceAware(true);
    DocumentBuilder docBuilder = dfactory.newDocumentBuilder();
    Document xmlDoc = docBuilder.newDocument();
    Element root = xmlDoc.createElement("collection");
    root.setAttribute("xmlns", "http://www.loc.gov/MARC21/slim");
    xmlDoc.appendChild(root);
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(new StreamSource(xslDoc));
    FileWriter fw = new FileWriter(new File(xmlResult));
    StreamResult output = new StreamResult(fw);
    transformer.transform(new DOMSource(xmlDoc), output);
    fw.flush();
    fw.close();
    ========================
    marc.xml -- source XML file
    ========================
    <?xml version="1.0" encoding="UTF-8"?>
    <collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01488cam 2200337 a 4500</leader><controlfield tag="001">2502929</controlfield><controlfield tag="005">19930521155141.9</controlfield><controlfield tag="008">920219s1993 caua j 000 0 eng </controlfield><datafield ind1=" " ind2=" " tag="035"><subfield code="9">(DLC) 92005291</subfield></datafield><datafield ind1=" " ind2=" " tag="906"><subfield code="a">7</subfield><subfield code="b">cbc</subfield><subfield code="c">orignew</subfield><subfield code="d">1</subfield><subfield code="e">ocip</subfield><subfield code="f">19</subfield><subfield code="g">y-gencatlg</subfield></datafield>
    </record></collection>
    ========================
    out.xml -- result using command line
    ========================
    <?xml version="1.0" encoding="UTF-8"?>
    <collection xmlns="http://www.loc.gov/mods/" xmlns:xlink="http://www.w3.org/TR/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/ http://www.loc.gov/standards/marcxml/schema/mods.xsd">
    <mods>
    <titleInfo>
    <title>Arithmetic</title>
    </titleInfo>
    <name type="personal">
    <namePart>Sandburg, Carl</namePart>
    <namePart type="date">1878-1967</namePart>
    <role>creator</role>
    </name>
    </mods>
    </collection>
    ========================
    out.xml -- result using my java program
    ========================
    <?xml version="1.0" encoding="UTF-8"?>
    <collection xmlns="http://www.loc.gov/mods/" xmlns:xlink="http://www.w3.org/TR/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/ http://www.loc.gov/standards/marcxml/schema/mods.xsd">01488cam 2200337 a 4500250292919930521155141.9920219s1993 caua j 000 0 eng (DLC) 920052917cbcorignew1ocip19y-gencatlgpc16 to br00 02-19-92; br02 to SCD 02-21-92; fd11 02-24-92 (PS3537.A618 A...); fa00 02-26-92; fa05 03-02-92; fm31 03-06-92; CIP ver. pv08 04-16-93; pv01 to CLT 04-20-93; lb10 05-21-93
    </collection>

    I am using the same XSL file. My Java program use the same XSL file I used in the command line.
    It is possible that my Java code is using a different parser, but I developed a seperate program to parse the XML using the same parser that my Java code is using. It output the result I expected. Here is the code for the program:
    import java.io.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    public class Convertor {
    public static void main(String[] args) throws Exception {
    String xslDoc = "MARC21slim2MODS.xsl";
    String xmlResult = "out.xml";
    String xmlDoc = marc.xml";
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(new StreamSource(xslDoc));
    StreamSource xmlSource = new StreamSource(xmlDoc);
    FileWriter fw = new FileWriter(new File(xmlResult));
    StreamResult output = new StreamResult(fw);
    transformer.transform(xmlSource, output);
    }

  • 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

  • XML Load Document in EXE does not run

    LV 8.0 (or 8.01).
    This has got to be a trivial installation problem. I wrote a simple VI that reads in an XML file using the XML Load Document vi. It runs like a charm. I then built an exe. Loading the exe results in the following set of errors:
    Unable to Locate Component
    This application has failed to start because xerces-c_2_2_0.dll was not found. Re-installing the application may fix this problem.
    This is then followed by:
    LabVIEW: Resource File not found
    The file 'DOMUserDefRef.dll' is not a valid LabVIEW file
    As it turns out, I just received my 8.01 CDs, so why not? I installed the upgrade, repaired the internet toolkit, sprinkled some distilled water on my keyboard, but the problem did not go away. I then un-installed ALL of LabView, re-installed 8.00, did the hokey pokey, problem is still there.
    Am I missing some vital step? If so, I would love to find out where this is documented.
    I've reduced the problem to just having the XML Load Document vi connected to the Close Reference VI. See the attached VI.
    Thanks,
    fredb.
    Attachments:
    XMLBug.vi ‏13 KB

    Hi Casey;
    The XML Load Document is part of the XML ToolKit - that comes with the Internet Toolkit from NI. I'm not sure how I can post NI's toolkits here. They are available in the Toolkit CD (part of the Professional Suite). (I tried to get a screen shot in here - can't even do that!).
    I'll attach a sample XML Doc I've created. It is created by parsing the LVPROJ file in order to find all the dynamic VI's. I'll build one based on a very simple demo project and attach it here. I was able to parse most of it by using the get tag method, but when I went to use the get value - that would always return a blank string - so I gave up, found an example using the internet toolkit - and off I went.
    I do have a workaround (not too elegant) - I create a simple text file each time I write the XML file. I then read the txt file from within the EXE.
    Thanks for looking into this. I did get a pointer from my excellent field engineer (Lesley Yu) who suggested I take a look at...
    http://digital.ni.com/public.nsf/websearch/694A29D​C644542BC86256E29007CCAC1?OpenDocument
    This recommends I explicitly register the dll. I have not had a chance to try this. I did completely uninstall LV and re-install it. That wasn't it.
    Thanks again,
    fredb.
    Attachments:
    Demo.zip ‏1 KB

  • Font problems in resulting XML Publisher document (from PeopleSoft)

    Hi all,
    we're creating documents using XML Publisher under PeopleSoft, designing the template in Word 2007.
    We see strange things hapening to the resulting documents: even though the majority of the template is created in a Times New Roman 11pt font, we find that in the resulting document, empty paragraphs and empty table cells are formatted as Arial 12 pt. So where we put an empty line between paragraphs in the text in the template, and set all the text to Times New Roman, the empty lines are Arial. Same thing with the tables. There's a table with a for-each loop in the rows. The XML with the data always contains 10 entries, but possibly with empty values, so that the table in the resulting document always has 10 rows (plus a header row). However, the empty rows are Arial 12, and the filled-in rows are TNR 11. This results in a different heigth for the table depending on how many rows are filled in, causing the positioning of the rest of the document to be off.
    The template contains NO Arial 12 at all...
    I hope my problem is clear. Any ideas or pointers where to look are really appreciated...
    Spiffo

    Hello Deepz,
    Thank you for your answer. I am not sure I understand your answer: I stated, this is occurring in XML Publisher from PeopleSoft, so not in BI Publisher. Furthermore, there is one section in the document where I do need Arial, but at pt 11, not 12.
    I hope you or other forum members can help me further.
    Regards,
    Spiffo

  • How to convert an xml to another Xml with a different structure...

    hi
    i have an xml which should be converted to a standard xml with an entirely different structure(Different elements)....can this be done with xml,xsl alone or do we need to write an java class along with them...if there are any examples..it would be of great help...plz help me out....as this is a work stopper...
    given below is the kind i have
    <hotelinfo>
    <hotelname>RADISSON HOTEL CHENNAI </hotelname>
    <address>355 C Gst Road St Thomas Mount Chennai1 600016IN</address>     <price>90.00 - 150.00</price>
    <distance>2 (W)</distance>
    </hotelinfo>
    i need to convert it into
    <propertyName>RADISSON HOTEL CHENNAI </propertyName>
    <address>
    <addressLine>355 C Gst Road St Thomas Mount</addressLine>
    <CityName>Chennai</CityName>
    <PostalCode>600 001</PostalCode>
    <StateName>TamilNadu</StateName>
    <CountryName>India</CountryName>
    </address>
    thanks in advance

    Ok here is the code...
    package mypack;
    import java.io.File;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    * @author SM23772
    * TODO To change the template for this generated type comment go to
    * Window - Preferences - Java - Code Style - Code Templates
    public class Roopa {
         public static void main(String[] args) {
              File docFile = new File("Roopa.xml");
              Document doc = null;
              Document newDoc = null;
              String hname = null, task = null;
              try {
                   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                   DocumentBuilder db = dbf.newDocumentBuilder();
                   doc = db.parse(docFile); //parsing Roopa.xml
                   newDoc = db.newDocument(); //Created New document Object for new xml
                   hname = doc.getElementsByTagName("hotelname").item(0)
                             .getFirstChild().getNodeValue();
                   task = doc.getElementsByTagName("task").item(0).getFirstChild()
                             .getNodeValue();
                   Node rootNode = newDoc.createElement("property-info"); //creating root node;
                   Node pp = newDoc.createElement("name"); //creating a node called name
                   Node taskNode = newDoc.createElement("task"); //creating a node called task
                   pp.appendChild(newDoc.createTextNode(hname)); //appending a text node inisde name
                   taskNode.appendChild(newDoc.createTextNode(task)); //appending the text node inside task
                   rootNode.appendChild(pp); //asppending the nodes inside the root node                       
                   rootNode.appendChild(taskNode);
                   newDoc.appendChild(rootNode); //appending the root node to the document
                   writeXmlFile(newDoc, "Dest.xml"); //function called to write the document to Dest.xml
              } catch (Exception e) {
                   System.out.println(e);
         public static void writeXmlFile(Document doc, String filename) {
              try {
                   // Prepare the DOM document for writing
                   Source source = new DOMSource(doc);
                   // Prepare the output file
                   File file = new File(filename);
                   Result result = new StreamResult(file);
                   // Write the DOM document to the file
                   Transformer xformer = TransformerFactory.newInstance()
                             .newTransformer();
                   xformer.transform(source, result);
              } catch (TransformerConfigurationException e) {
              } catch (TransformerException e) {
    The xml files:
    roopa.xml:
    <hotel>
    <hotelname>RADISSON HOTEL CHENNAI</hotelname>
    <more-info><task>give treate to shanu</task></more-info>
    </hotel>
    Dest.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <property-info><name>RADISSON HOTEL CHENNAI</name><task>give treate to shanu</task></property-info>Please go through the code.. if u have any more concerns do let me know................
    cheers
    Shanu

  • How to insert into table from a xml with XDE for java?

    want to insert into the oracle tables from the xml with XDE for java, some sample better. thank you.

    XML Document may be stored in a SQL database with XML SQL Utility.
    http://download-west.oracle.com/docs/cd/B13789_01/appdev.101/b10794/adx08xsu.htm#i1008168
    XML Document may be stored in a SQL database with Oracle XML DB.
    http://download-west.oracle.com/docs/cd/B13789_01/appdev.101/b10790/xdb03usg.htm#CEGFECFH

  • Error validating xml with xsd schema on JSDK 1.4

    Hi All,
    Asked to me do it a Web Service client in Java and validate its xml answer with an xsd file using 1.4 plataform.
    I googled and I saw many samples to 1.5 plataform, and few samples to 1.4, but anyway I tried to do what they asked to me.
    I got connect with service, got the response and so I went to validate that xml with an xsd file.
    But I got an error on that task. The error occurs in the following line
    "Schema schema = factory.getSchema();"
    Bellow my code
    final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
              final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
              final String schemaSource = "C:\\GetAuthorizationServiceOutput.xsd";
              final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();          
              factory.setNamespaceAware(true);
              factory.setValidating(true);
              try {
              factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
              factory.setAttribute(JAXP_SCHEMA_SOURCE,new File(source));
              catch (IllegalArgumentException x) {
                   System.out.println(x.getMessage());
    DocumentBuilder builder = null;
              Document document = null;
              try {
                   builder = factory.newDocumentBuilder();
                   document = builder.parse(new InputSource(new StringReader(ret.toString())));
              } catch (ParserConfigurationException e) {
                   e.printStackTrace();
              } catch (SAXException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   e.printStackTrace();
              **Schema schema = factory.getSchema();**
              Validator validator = schema.newValidator();
              try {
                   validator.validate(new DOMSource(document));
              } catch (SAXException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   e.printStackTrace();
    and here is the exception :
    Caused by: java.lang.NoSuchMethodError: javax.xml.parsers.DocumentBuilderFactory.getSchema()Ljavax/xml/validation/Schema;
    Method onLinkClicked of interface wicket.markup.html.link.ILinkListener targeted at component [MarkupContainer [Component id = btBack, page = br.com.weev.finan.mkb_er.extranet.view.relations.RelationsDetails, path = 30:form:btBack.RelationsDetails$4, isVisible = true, isVersioned = true]] threw an exception
    wicket.WicketRuntimeException: Method onLinkClicked of interface wicket.markup.html.link.ILinkListener targeted at component [MarkupContainer [Component id = btBack, page = br.com.weev.finan.mkb_er.extranet.view.relations.RelationsDetails, path = 30:form:btBack.RelationsDetails$4, isVisible = true, isVersioned = true]] threw an exception
         at wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:198)
         at wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:74)
         at wicket.request.compound.DefaultEventProcessorStrategy.processEvents(DefaultEventProcessorStrategy.java:65)
         at wicket.request.compound.AbstractCompoundRequestCycleProcessor.processEvents(AbstractCompoundRequestCycleProcessor.java:57)
         at wicket.RequestCycle.doProcessEventsAndRespond(RequestCycle.java:896)
         at wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:929)
         at wicket.RequestCycle.step(RequestCycle.java:1010)
         at wicket.RequestCycle.steps(RequestCycle.java:1084)
         at wicket.RequestCycle.request(RequestCycle.java:454)
         at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:219)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
         at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: java.lang.reflect.InvocationTargetException
         at sun.reflect.GeneratedMethodAccessor342.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:187)
         ... 39 more
    Caused by: java.lang.NoSuchMethodError: javax.xml.parsers.DocumentBuilderFactory.getSchema()Ljavax/xml/validation/Schema;
         at br.com.weev.finan.mkb_er.business.manager.impl.RelationManagerImpl.getAuthorizationService(RelationManagerImpl.java:152)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy22.getAuthorizationService(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:377)
         at wicket.proxy.$Proxy39.getAuthorizationService(Unknown Source)
         at br.com.weev.finan.mkb_er.extranet.view.relations.RelationsDetails$4.onClick(RelationsDetails.java:125)
         at wicket.markup.html.link.Link.onLinkClicked(Link.java:254)
         ... 43 more
    It's my first time doing that, so I'm confuse to do it.
    Thank you
    Juliano.

    This is how.
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.dom.DOMResult;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.validation.Schema;
    import javax.xml.validation.SchemaFactory;
    import javax.xml.validation.Validator;
    DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
    dbfac.setNamespaceAware(true);
    SchemaFactory factory1 = SchemaFactory
                        .newInstance("http://www.w3.org/2001/XMLSchema");
    Schema schema = factory1.newSchema(new File("person.xsd"));
    dbfac.setSchema(schema);
    DocumentBuilder dbparser1 = dbfac.newDocumentBuilder();
    Document doc1 = dbparser1.parse(new File("person.xml"));
    Validator validator1 = schema.newValidator();
    DOMSource dm1 = new DOMSource(doc1);
    DOMResult domresult1 = new DOMResult();
    validator1.validate(dm1, domresult1);

  • Have XML with another embedded XML encoded in base64 - how to extract?

    Hi guys,
    I have a XML-RPC web service that returns a response like this:
    <methodResponse>
    <params>
    <param>
    <value>
    <base64>
    PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNlYXJjaFJlc3VsdD48bnVtcm93cz4xPC9udW1yb3dzPjxmb3VuZD4xPC9mb3VuZD48d29yZGluZm8+IGJvdMOjbyA6IDU8L3dvcmRpbmZvPjxzZWFyY2h0aW1lPjAuMDA2PC9zZWFyY2h0aW1lPjxmaXJzdGRvYz4xPC9maXJzdGRvYz48bGFzdGRvYz4xPC9sYXN0ZG9jPjx3b3JkaW5mb2FsbD5ib3TDo28gOiA1IC8gNTwvd29yZGluZm9hbGw+PGl0ZW0+PHVybGlkPjE5PC91cmxpZD48dXJsPmh0dHA6Ly9jZW50cmFsL2dhcnJhcy9RdWVtX21hdG91X0pGSy9hcnRlZmF0b3MvaHRtLzc1MDUuaHRtPC91cmw+PGNvbnRlbnQ+dGV4dC9odG1sPC9jb250ZW50Pjx0aXRsZT5Tb3VuZE1BWDwvdGl0bGU+PGtleXdvcmRzPjwva2V5d29yZHM+PGRlc2M+PC9kZXNjPjx0ZXh0Pi4uLiBlIGNvbXVuaWNhw6fDo28gdmlhIEludGVybmV0LiBDbGlxdWUgbm8gJmx0O2ZvbnQgY29sb3I9JnF1b3Q7MDAwMDg4JnF1b3Q7Jmd0OyZsdDtiJmd0O2JvdMOjbyZsdDsvYiZndDsmbHQ7L2ZvbnQmZ3Q7IGNvbSBvIGxvZ290aXBvIEFuZHJlYSBlbSAuLi4gYWRxdWlyaXIgdW1hIGF0dWFsaXphw6fDo28sIGNsaWNhbmRvIG5vICZsdDtmb250IGNvbG9yPSZxdW90OzAwMDA4OCZxdW90OyZndDsmbHQ7YiZndDtib3TDo28mbHQ7L2ImZ3Q7Jmx0Oy9mb250Jmd0OyBjb20gbyDDrWNvbmUgRm9uZSBkZSBvdXZpZG8uIERlcG9pcyBkZSAuLi4gJyBWaXJ0dWFsIEVhcicnICwgYmFzdGFuZG8gY2xpY2FyIG5vICZsdDtmb250IGNvbG9yPSZxdW90OzAwMDA4OCZxdW90OyZndDsmbHQ7YiZndDtib3TDo28mbHQ7L2ImZ3Q7Jmx0Oy9mb250Jmd0OyBjb20gw61jb25lIE91dmlkby4gQXDDs3MgYWRxdWlyaXIgZSA8L3RleHQ+PHNpemU+MTg1MDM8L3NpemU+PHJhdGluZz41LjUwNSU8L3JhdGluZz48bW9kaWZpZWQ+MTAvMDgvMjAwMiAxNjo1ODoxMCAtMDQwMDwvbW9kaWZpZWQ+PG9yZGVyPjE8L29yZGVyPjxjcmM+LTE5NjM3MDA5MzQ8L2NyYz48Y2F0ZWdvcnk+PC9jYXRlZ29yeT48bGFuZz5lbi11czwvbGFuZz48Y2hhcnNldD53aW5kb3dzLTEyNTI8L2NoYXJzZXQ+PHNpdGVpZD40NjE1ODk0NjE8L3NpdGVpZD48cG9wX3Jhbms+MC4wMDAwMDwvcG9wX3Jhbms+PG9yaWdpbmlkPjA8L29yaWdpbmlkPjwvaXRlbT48L3NlYXJjaFJlc3VsdD4K
    </base64>
    </value>
    </param>
    </params>
    </methodResponse>The base64 value is another XML embedded document that I have to extract.
    I have the following code (don't know if it's the best approach), where l_val is a CLOB and l_xml is XMLTYPE:
    l_val := DBMS_XMLGEN.convert( l_xml.extract('/methodResponse/params/param/value/base64/text()').getclobval(), 1 );How can I decode the base64-encoded contents of the l_val CLOB and store the result into another CLOB that I can then process with xmlsequence() and extract()?
    Thanks in advance. Regards,
    Georger

    Hi mdrake,
    I saw your answer on the other thread :)
    I know about the 32K limitation; that's why I need to store the decoded CLOB in another CLOB, as bigger documents will often be the case. I've been reading about this for a while, to no avail.
    Do you believe BASE64_DECODE_CLOB could be changed to return CLOB rather than VARCHAR2? Regards,
    Georger
    mdrake wrote:
    You'll need to do some work in this if the Encoded XML is bigger than 32K
    SQL> set long 10000 pages 0
    SQL> CREATE OR REPLACE FUNCTION BASE64_DECODE_CLOB (INPUT CLOB)
    2  return VARCHAR2
    3  as
    4    V_RAW_BUFFER RAW(32767);
    5    V_VARCHAR2_BUFFER VARCHAR2(32767);
    6  begin
    7    V_VARCHAR2_BUFFER := DBMS_LOB.SUBSTR(INPUT,32767,1);
    8    V_RAW_BUFFER := UTL_RAW.CAST_TO_RAW(V_VARCHAR2_BUFFER);
    9    V_RAW_BUFFER :=  UTL_ENCODE.BASE64_DECODE(V_RAW_BUFFER);
    10    V_VARCHAR2_BUFFER := UTL_RAW.CAST_TO_VARCHAR2(V_RAW_BUFFER);
    11    return V_VARCHAR2_BUFFER;
    12  end;
    13  /
    Function created.
    SQL> set serveroutput on
    SQL> --
    SQL> with XML as
    2  (
    3  select XMLType(
    4  '<methodResponse>
    5  <params>
    6  <param>
    7  <value>
    8  <base64>
    9  PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNlYXJjaFJlc3VsdD48bnVtcm93cz4xPC9udW1yb3dzPjxmb3VuZD4xPC9mb3VuZD48d29yZGl
    uZm8+IGJvdMOjbyA6IDU8L3dvcmRpbmZvPjxzZWFyY2h0aW1lPjAuMDA2PC9zZWFyY2h0aW1lPjxmaXJzdGRvYz4xPC9maXJzdGRvYz48bGFzdGRvYz4xPC9sYXN0ZG9jPjx
    3b3JkaW5mb2FsbD5ib3TDo28gOiA1IC8gNTwvd29yZGluZm9hbGw+PGl0ZW0+PHVybGlkPjE5PC91cmxpZD48dXJsPmh0dHA6Ly9jZW50cmFsL2dhcnJhcy9RdWVtX21hdG9
    1X0pGSy9hcnRlZmF0b3MvaHRtLzc1MDUuaHRtPC91cmw+PGNvbnRlbnQ+dGV4dC9odG1sPC9jb250ZW50Pjx0aXRsZT5Tb3VuZE1BWDwvdGl0bGU+PGtleXdvcmRzPjwva2V
    5d29yZHM+PGRlc2M+PC9kZXNjPjx0ZXh0Pi4uLiBlIGNvbXVuaWNhw6fDo28gdmlhIEludGVybmV0LiBDbGlxdWUgbm8gJmx0O2ZvbnQgY29sb3I9JnF1b3Q7MDAwMDg4JnF
    1b3Q7Jmd0OyZsdDtiJmd0O2JvdMOjbyZsdDsvYiZndDsmbHQ7L2ZvbnQmZ3Q7IGNvbSBvIGxvZ290aXBvIEFuZHJlYSBlbSAuLi4gYWRxdWlyaXIgdW1hIGF0dWFsaXphw6f
    Do28sIGNsaWNhbmRvIG5vICZsdDtmb250IGNvbG9yPSZxdW90OzAwMDA4OCZxdW90OyZndDsmbHQ7YiZndDtib3TDo28mbHQ7L2ImZ3Q7Jmx0Oy9mb250Jmd0OyBjb20gbyD
    DrWNvbmUgRm9uZSBkZSBvdXZpZG8uIERlcG9pcyBkZSAuLi4gJyBWaXJ0dWFsIEVhcicnICwgYmFzdGFuZG8gY2xpY2FyIG5vICZsdDtmb250IGNvbG9yPSZxdW90OzAwMDA
    4OCZxdW90OyZndDsmbHQ7YiZndDtib3TDo28mbHQ7L2ImZ3Q7Jmx0Oy9mb250Jmd0OyBjb20gw61jb25lIE91dmlkby4gQXDDs3MgYWRxdWlyaXIgZSA8L3RleHQ+PHNpemU
    +MTg1MDM8L3NpemU+PHJhdGluZz41LjUwNSU8L3JhdGluZz48bW9kaWZpZWQ+MTAvMDgvMjAwMiAxNjo1ODoxMCAtMDQwMDwvbW9kaWZpZWQ+PG9yZGVyPjE8L29yZGVyPjx
    jcmM+LTE5NjM3MDA5MzQ8L2NyYz48Y2F0ZWdvcnk+PC9jYXRlZ29yeT48bGFuZz5lbi11czwvbGFuZz48Y2hhcnNldD53aW5kb3dzLTEyNTI8L2NoYXJzZXQ+PHNpdGVpZD4
    0NjE1ODk0NjE8L3NpdGVpZD48cG9wX3Jhbms+MC4wMDAwMDwvcG9wX3Jhbms+PG9yaWdpbmlkPjA8L29yaWdpbmlkPjwvaXRlbT48L3NlYXJjaFJlc3VsdD4K
    10  </base64>
    11  </value>
    12  </param>
    13  </params>
    14  </methodResponse>') OBJECT_VALUE
    15  from dual
    16  )
    17  select XMLSERIALIZE(DOCUMENT XMLTYPE(BASE64_DECODE_CLOB(extract(OBJECT_VALUE,'/methodResponse/params/param/value/base64/text()'
    ).getClobVal())) as CLOB INDENT SIZE=2)
    18    from XML
    19  /
    <?xml version="1.0" encoding="UTF-8"?>
    <searchResult>
    <numrows>1</numrows>
    <found>1</found>
    <wordinfo> botπo : 5</wordinfo>
    <searchtime>0.006</searchtime>
    <firstdoc>1</firstdoc>
    <lastdoc>1</lastdoc>
    <wordinfoall>botπo : 5 / 5</wordinfoall>
    <item>
    <urlid>19</urlid>
    <url>http://central/garras/Quem_matou_JFK/artefatos/htm/7505.htm</url>
    <content>text/html</content>
    <title>SoundMAX</title>
    <keywords/>
    <desc/>
    <text>... e comunicaτπo via Internet. Clique no &lt;font color="000088&
    quot;&gt;&lt;b&gt;botπo&lt;/b&gt;&lt;/font&gt; com o logotipo Andrea em ... adqu
    irir uma atualizaτπo, clicando no &lt;font color="000088"&gt;&lt;b&gt;
    botπo&lt;/b&gt;&lt;/font&gt; com o φcone Fone de ouvido. Depois de ... &apos; Vi
    rtual Ear&apos;&apos; , bastando clicar no &lt;font color="000088"&gt;
    &lt;b&gt;botπo&lt;/b&gt;&lt;/font&gt; com φcone Ouvido. Ap≤s adquirir e </text>
    <size>18503</size>
    <rating>5.505%</rating>
    <modified>10/08/2002 16:58:10 -0400</modified>
    <order>1</order>
    <crc>-1963700934</crc>
    <category/>
    <lang>en-us</lang>
    <charset>windows-1252</charset>
    <siteid>461589461</siteid>
    <pop_rank>0.00000</pop_rank>
    <originid>0</originid>
    </item>
    </searchResult>
    SQL>And don't expect it to be the fastest soln in history.

  • EBS-R12 Generate XML (with data) from Embedded Data Definition

    Hi
    I'm new to running XMLP/BIP in EBS.
    I have found the extensive set of data definitions and templates in EBS and they work great out of the box.
    I, however, need to make template modifications.
    To this end, a correctly structured XML data template - containing all the data fields - is needed for loading into the template-builder in Word.
    If for example I take the embedded R12 data definition - XLAJELINESRPT.xml - for Posted Payable Invoices, and load it into the template builder, it provides the structure of the data template and not the structure of the output XML data.
    I have tried several ways to run the Data definition through XMLP using the concurrent manager attempting to intercept the generated XML (with data) but it either completes the process and uses the linked output template - producing the PDF - or other output - or if I remove the (output template altogether) it fails with an error.
    Maybe I'm missing an obvious step, but there has to be a way of taking the very comprehensive Data Definitions embedded in R12 EBS and using them in custom report templates.
    If I've totally missed the point, please give me the steps to follow.
    Many thaks in anticipation.
    Mike MacMurray

    HI Mike,
    You cannot load your Data Template into the MS Word Template Builder plugin, as it cannot be run to generate XML this way.
    You have two options to get the data from an XML Publisher Report run as a concurrent program in EBS.
    1) Using the XML Publisher Administrator responsibility, set an end date for both the Data Defintion and Template Definitions associated with the XLAJELINESRPT report.
    2) Leave the concurrent program, Data Defintions and Template Definitions exactly as they are and run the report. Once the report has completed, select the Concurrent Request, click "Diagnostics" then click "View XML". This will open the XML in a new browser window. You can then right click, View Source and then save this document locally.
    You can then load this XML into the MS Word Template Builder and start building your template.
    I hope this helps.
    Regards,
    Cj

  • Validate xml with PL/SQL Parser

    Hi,
    i have an xml DTD into a VARCHAR2 variable and an xml document
    into a CLOB, i'd like to know how to validate the xml with my
    DTD using PL/SQL API for xml.
    Sorry for my terrible english (i'm not english) :-)
    Tank you.

    Here's an example:
    set serveroutput on
    DECLARE
      p xmlparser.parser;
      d xmldom.DOMDocument;
      dtd xmldom.DOMDocumentType;
      v varchar2(32700);
      good clob;
      bad clob;
      xml_parse_error exception;
      pragma exception_init(xml_parse_error,-20100);
    BEGIN
      bad   := '<!DOCTYPE Department SYSTEM "test.dtd"><Deprtment/>';
      good  := '<!DOCTYPE Department
    SYSTEM "test.dtd"><Department/>';
      v := '<!ELEMENT Department EMPTY>';
      p := xmlparser.newParser;
      xmlparser.parseDTDBuffer(p,v,'Department');
      xmlparser.setDoctype(p,xmlparser.getDoctype(p));
      xmlparser.setValidationMode(p,TRUE);
      xmlparser.parseClob(p,good);
      xmlparser.parseClob(p,bad);
      xmlparser.freeParser (p);
    EXCEPTION
      WHEN xml_parse_error THEN
         DBMS_OUTPUT.PUT_LINE(sqlerrm);
         xmlparser.freeParser (p);
    END;

  • Problem parsing XML with schema when extracted from a jar file

    I am having a problem parsing XML with a schema, both of which are extracted from a jar file. I am using using ZipFile to get InputStream objects for the appropriate ZipEntry objects in the jar file. My XML is encrypted so I decrypt it to a temporary file. I am then attempting to parse the temporary file with the schema using DocumentBuilder.parse.
    I get the following exception:
    org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element '<root element name>'
    This was all working OK before I jarred everything (i.e. when I was using standalone files, rather than InputStreams retrieved from a jar).
    I have output the retrieved XML to a file and compared it with my original source and they are identical.
    I am baffled because the nature of the exception suggests that the schema has been read and parsed correctly but the XML file is not parsing against the schema.
    Any suggestions?
    The code is as follows:
      public void open(File input) throws IOException, CSLXMLException {
        InputStream schema = ZipFileHandler.getResourceAsStream("<jar file name>", "<schema resource name>");
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = null;
        try {
          factory.setNamespaceAware(true);
          factory.setValidating(true);
          factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
          factory.setAttribute(JAXP_SCHEMA_SOURCE, schema);
          builder = factory.newDocumentBuilder();
          builder.setErrorHandler(new CSLXMLParseHandler());
        } catch (Exception builderException) {
          throw new CSLXMLException("Error setting up SAX: " + builderException.toString());
        Document document = null;
        try {
          document = builder.parse(input);
        } catch (SAXException parseException) {
          throw new CSLXMLException(parseException.toString());
        }

    I was originally using getSystemResource, which worked fine until I jarred the application. The problem appears to be that resources returned from a jar file cannot be used in the same way as resources returned directly from the file system. You have to use the ZipFile class (or its JarFile subclass) to locate the ZipEntry in the jar file and then use ZipFile.getInputStream(ZipEntry) to convert this to an InputStream. I have seen example code where an InputStream is used for the JAXP_SCHEMA_SOURCE attribute but, for some reason, this did not work with the InputStream returned by ZipFile.getInputStream. Like you, I have also seen examples that use a URL but they appear to be URL's that point to a file not URL's that point to an entry in a jar file.
    Maybe there is another way around this but writing to a file works and I set use File.deleteOnExit() to ensure things are tidied afterwards.

  • Oracle SQL - Extracting clob value from XML with repeating nodes

    Hi All,
    I am attempting to run SQL on a table (called test_xml with a column xml_data [data type xmltype]). The column contains xml with repeating nodes (description). The following statement runs successfully when the node contains data of a non clob size:
    SELECT
    extractvalue (Value (wl), '*/description')
    FROM test_xml
    , TABLE (xmlsequence (extract (xml_data, '*/record'))) wl
    but fails when description node contains a lot of data:
    ORA-01706: user function result value was too large
    I amended my query:
    SELECT
    extractvalue(Value (wl), '*/description').getClobVal()
    FROM test_xml
    , TABLE (xmlsequence (extract (xml_data, '*/record'))) wl
    but this fails with:
    ORA-22806: not an object or REF
    Thanks in Advance

    Hi Greg,
    11.2.0.2.0 (Although I will need to do this on my work instance also which is 10.2.0.4)That's gonna be a problem...
    Direct CLOB projection is supported starting with 11.2.0.2, using XMLTable or XMLCast/XQuery functions (extractvalue, extract, xmlsequence are deprecated now) :
    SELECT x.*
    FROM test_xml t
       , XMLTable(
           '/*/record'
           passing t.xml_data
           columns
             description  clob path 'description'
         ) x
    ;On prior versions, implicit conversions will occur to VARCHAR2 datatype, hence the limitation observed.
    AFAIK you have two options on 10.2.0.4 :
    1) Using Object-Relational storage, with the xdb:SQLType="CLOB" annotation.
    2) Using the following trick :
    SELECT dbms_xmlgen.convert(x.description.getClobVal(), 1) as description
    FROM test_xml t
       , XMLTable(
           '/*/record'
           passing t.xml_data
           columns
             description  xmltype path 'description/text()'
         ) x
    ;

  • Problem while creating xml with cdata section

    Hi,
    I am facing problem while creating xml with cdata section in it. I am using Oracle 10.1.0.4.0 I am writing a stored procedure which accepts a set of input parameters and creates a xml document from them. The code snippet is as follows:
    select xmlelement("DOCUMENTS",
    xmlagg
    (xmlelement
    ("DOCUMENT",
    xmlforest
    (m.document_name_txt as "DOCUMENT_NAME_TXT",
    m.document_type_cd as "DOCUMENT_TYPE_CD",
    '<![cdata[' || m.document_clob_data || ']]>' as "DOCUMENT_CLOB_DATA"
    ) from table(cast(msg_clob_data_arr as DOCUMENT_CLOB_TBL))m;
    msg_clob_data_arr is an input parameter to procedure and DOCUMENT_CLOB_TBL is a pl/sql table of an object containing 3 attributes: first 2 being varchar2 and the 3rd one as CLOB. The xml document this query is generating is as follows:
    <DOCUMENTS>
    <DOCUMENT>
    <DOCUMENT_NAME_TXT>TestName</DOCUMENT_NAME_TXT>
    <DOCUMENT_TYPE_CD>BLOB</DOCUMENT_TYPE_CD>
    <DOCUMENT_CLOB_DATA>
    &lt;![cdata[123456789012345678901234567890123456789012]]&gt;
    </DOCUMENT_CLOB_DATA>
    </DOCUMENT>
    </DOCUMENTS>
    The problem is instead of <![cdata[....]]> xmlforest query is encoding everything to give &lt; for cdata tag. How can I overcome this? Please help.

    SQL> create or replace function XMLCDATA_10103 (elementName varchar2,
      2                                             cdataValue varchar2)
      3  return xmltype deterministic
      4  as
      5  begin
      6     return xmltype('<' || elementName || '><![CDATA[' || cdataValue || ']]>
      7  end;
      8  /
    Function created.
    SQL>  select xmlelement
      2         (
      3            "Row",
      4            xmlcdata_10103('Junk','&<>!%$#&%*&$'),
      5            xmlcdata_10103('Name',ENAME),
      6            xmlelement("EMPID", EMPNO)
      7         ).extract('/*')
      8* from emp
    SQL> /
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[SMITH]]></Name>
      <EMPID>7369</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[ALLEN]]></Name>
      <EMPID>7499</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[WARD]]></Name>
      <EMPID>7521</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[JONES]]></Name>
      <EMPID>7566</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[MARTIN]]></Name>
      <EMPID>7654</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[BLAKE]]></Name>
      <EMPID>7698</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[CLARK]]></Name>
      <EMPID>7782</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[SCOTT]]></Name>
      <EMPID>7788</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[KING]]></Name>
      <EMPID>7839</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[TURNER]]></Name>
      <EMPID>7844</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[ADAMS]]></Name>
      <EMPID>7876</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[JAMES]]></Name>
      <EMPID>7900</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[FORD]]></Name>
      <EMPID>7902</EMPID>
    </Row>
    <Row>
      <Junk><![CDATA[&<>!%$#&%*&$]]></Junk>
      <Name><![CDATA[MILLER]]></Name>
      <EMPID>7934</EMPID>
    </Row>
    14 rows selected.
    SQL>

Maybe you are looking for

  • Scheduling Agreement –delivery date in month format -  MD04

    Dear experts, Scheduling Agreement, forecast delivery schedule. When I enter a delivery date in month format, the system, during processing, automatically checks the factory calendar and proposes the first valid working day as the delivery date. ( Ye

  • Convert a counter to frequency

    Hi, I am using two counters on a 6023E board. I have two pulse generators which give 1000 pulses in one rotation. How can I convert the counts to frequency or speed in LabView? Greetings, Erik.

  • Designing Safari page for iPhone

    Note here: http://www.flickr.com/photos/jorgecorrea/4359779134/lightbox/ iPhone is 480 pixels wide. But when I design an iPhone Safari homepage page that way, it's too narrow. I doesn't look right unless it's 962 pixels wide. Why not? What is the cor

  • Flash CC Eraser Faucet Bug. Mac Only? (video included)

    I've reported this bug, but haven't heard a reply since I submitted the screencast video they requested. This happens in Flash CC on MacOS X (10.8, 10.9 tested) The issue: When using the eraser faucet tool to delete overlapping lines, the line or con

  • Create New Test Database with all permissions

    Hi all, We have a Oracle9i database running on Linux platform . Currently 40 users working on it. Now i want to create another test database with giving all permissions to it. Give your valuable suggestions. Regards, Sudarshanam