Generate lower-case nodes in XML

Hi,
In my PL/SQL procedures, I generate XML files based on SQL queries, like this:
SELECT XMLELEMENT ("web_vpreparations",
XMLAGG(
XMLELEMENT ("web_vpreparation",
XMLFOREST (CODE as "code",
COMMERCIAL_NAME as "commercial_name",
As you can see, I rename my column names to their lower-case equivalents, because the client-side application which processes the XML file expects them to be in lower-case.
I now have a huge view with hundreds of columns and would like to avoid having to rename each one. Is there a chance I can tell the PL/SQL or the SQL to return the XML nodes in lower-case?
I'll appreciate any help on this problem.
Chris.

does XMLTable exist in Oracle 9i, for some of my customers?No. XMLTable was introduced in 10g (not sure the exact version though).
What am I doing wrong?Sorry can't say. I know for sure that it works for 10.2.0.4.0:
SQL> select * from v$version where rownum = 1
BANNER                                                         
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
1 row selected.
SQL> select trim(column_value) cv
from xmltable(
'for $i in ora:view("hersteller_x")/ROW[HERSTL=1]/* return element {lower-case($i/name())} {$i/text()}')
CV                                                                             
<mandant>1</mandant>                                                           
<herstl>1</herstl>                                                             
<kurzbez>01FSL</kurzbez>                                                       
<name>SEMICONDUCTOR INC.</name>                                      
<versland>D</versland>                                                         
<urland>US</urland>                                                            
<versweg>4</versweg>                                                           
7 rows selected.

Similar Messages

  • Generating mixed case columns for XML using Object views

    I am trying to model a query involving joins to generate hierarchical levels for XML document. I model it with an object view with a multicast subquery and the generated XML works fine except the following :
    The generated XML creates a tag <view_column_name>_ITEM for the nested multicase subquery columns in the view and all the nested subquery view columns in upper case because the underlying table columns are in upper case. To better illustrate, please see the following example :
    CREATE TYPE Tillinstance_t as object (
    "Tillinstanceid" number
    ,"Stationid" number
    ,"Comment" varchar2(2000)
    ,"DepositID" number(38)
    ,"TimestampCreate" date
    ,"UseridCreate" number
    ,"TimestampChange" date
    ,"UseridChange" number
    ,"TimestampClosed" date
    ,"UseridClosed" number
    ,"TimestampBalance" date
    ,"UserIDBalance" number )
    create type insts as table of Tillinstance_t ;
    CREATE OR REPLACE VIEW till_view AS
    SELECT t.tillid as "TillID"
    , t.description as "Descr"
    , t.word as "Word"
    , t.Scopetypeid as "ScopeTypeId"
    , t.displayOrder as "DisplayOrder"
    , t.useridcreate as "UserIDCreate"
    , t.newid as "NewID"
    , t.flagactive as "FlagActive"
    , t.timestampcreate as "TSCR"
    , t.useridcreate as "UIDCR"
    , t.timestampchange as "TSCH"
    , t.useridchange as "UIDCH"
    , CAST( MULTISET ( SELECT i.Tillinstanceid as "TillinstanceID"
    , i.stationid as "StationID"
    , i.ocomment as "Comment"
    , i.depositid as "DepositID"
    , i.Timestampcreate as "TSCR"
    , i.useridcreate as "UIDCR"
    , i.Timestampchange as "TSCH"
    , i.useridchange as "UIDCH"
    , i.timestampclosed as "TSCL"
    , i.useridclosed as "UIDCL"
    , i.timestampbalance as "TSBAL"
    , i.useridbalance as "UIDBAL"
    FROM TillInstance i
    WHERE t.tillid = i.tillid)
    AS Insts)
    AS "Insts"
    FROM ucTill t
    The generated XML shows up in the form of :
    <?xml version = '1.0'?>
    <Tills>
    <Till TillID="1002" Descr="Till #3" Word="Till3" ScopeTypeId="8"
    DisplayOrder="0" UserIDCreate="296" TSCR="3/26/2001 0:0:0" UIDCR="296"
    TSCH="5/4/2001 14:12:32" UIDCH="298">
    <Insts>
    <Insts_ITEM TILLINSTANCEID="1278" STATIONID="1057" OCOMMENT="Morning Till3"
    TIMESTAMPCREATE="3/26/2001 0:0:0" USERIDCREATE="296" TIMESTAMPCHANGE="6/7/2001
    8:26:49" USERIDCHANGE="99" TIMESTAMPCLOSED="6/7/2001 8:26:49"
    USERIDCLOSED="99"/>
    <Insts_ITEM TILLINSTANCEID="1362" STATIONID="1057" TIMESTAMPCREATE="6/7/2001
    8:27:13" USERIDCREATE="99" TIMESTAMPCHANGE="6/11/2001 11:32:58"
    USERIDCHANGE="320"/>
    </Insts>
    </Till>
    </Tills>
    Now How do I stripe out the _ITEM from the generated XML and change the columns TIMESTAMPCREATE, USERIDCLOSED etc to mixed case?
    Any idea

    I could generate the mixed case columns with no problem. It was my mistake and sorry for the inconvinience.
    However I am running into problems modelling a nested hierarchical set of queries with levels more than 2.
    Please advise of any sample code available anywhere.
    For example I could do :
    create table x1 ( id number , f1 varchar2(10));
    creat table x2 ( id number , id_x1 number references x1(id) , f1 varchar2(10)) ;
    create table x3 ( id number , id_x2 number references x2(id), f1 varchar2(10)) ;
    To model this, I did
    create type x3_typ as object ( id number, id_x2 number , f1 varchar2(10)) ;
    create type x3_typ_t is table of x3_typ ;
    create type x2_typ as object ( id number, id_x1 number , f1 varchar2(10), x3_list x3_typ_t ) ;
    create type x2_typ_t is table of ref x2_typ ;
    create type x1_typ as object ( id number
    , f1 varchar2(10) , x2_list x2_typ_t ) ;
    create or replace view x3_x2 as
    select id , f1 , cast(multiset(select * from x3 ) as x3_typ_t ) as x3_list
    If I try to use a view again like as given below, I get the Oracle inconsistent datatypes error.
    create or replace view x2_x1 as
    select id , f1 , cast(multiset(select * from x3_x2 ) as x2_typ_t ) as x2_list
    I there a better way? Am I missing something? Please help.

  • Safari XML parser converts attributes to lower case?

    I am trying to create and serialize XML documents using Safari 2.01. It appears that during this process, XML attributes are always converted to lower case. Since XML is case sensitive, this causes errors when mixed case is expected. My sample code (below) works properly (attributes not converted to lower case) in FireFox, Netscape, etc.
    Questions are:
    Is there a way to load/serizlize XML in Safari so that this does not happen?
    If not, is this behavior by design or is it a bug? Will this be changed in future versions?
    Thanks for any assistance!
    Sample code:
    // Create XML document
    var xmlString = '<Test MixedCase="test">SomeText</Test>'
    var parser = new DOMParser();
    xmlDoc = parser.parseFromString(xmlString, "text/xml");
    // Get XML text
    var serializer = new XMLSerializer();
    text = serializer.serializeToString(xmlDoc);
    IBM Thinkpad T40   Windows 2000  
    IBM Thinkpad T40   Windows 2000  
      Windows XP  
      Mac OS X (10.2.x)  
      Mac OS X (10.0.x)  

    Are you sure the parser is changing the element names?
    (You didn't really mean "attributes", did you?) If it
    is, then that's a bug in the parser. Element names in
    XML are case-sensitive, i.e. they can be upper or
    lower case or any mixture of cases. There aren't
    supposed to be any "features" that let you fiddle with
    the case of element names.
    If you told me that you were using a Transformer to
    produce HTML, and that it was outputting <TR>, I
    wouldn't be surprised. Especially since XALAN is a
    transformer and not a parser. I would just suggest in
    that case that you should change your output method
    from HTML to XML, and to output <tr>. A Transformer
    won't change the case of element names if the output
    method is XML, but it may if the output method is
    HTML.Thanks for the response. Sorry about the vernacular mixup there.
    Here is our situation:
    javax.xml.parsers.SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
    parser.parse(InputSource is, HandlerBase hb) <-- noted that this is a deprecated method
    This parse method here turns the html elements upper case.
    I have experimented with setting the XMLReader on the parser as a HTMLSerializer and XHTMLSerializer with no luck in changing the outcome.
    Hope this clears things up a bit more.

  • XML element names required in lower case

    Hi,
    I am on release 4.6C
    I create an XML file from internal table using FM SDIXML_DATA_TO_DOM and SDIXML_DOM_TO_XML.
    The internal table is defined such that the  fieldnames of internal table are same as element names in XML file.
    The XML file gets created properly, but the element names appear in upper case.
    The requirement is to have it in lower case.
    Does anybody have any idea about how to control the case here?

    Hi Sudhir
    you can convert field names manually using translate command to convert it to lower case.
    hope this helps.

  • Hibernate for lower case data(case sensitive) in oracle 10G

    Hi,
    I generated my data (oracle 10G release 2) using lowercase data types and table names. This requires queries in the strict form of -
    Select "Column_Name" from "Table_name";
    But Hibernate makes the queries as -
    Select Column_Name from Table_Name;
    driver I am using is oracle.jdbc.driver.OracleDriver
    Jar is ojdbc14
    and dialect is org.hibernate.dialect.Oracle9Dialect
    The problem is:
    table or view does not exist.
    as it(lower case data) does not recognize the hibernate query format.
    Can anyone suggest the proper driver and Jar to overcome the problem.
    Regards,
    Ankit

    Ankit,
    Just bite the bullet and don't use case-sensitive identifiers :-)
    I don't use "hibernate", but maybe you can add the double-quotes -- " -- in the XML file?
    I don't think there's a JDBC driver that adds the double-quotes for you. So I think your only option (if you insist on using case-sensistive identifiers) is to explore possibilities through "hibernate" itself.
    I also don't think there's any database setting that allows Oracle to accept case-sensitive identifiers.
    Good Luck,
    Avi.

  • Wsdeploy generates upper case method calls

    Hi all,
    I'm using
    wsdeploy -tmpdir build\server -keep -o dist\adresse.war build\adresse_prepare.war -verbose
    to generate the server part of my webservice.
    This one put the method call of my only interface call
    getAdresse(String bla)
    to upper cases in all generated classes. So far this doesn't seem to be a problem cause the service is active and seems to work but if I try to generate the client side with
    wscompile -gen:client -d build/client -keep -verbose config.xml
    and direct access to the wsdl-file via the service all client classes are generated with lower case method call.
    Now trying to call the service with the client stubs I get a class not found exception on the server side cause the server seems to be instructed to search for lower case method call classes.
    The generated wsdl file exists of lower case method calls.
    I'm getting mad...
    Please help
    Oliver

    Same problem with the simple hello application....if someone of the creators of this wonderful tool is listening please give me a hint where to look at...I'm really drivin' crazy...
    java.lang.NoClassDefFoundError: hello/HelloIF_SayHello_RequestStruct (wrong name: hello/HelloIF_sayHello_RequestStruct)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
         at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1340)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1274)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)

  • Lower case in variable substitution

    Hi experts,
    in my scenario I have a receiver CC that put an xml file in a target server.
    The requirement is to dynamically determine target directory based on a field on mapping header.
    I have used variabile substitution to retrieve the value of the field, and with %% i have put this value on field target directory.
    The problem is: value from mapping is in capital letter, but the name of the target directory in which I have to put the file is in lower case letters, and target server is case sensitive.
    Obviously I cannot change value in mapping, but I need to put variable in variable substituion in lower letters.
    Is it possible?
    Thanks
    Fabio

    Fabio Boni wrote:
    Hi,
    > I don't want to make changes on mapping, is not possible to put lower case in variable substituion?
    > Thanks
    > Fabio
    no
    also in case you want to put small case in variable substitution why cant you use dynamic configuration and set the values to lower case?

  • Do you need to generate HTML table rows from XML in InDesign?

    General issue: you export XML and you get a bunch of content for xml elements that were a table in inDesign. But they don't have any rows, just cell after cell. What will make rows in your output?
    Solution: XSLT; you need to use the @aid:tcols attribute of exported XML to determine the number of columns that your table should be. This is written in XSLT 1.1 so it shoud work with an export from InDesign. If you have problems with using it on export of XML, try using it on the XML afetr it has been exported, in Oxygen or other XSLT processor. Best to save acopy of your files before using the XSLT with them.  Copy all of the plain text and past into a new file, save with your own filename, ending with .xsl file extension. Then when exporting XML from InDesign CS3-5, browse to your new .xsl file and select it. PLEASE read about XSLT files at w3c.schools or other resource if you want to understand what is going on with this file.
    BTW <!-- indicates comments in code -->
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- NO WARRANTY that this example code will work as written for your XML file in InDesign. You can add more templates to the output to map your heading styles to h1, h2, etc. -->
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1"
        xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"
        xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" exclude-result-prefixes="xsl aid aid5">
        <xsl:output method="html" indent="yes" encoding="UTF-8"
            doctype-public="http://www.w3.org/TR/xhtml/DTD/xhtml-transitional.dtd"/>
    <!-- parameter to use the name of element with attribute aid:theader as the th output -->
        <xsl:param name="tableElem">//*[local-name()][@aid:table='table']</xsl:param>
        <xsl:param name="colheadStyle">
            <xsl:value-of select="//*[local-name()][@aid:theader][1]"/>
            <!-- i.e. colHead-->
        </xsl:param>
    <!-- parameter to use the name of element with attribute aid:cell but not aid:theader as the td  output -->
    <!--i.e. tabletext or whatever the name of your Cell level  element is in InDesign -->
        <xsl:param name="cellStyle">
            <xsl:value-of select="//*[local-name()][@aid:table='cell' and not(@aid:theader)][1]"/>
        </xsl:param>
        <!-- handles a Story element marked up with HTML-type elements, but uses the <Table> element of IDD  -->
        <!-- if a true HTML table is in the content, it will be passed through -->
        <xsl:template match="Story"><!-- make a basic HTML file from a Story -->
            <html>
                <head>
                    <title>Sample Table</title>
                </head>
                <body>
                    <xsl:apply-templates><!-- will handle direct text of the  <Story>, and <Table> -->
                        <xsl:with-param name="colheadStyle" select="$colheadStyle"/>
                        <xsl:with-param name="cellStyle" select="$cellStyle"/>
                    </xsl:apply-templates>  
                </body>
            </html>
        </xsl:template>
       <!-- use the styles to find the elements of IDD <Table> element -->
        <xsl:template match="Table">
            <xsl:param name="colheadStyle">
                <xsl:value-of select="$colheadStyle"/>
            </xsl:param>
            <xsl:param name="cellStyle">
                <xsl:value-of select="$cellStyle"/>
            </xsl:param>
            <xsl:variable name="cellsPerRow">
                <xsl:value-of select="@aid:tcols"/>
            </xsl:variable>
            <table><!-- start the table -->
                <!-- xhtml requires lower-case name for table element-->
                <tr>
                    <xsl:apply-templates select="*[@aid:theader='']">
                        <xsl:with-param name="colheadStyle" select="$colheadStyle"/>
                        <xsl:with-param name="cellStyle" select="$cellStyle"/>
                    </xsl:apply-templates>
                </tr>
                <!--  and @aid:style=$cellStyle -->
                <xsl:for-each
                    select="*[@aid:table='cell'][not(@aid:theader='')][position() mod $cellsPerRow = 1]">
    <!-- some code adapted with  permission, from http://www.computorcompanion.com/LPMArticle.asp?ID=202
    Building HTML Tables with XSL by James Byrd; please include this acknowledgement in all files that use his code -->
    <!-- this is the tricky bit of the code that James Byrd set up
    p-class-tabletext-[position() mod $cellsPerRow = 1 continues looping until the position of the active element divided by $cellperRow (@aid:tcols value) tried with [@aid:style=$cellStyle] has a remainder of 1 -->
    <!--  .|following-sibling::p-class-tabletext-[position() &lt;  $cellsPerRow] applies first to the currently selects cell with "." then continues with the following-siblings whose position is less than  the value of cells per row (@aid:tcols value) -->
                    <tr>
                        <xsl:apply-templates
                            select=".|following-sibling::*[@aid:table='cell'][not(@aid:theader='')][position() &lt; $cellsPerRow]"
                        />
                    </tr>
                </xsl:for-each>
            </table>
        </xsl:template>
        <xsl:template match="*">
            <xsl:param name="colheadStyle">
                <xsl:value-of select="$colheadStyle"/>
            </xsl:param>
            <xsl:param name="cellStyle">
                <xsl:value-of select="$cellStyle"/>
            </xsl:param>
            <xsl:variable name="cellsPerRow">
                <xsl:value-of select="parent::Table/@aid:tcols"/>
            </xsl:variable>
            <xsl:choose>
                <!-- colHead aid:table="cell" aid:theader=""-->
                <xsl:when test="parent::Table and @aid:theader">
                    <th>
                        <xsl:apply-templates>
                            <xsl:with-param name="colheadStyle" select="$colheadStyle"/>
                            <xsl:with-param name="cellStyle" select="$cellStyle"/>
                        </xsl:apply-templates>
                    </th>
                    <xsl:if test="(position() = last()) and (position() &lt; $cellsPerRow)">
                        <xsl:call-template name="FillerCells">
                            <xsl:with-param name="cellCount" select="$cellsPerRow - position()"/>
                        </xsl:call-template>
                    </xsl:if>
                </xsl:when>
                <xsl:when test="parent::Table and @aid:table='cell' and not(@aid:theader)">
                    <td>
                        <xsl:apply-templates>
                            <xsl:with-param name="colheadStyle" select="$colheadStyle"/>
                            <xsl:with-param name="cellStyle" select="$cellStyle"/>
                        </xsl:apply-templates>
                    </td>
                    <xsl:if test="(position() = last()) and (position() &lt; $cellsPerRow)">
                        <xsl:call-template name="FillerCells">
                            <xsl:with-param name="cellCount" select="$cellsPerRow - position()"/>
                        </xsl:call-template>
                    </xsl:if>
                </xsl:when>
    <!-- for non-table elements this generic element handler will  pick up an aid:pstyle (if present) and create a class attribute from it. Works for any element that has the same name as HTML element such as <p> but it doesn't add wrapper elements like <ul> or <ol> for lists. -->
                <xsl:otherwise>
                    <xsl:element name="{name()}">
                        <xsl:if test="@aid:pstyle">
                            <xsl:attribute name="class">
                                <xsl:value-of select="@aid:ptyle"/>
                            </xsl:attribute>
                        </xsl:if>
                        <xsl:apply-templates>
                            <xsl:with-param name="colheadStyle" select="$colheadStyle"/>
                            <xsl:with-param name="cellStyle" select="$cellStyle"/>
                        </xsl:apply-templates>
                    </xsl:element>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:template>
        <!-- take care of text that is a direct child of the <Story> by wrapping it in a <p> to make valid HTML -->
        <xsl:template match="text()">
            <xsl:variable name="myString">
                <xsl:value-of select="string-length(normalize-space(.))"/>
            </xsl:variable>
            <xsl:choose>
                <xsl:when test="parent::Story">
                    <xsl:if test="$myString > 0">
                        <xsl:element name="p">
                            <xsl:attribute name="class">text</xsl:attribute>
                            <xsl:value-of select="normalize-space(.)"/>
                        </xsl:element>
                    </xsl:if>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="normalize-space(.)"/>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:template>
       <!-- make br element conform to good HTML markup -->
        <xsl:template match="br">
            <br />
        </xsl:template>
        <!-- this recursive template calls itself until its test condition is satified -->
        <!-- it outputs a cell whose only content is a non-breaking space -->
        <!-- do not use   in place of Unicode &#160; for the non-breaking space -->
        <!-- the value of $cellCount is set in the main XSL template -->
        <xsl:template name="FillerCells">
            <xsl:param name="cellCount"/>
            <td>&#160;</td>
            <xsl:if test="$cellCount > 1">
                <xsl:call-template name="FillerCells">
                    <xsl:with-param name="cellCount" select="$cellCount - 1"/>
                </xsl:call-template>
            </xsl:if>
        </xsl:template>
    </xsl:stylesheet>
    Message was edited by: HoneoyeFalls
    Sample XML file exported from IDD
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Story><Table xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/" xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="2" aid:tcols="2"><colHead aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="1" aid:ccolwidth="44">1 colHead</colHead><colHead aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="1" aid:ccolwidth="56">2 colHead</colHead><tabletext aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="44">1 tabletext</tabletext><tabletext aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="56">2 tabletext</tabletext><tabletext aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="44">row 2 1 tabletext</tabletext><tabletext aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="56">row 2 2 tabletext</tabletext></Table>
    <table><tr><th>normal HTML table heading</th></tr>
    <tr><td>normal HTML table<br/>cell text</td></tr></table></Story>

    You can use RECORD type declaration:
    SQL> declare
      2   type rec_type is record (
      3    ename emp.ename%type,
      4    sal emp.sal%type
      5   );
      6   type rc is ref cursor return rec_type;
      7   rc1 rc;
      8   rec1 rec_type;
      9  begin
    10   open rc1 for select ename, sal from emp;
    11   loop
    12    fetch rc1 into rec1;
    13    exit when rc1%notfound;
    14    dbms_output.put_line(rec1.ename || ' ' || rec1.sal);
    15   end loop;
    16   close rc1;
    17  end;
    18  /
    SMITH 800
    ALLEN 1600
    WARD 1250
    JONES 2975
    MARTIN 1250
    BLAKE 2850
    CLARK 2450
    SCOTT 3000
    KING 5000
    TURNER 1500
    ADAMS 1100
    JAMES 950
    FORD 3000
    MILLER 1300or use, for example, VIEW to declare rowtype:
    SQL> create view dummy_view as select ename, sal from emp;
    View created.
    SQL> declare
      2   type rc is ref cursor return dummy_view%rowtype;
      3   rc1 rc;
      4   rec1 dummy_view%rowtype;
      5  begin
      6   open rc1 for select ename, sal from emp;
      7   loop
      8    fetch rc1 into rec1;
      9    exit when rc1%notfound;
    10    dbms_output.put_line(rec1.ename || ' ' || rec1.sal);
    11   end loop;
    12   close rc1;
    13  end;
    14  /
    SMITH 800
    ALLEN 1600
    WARD 1250
    JONES 2975
    MARTIN 1250
    BLAKE 2850
    CLARK 2450
    SCOTT 3000
    KING 5000
    TURNER 1500
    ADAMS 1100
    JAMES 950
    FORD 3000
    MILLER 1300 Rgds.

  • Lower case tag names in XSQL query

    XSQL queries appear to default all column tag names to upper case, even when you specifically use lower case characters. Is there any way to get them into lower case?
    For example,
    <?xml version="1.0"?>
    <test connection="devel" xmlns:xsql="urn:oracle-xsql">
    <xsql:query rowset-element="" row-element="" null-indicator="yes">
    select 'hello' as hi from dual
    </xsql:query>
    </test>
    Results in,
    <?xml version="1.0" ?>
    <test>
    <HI>hello</HI>
    </test>
    I would really like to get <HI> to <hi>...
    thanks.

    You can also preserve case by putting quotes around the column alias:
    For example,
    <?xml version="1.0"?>
    <test connection="devel" xmlns:xsql="urn:oracle-xsql">
    <xsql:query rowset-element="" row-element="" null-indicator="yes">
    select 'hello' as "hi"
    , 'Hello' as "Hi"
    , 'HELLO' as "HI"
    from dual
    </xsql:query>
    </test>
    This way you can also get mixed case.

  • Maps: How to generate a single node from multiple nodes

    Hi,
    I have a problem while mapping. I have a large complex input schema through which I generate a flat file output. I have used map for creating the output. Below is the
    output and expected output.
    Output:
    E,651,120,3999,2013-12-01,2013-12-25,25,556,0.00,0
    E,652,120,3901,2013-12-01,2013-12-27,27,6176.25,0.00,0
    SR,17,120,2013-12-25,2022,122013,2,6732.25,1,01389399501
    SR,17,120,2013-12-27,2022,122013,2,6732.25,1,01389399501
    Expected Output:
    E,651,120,3999,2013-12-01,2013-12-25,25,556,0.00,0
    E,652,120,3901,2013-12-01,2013-12-27,27,6176.25,0.00,0
    SR,17,120,2013-12-27,2022,122013,2,6732.25,1,01389399501
    There should always be one SR node. The node which should be present should be the one which has maximum DATE. While mapping how can I check before hand that there will be more DATE values coming and then map only latest. It’s a complex mapping so I’m looking
    for a simple solution.
    I want some conditions like while generating output SR Node, if there will be various SCR nodes in output then select the node with maximum date value in insert that in output.
    Thanks.

    Thanks for the detailed response Aswin. It's very helpful. Please help in one more condition, sometimes there could be multiple SR with same Date. In that case SR is still repeating as all are equal so above maximun logic is creating n nodes. Eg:
    Output:
    E,651,120,3999,2013-12-01,2013-12-25,25,556,0.00,0
    E,652,120,3901,2013-12-01,2013-12-27,27,6176.25,0.00,0
    SR,218,504420120,2013-10-04,0451,102013,1,393.85,AD,501
    SR,218,504420120,2013-10-04,0451,102013,1,393.85,AD,501
    Expected Op:
    E,651,120,3999,2013-12-01,2013-12-25,25,556,0.00,0
    E,652,120,3901,2013-12-01,2013-12-27,27,6176.25,0.00,0
    SR,218,504420120,2013-10-04,0451,102013,1,393.85,AD,501
    So, if there are maximum in that cas select max, which is working now and if they are same then any one of those.

  • Interactive Report Download - filenames always in lower case

    I've written an interactive report in Apex v4.0.2 and have set the CSV download option to use a filename of "One_Two_Three" (note the capitalization).
    However when the CSV file is generated, the filename is "one_two_three" - all in lower case. I've tried using substitution variables in the filename and this doesn't make any difference.
    Is there a way to stop conversion to lowercase ? Is it possible to intercept or override something to allow even greater control the filename ?
    thanks
    Andy

    Well, found some answers after some more trial and error.
    1.) Country settings messed up my csv format. After changing the default column separator in the report attributes, things now look as expected.
    2.) One can rather easily suppress the format signs by using the sql replace functionality, e.g.
    SELECT REPLACE (my_column, CHR(10),' ') FROM my_table
    And it is actually quite a difference if you use text area or rich text fields when it comes to the usage of the breaks.
    Cheers,
    Martin

  • TopLink map a field which name in low case

    I used Oracle ADF to modeling my database table. My table name and all filed names are in low cases. I used TopLink Create Java Objects from Tables wizard to crate Java objects from my table, and created map. In the TopLink mapping, the query keys are in low cases. But when my session bean execute the named query, the query statement from executeQuery doesn't put double quotes around the filed name and table name. The query statement like: select name from space. So it will cause error like "java.sql.SQLException: ORA-00942: table or view does not exist". The query statement should like:
    select "name" from "space";
    Can anyone tell me where to edit the mapping or customize code to put double quotes around field name and table name?

    I'm not sure if the JDev UI has an option to output table and field names with quotes. You could use a SessionCustomizer in your TopLink sessions.xml file to iterate over the Session's descriptors and change each of their table and field names to include the " character.
    In general you will make you life much easier if you just create the tables and field using normal upper case or case insensitive names.
    It would be nice to have an easier way to quote all table and field names, please feel free to log this issues on EclipseLink Bugzilla.
    James : http://www.eclipselink.org

  • Source file containing lower case characters

    Hi,
    My source file contains lower case characters.
    I've already check the tickbox for lower case characters
    for the corresponding infoobject.
    But still getting the same error while loading.
    Anyone pls. tell me what am I missing.
    Regards
    Tarun
    Message was edited by:
            Tarun Sharma
    Message was edited by:
            Tarun Sharma

    To permit lower case you need to have it enabled in infoobject and also use ALL_CAPITAL in rskc . After changing the infoobject you should activate the transfer / update rules and also the data target i.e. the either infoobject / ods / infocube as the case may be as the lower case check is there in generated programs for data load which need to be adjusted.
    Regards.
    Sanjay

  • How to Force JHS do not generate navigation cases for Groups?

    Hello
    I have already seen "Overwrite faces-config and navigation rules " property for Group in JhsApp deff .But It does not work .How Force JHS do not generate navigation cases for Groups? and another question is that how can I customize navigation case generation in JheadStart?
    Thanks

    Hi,
    You are right: the navigation rules in the main faces-config file are overwritten, even if you uncheck these flags. Here is the solution:
    If you want to preserve some of the navigation rules in the main faces config: alter the velocity template for faces-config. You can only switch off the entire generation of faces-config.xml; not individual parts.
    If you want to add a special navigation rule: add it to the group faces config file.
    If you want to preserve post-generation changes to the group faces config file: uncheck 'generate controller group?' or put it in the templates for that group.
    Note: the flag 'Overwrite Faces-Config beans and Navigation Rules?' has become obsolete, you should only use 'Generate Controller Group?'.
    Regards,
    Evert-Jan de Bruin
    JHeadstart Team

  • How to read the content in one node of XML in Java? Pls help

    My dear brothers,
    I am a newbie of XML, I have a exercise which is creating a Tree View from XML file. But the trouble is I do not know how to read the content in one node of XML file. I decide to use the algorithm as following:
    1. Create a GUI form which gives the ability for user to choose a XML file (ok)
    2. Load XML and return the file (ok)
    3. Read the file from node to node to create the node in Tree View (?!)
    Please help me, and if you are enough kind, please give me an small example to easy understand. Thanks in advance.
    Hoang Yen Binh

    I hope this one helps you.
         <ABC Type="ProductBased" ProdName="One" Location="India">
              <CEO>Raj</CEO>
              <Finance>Vikram</Finance>
              <HR>Karthik</HR>
              <Technical>Satish</Technical>
         </ABC>
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NamedNodeMap;
    import org.w3c.dom.Attr;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Node;
    import org.w3c.dom.DOMException;
    import javax.xml.parsers.ParserConfigurationException;
    import org.xml.sax.SAXException;
    import java.io.File;
    import java.io.IOException;
    public class XmlReading {
         Document doc;
         Element element;
         public static void main(String[] args) throws Exception{
              XmlReading xr = new XmlReading();
              xr.getXmlParser(args);
         public void getXmlParser(String[] args) {
              DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                   if(args.length != 1) {
                        System.err.println("Argument Required");
              try {
                   DocumentBuilder builder = factory.newDocumentBuilder();
                   doc = builder.parse(new File(args[0]));
              }catch(ParserConfigurationException e1) {
              }catch(SAXException e2) {
              }catch(IOException e3) {
              getAttributes();
         public void getAttributes() {
              // Retrive the entire Document from the Dom Tree
              element = doc.getDocumentElement();
    //          System.out.println(element);
              NamedNodeMap attrs = element.getAttributes();
              // Get number of attributes in the element
         int numAttrs = attrs.getLength();
         // Process each attribute
              for (int i=0; i<numAttrs; i++) {
                   Node node = attrs.item(i);
                   // Get attribute name and value
                   String attrName = node.getNodeName();
                   String attrValue = node.getNodeValue();
                   System.out.println(attrName + ": " + attrValue);
              String s1 = element.getTagName();
              System.out.println(s1);
              // To get all the elements in a DOM Tree
              NodeList nl1 = element.getElementsByTagName("*");
              int i2 = nl1.getLength();
              System.out.println(i2);
              for(int i=0; i<i2; i++) {
                   System.out.println(nl1.item(i) + "\n");
    }

Maybe you are looking for

  • Need some help about i18n on Redhat 71. with Oracle 8.1.7

    Initally I used Redhat 7.0 with Oracle 8.1.7, everything had worked find until I upgrade my system to Redhat 7.1. I have no idea about Redhat locate setting. Well, I use NLS_LANG=TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5 to inital database . some characte

  • How to get screen to rotate?

    How to get screen to rotate on home screen when iPad can? To hard to program? Shouldn't all apps and programs have this ability?

  • ABAP Central Service not available alert in Technical Monitoring

    Hi Gurus, Need help with this alert which i am getting from Solman 7.1 SP10. ABAP Message Server Status XXX-ABAP 3 3 3 No process found for: msg_server(.*) I have already checked following notes but no luck 1419603 - Missing ABAP SAP Central Services

  • Email Server Behind WRV210

    We just purchased and setup the WRV210 VPN router, but we are having a major issue with it. We are running a mail server behind the VPN router, but we can no longer connect to it through Outlook. We forwarded all of the appropriate ports but still ca

  • So far, so bad

    So far my Leopard install has been pretty dismal. I clicked on the archive install but it did a regular install over 10.4.10. While installing, it erased my iCal calendars. When I reinstall them, it loses all my data whenever I quit iCal. Anyone out