Mixed Case tags in XML

Is it possible to return mixed case tag names in the XML from Oracle? We are using mixed case column and table names in our database and have a requirement to produce the XML output in mixed case too.

What kind of mixed case you want? Currently it works for me.
Here is how to create a table with column name to be case-sensitive:
drop table jinyu_test;
create table jinyu_test
"Jinyu" number,
"ContentManage" varchar2(400)
insert into jinyu_test values(1,'Try this 01');
insert into jinyu_test values(2,'Try this 02');
Here is the result we get using DBMS_XMLQuery:
| <?xml version = '1.0'?>
| <ROWSET>
| <ROW num="1">
| <Jinyu>1</Jinyu>
| <ContentManage>Try this 01</ContentManage>
| </ROW>
| <ROW num="2">
| <Jinyu>2</Jinyu>
| <ContentManage>Try this 02</ContentManage>
| </ROW>
| </ROWSET>
You can see the tag corresponding to the column name is case-sensitive.

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.

  • How to make the tags in XML file case insensitive

    Hi,
    I have a ReadXML class which reads an xml file. This class also has a method which receives a string-child from another class and uses this string-chile to match it with the child tag in the xml file, and returns the child tag's value.
    Now, my problem is this, the child tag in xml may be in a case different from the case of the string-child received from another class.
    How do I modify it, so the program does not return a null pointer exception because the strings did not match for want of uppercase or lowercase letters.
    Thanks
    Sangeetha

    I'm not sure what you are getting at. Is a string child the contents of a node treated as text?
    If you are trying to match a child node regardless of case I doubt this is possible as the XML standard says an XML document is case sensitive so if your parser ignored case it would not be XML complient.
    Hope this helps.

  • 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.

  • How can we get  tag of XML file using SAX

    Hi ,
    I'm parsing one SAX parser , I'have almost done this parsing. i have faced problem for one case, i'e how can we get tag from XML file using SAX parser?
    XML file is
    <DFProperties>
    <AccessType>
    <Get/>
    </AccessType> <Description>
    gdhhd
    </Description>
    <DFFormat>
    <chr/>
    </DFFormat>
    <Scope>
    <Permanent/>
    </Scope>
    <DFTitle>gsgd</DFTitle>
    <DFType>
    <MIME>text/plain</MIME>
    </DFType>
    </DFProperties>
    I want out like GET and Permanent... means this one tag which is present inside of another tag.
    Handler class like
    public void startElement(String namespaceURI, String localName,
                   String qName, Attributes atts) throws SAXException {
    if(_ACCESSTYPE.equals(localName)){
                   accessTypeElement=ACCESSTYPE;
    public void characters(char[] ch, int start, int length)
                   throws SAXException {
    if (_ACCESSTYPE.equals(_accessTypeElement)) {
                   String strValue = new String(ch, start, length);
                   System.out.println("Accestype-----------------------------> " + strValue);
                   //System.out.println(" " + strValue);
    public void endElement(String namespaceURI, String localName, String qName)
                   throws SAXException {
    if (_ACCESSTYPE.equals(localName)) {
                   _accessTypeElement = "";
    . please any body help me

    Hi ,
    I have one problem,Please help me.
    1. How can I'll identify where exactly my Node is ended,means how how can we find corresponding nodename? in partcular place
    <Node> .............starttag1
    <NodeName>Test</NodeName>
    <Node>................starttag2
    <nodeName>test1</NodeName>
    </Node>..................endtag2
    <Node>.....................starttag3
    <NodeName><NodeName>
    <Node> .........................starttag4
    <NodeName>test4</NodeName>
    </Node>.......enddtag4
    </Node>...........end tag3
    </Node>............endtag1
    my code is below
    private final String _NODENAME = "NodeName";
    private final String _NODE = "Node";
    private String _nodeElement = "";
         private String _NodeNameElement = "";
    public void startElement(String namespaceURI, String localName,
                   String qName, Attributes atts) throws SAXException {
    if (_NODENAME.equals(localName)) {
                   NodeNameElement = NODENAME;
    if(_NODE.equals(localName)){
         System.out.println("start");
         if (_NODENAME.equals(localName)) {
                   NodeNameElement = NODENAME;
    public void characters(char[] ch, int start, int length)
                   throws SAXException {
    if (_NODENAME.equals(_NodeNameElement)) {
                   String strValue = new String(ch, start, length);
                   String sttt=strValue;
                   System.out.println("NODENAME: ************* " + strValue);
    if(_NODE.equals(_nodeElement)){
                   if (_NODENAME.equals(_NodeNameElement)) {
                        String strValue = new String(ch, start, length);
                        String sttt=strValue;
                        System.out.println("nodevalue********** " + strValue);
    public void endElement(String namespaceURI, String localName, String qName)
                   throws SAXException {
    if (_NODENAME.equals(localName)) {
                   _NodeNameElement = "";
    if(_NODE.equals(localName)){
                   System.out.println("NODENAME: %%%%%%%%%");
    please help me. How can I figure node ending for particular nodename

  • No Namespace tag in XML file

    Hi
    I wish to read an XML file coming from another system and then update my data base using RFC.
    The problem is that the incoming file does not contain a namespace tag which XI understands
    (For e.g. <ns:UpdateTablexmlns:ns="urn:BuisScenario:TEST">)
    Due to which it is not reading the data contained in the file.
    If I use the XML file which is generated through XI then it is working fine as it contains the relevant namespace.
    But as my XML file is coming from a different system and is not generated by XI, I wish to know how can we add the namespace tag to it so that XI can understand the file. Or is there any other way in which the file can be read.
    Has anybody face similar problem?
    Hoping for a quick response.
    Regards
    Satish

    Hi Stephan
    The problem of namespace is solved now, what I did was, I followed your suggestion and I have left the field for XML Namespace in the message type empty and the scenario works. Now I am facing another problem.
    My incoming XML file looks like as given below:
        <Case_Details>
         <Case1>                          <Case_EPC>1232312313313</Case_EPC>               <Item_ID>PR001</Item_ID>                    <Quantity>50</Quantity>                    </Case1>
         <Case2>                         <Case_EPC>1232312313314</Case_EPC>               <Item_ID>PR002</Item_ID>                    <Quantity>200</Quantity>                    </Case2>
         <Case3>                         <Case_EPC>1232312313315</Case_EPC>               <Item_ID>PR003</Item_ID>                    <Quantity>520</Quantity>
         </Case3>
       </Case_Details>
    The problem is when I duplicate the cases while testing the message mapping I do not get the desired result as the tag names are different. The mapping which I have done does not cater for Case1, Case2, Case3 coming in the incoming XML file, Instead of this only case tag comes without the numbering(1,2,3) due to which my fields are not getting populated.
    The sample XML generated from my mapping is given below.
      <Case_Details>
            <Case>                          <Case_EPC>1232312313313</Case_EPC>               <Item_ID>PR001</Item_ID>                    <Quantity>50</Quantity>                    </Case>
         <Case>                         <Case_EPC>1232312313314</Case_EPC>               <Item_ID>PR002</Item_ID>                    <Quantity>200</Quantity>                    </Case>
         <Case>                         <Case_EPC>1232312313315</Case_EPC>               <Item_ID>PR003</Item_ID>                    <Quantity>520</Quantity>
         </Case>
        </Case_Details>
    So in this scenario the different cases do not have numbering and thus the mapping fails when the original XML file is the input.
    Kindly advice what is to be done.
    Regards
    Satish

  • Changing data in XML variable and appending tags in XML  document

    Hi all,
    I am new to weblogic Integrator . can any one help me concerning following problem
    1. I get input XML message to my workflow which I stores in XML variable. after
    some processing i want to change value of one tag in XML stored in XML variable.
    How I can do thaat ?
    2. I have some XML like
    <root>
    <child>
    <a> </A>
    </child>
    <child>
    </child>
    </root>
    and i want to append multiple such tag at run time . how i can do the same
    in wli
    Please let me know your suggestion
    Kiran

    For both cases I suggest you use XSLT.
    Mike
    "Kiran" <[email protected]> wrote in message
    news:3c720cd2$[email protected]..
    >
    Hi all,
    I am new to weblogic Integrator . can any one help me concerning followingproblem
    1. I get input XML message to my workflow which I stores in XML variable.after
    some processing i want to change value of one tag in XML stored in XMLvariable.
    How I can do thaat ?
    2. I have some XML like
    <root>
    <child>
    <a> </A>
    </child>
    <child>
    </child>
    </root>
    and i want to append multiple such tag at run time . how i can do thesame
    in wli
    Please let me know your suggestion
    Kiran

  • Mixed case parsing using DBMS_XMLquery

    I have created a view using mixed case column names. However, when I use DBMS_XMLquery to pass the select "column_name" from table_name, it does not parse and does not work. However it works fine with passing 'select * from table_name'. Any idea how a mixed case column can be passed to dbms_xmlquery? Or any idea how a mixed case column name is passed in dynamic sql queries.

    I found the problem. It was not with mixed case column names. Rather it was because of the NULL value returns from the sql query which the java procedure for transforming sql was not able to trap and throwing out exception.
    However, still it is quite funny. If I use all the columns in the query or do select * , I get back the generated XML. If I just select a few columns, I get the error message
    ORA-29532: Java call terminated by uncaught java exception (java.lang.NullPointerException
    ORA-06512: at "SYS.DBMS_XMLQUERY" line 206
    Any idea
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Jinyu Wang ([email protected]):
    Would you send the test case you are using for reproducing the problem?<HR></BLOCKQUOTE>
    null

  • Count of tags in XML

    Hello all,
    For the below XML, Here the tag <Case> arises 3 times. Is there any XML function type that can retrieve the number of time a particular case is present?
    <Notes >
    <FromPartnerID>12312/FromPartnerID>
    <ToPartnerID>1231234<ToPartnerID>
    <Operation>Add_Note</Operation>
    <Case>
    <CaseDetail>asdas</CaseDetail>
    <CaseNo>123123</CaseNo>
    </Case>
    <Case>
    <CaseDetail>asdas</CaseDetail>
    <CaseNo>123123</CaseNo>
    </Case>
    <Case>
    <CaseDetail>asdas</CaseDetail>
    <CaseNo>123123</CaseNo>
    </Case>
    <Notes>
    Thanks,
    VJ

    Hi Michael,
    Your (despite being neat again) example errors out here on my 10gXE.
    My guess: you're on an 11g database?
    Is there any '10g XMichaeL-magic' possible?
    SQL> with t as
      2  (select xmltype('<Notes >
      3  <FromPartnerID>12312</FromPartnerID>
      4  <ToPartnerID>1231234</ToPartnerID>
      5  <Operation>Add_Note</Operation>
      6  <Case>
      7  <CaseDetail>asdas</CaseDetail>
      8  <CaseNo>123123</CaseNo>
      9  </Case>
    10  <Case>
    11  <CaseDetail>asdas</CaseDetail>
    12  <CaseNo>123123</CaseNo>
    13  </Case>
    14  <Case>
    15  <CaseDetail>asdas</CaseDetail>
    16  <CaseNo>123123</CaseNo>
    17  </Case>
    18  </Notes>') xml
    19  from  dual
    20  )
    21  --
    22  --
    23  select to_number(column_value) cnt_cases
    24  from   t t
    25  ,      xmltable('count(//Case)' passing t.xml);
    with t as
    ERROR at line 1:
    ORA-19114: error during parsing the XQuery expression:
    ORA-06550: line 1, column 13:
    PLS-00201: identifier 'SYS.DBMS_XQUERYINT' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production

  • Mapviewer 10.1.3.3 & 11g Database (Mixed Case Passwords)

    We have an 11g Database that enforces the use of Mixed Case passwords via a Database policy applied to individual schemas. On our 10.1.3 Application server we have deployed the 10.1.3.3 Mapviewer ear and are having issue configuring the JDBC connections.
    It appears that when you enter your Password in the XML config file using "!myPassword" this gets hashed but any case sensitive values are ignored meaning the connection fails when trying to establish a connection to the database i.e. the database is expecting "myPassword" and Mapviewer hands of "mypassword".
    The only way around this is to use a lower case password at the database level so that Mapviewer can connect.
    Is this a know issue and if so, are there any plans to use a Case Sensitive hashing algorithith in a future version of MapViewer?
    Regards
    Duncan

    Is this the latest MapViewer kit (10.1.3.3, WebLogic certified)?
    One work around is to use container data source, assuming the container (Oracle AS) can handle case sensitive database passwords.
    LJ

  • How to Include html tag in xml

    Hi,
    Is there any way to include html tags in xml?
    For Example, I'm using xsl to get the value of FIELD_1 from fetch.xml
    In fetch.xml, I have the tag
    <FIELD_1>
    <font color='#8080ff'>&#160;<font face='Times New Roman, Times' size='28'>Testing font and color</font></font>
    </FIELD_1>
    But If I tried to read the value from xsl like <xsl:value-of select="FIELD_1"/> I'm just gettig the display 'Testing font and color' without the specified font and color....
    How to achieve this?
    Thanks
    Selva.

    Hi,
    Thanks for the input.
    I tried with the below code
    <fo:block space-after="5mm" font-family="Arial"><xsl:copy-of select="FIELD_1"/></fo:block>
    But I'm getting the below error...
    "An invalid XML character (Unicode: 0xa0) was found in the element content of the document."
    Below is the code included in the xsl....
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="Values"><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
    <fo:simple-page-master master-name="simpleA4" page-height="29.7cm" page-width="21cm" margin-top="3cm" margin-bottom="2cm" margin-left="2cm" margin-right="2cm">
    <fo:region-body/>
    </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="simpleA4">
    <fo:flow flow-name="xsl-region-body">
    <fo:block space-after="5mm" font-family="Arial"><xsl:copy-of select="FIELD_1"/></fo:block>
    </fo:flow> </fo:page-sequence> </fo:root> </xsl:template></xsl:stylesheet>
    Is there any mistakes in the above code?
    Regards,
    Selva.

  • Remove XML tags from XML element in Oracle

    Hi,
    I have a requirement where I have to remove all the xml tags from xml element with banks, currently I'm using replace 4 times to replace all different types of xml tags, performance is really bad. is there any better option to remove xml tags from xml data leaving the actual data. please find the example data below.
    select
    TO_CLOB(REPLACE(REPLACE(REPLACE(REPLACE
    ('<Concatcolumn><ConcatGroupID>MyText Data goes here </ConcatGroupID><ConcatGroupID>Data agian</ConcatGroupID></Concatcolumn>','<ConcatGroupID>'),'<Concatcolumn>'),'</ConcatGroupID>',';'),';</Concatcolumn>')) AS Concatcolumn
    from dual
    **************Out put*************
    MyText Data goes here ;Data agian

    One way is to use xquery:
    SQL> with t as
    select xmltype('<Concatcolumn>
                          <ConcatGroupID>MyText Data goes here </ConcatGroupID><ConcatGroupID>Data agian</ConcatGroupID></Concatcolumn>'
       ) xml from dual
    select xmlquery('string-join(//text(), ";")' passing xml returning content).getclobval() xml from t
    XML                                                              
    MyText Data goes here ;Data agian                                
    1 row selected.

  • Convert data in table to mix case

    Hi All,
    I have a table that contains data.
    This table has to columns, an id and description.
    I would like to update my table to convert data to mix case.
    As of now, all of my data in the table are lower case.
    What I mean by mix case is first letter for each word is uppercase and the rest are lower case.
    is there a function i can use ?
    example:
    Amended/Resentence, Type UnknownThanks

    You can use the INITCAP function.
    update table
    set description = INITCAP(description);Example:
    create table test (description varchar(50));
    Table created
    insert into test values ('amended/resentence, type unknown');
    1 row inserted
    select * from test;
    DESCRIPTION
    amended/resentence, type unknown
    update test set description = initcap(description);
    1 row updated
    select * from test;
    DESCRIPTION
    Amended/Resentence, Type Unknown

  • How to preserve mixed case in Data Dictionary

    Hi,
    I am very new to Oracle, please excuse in advance for silly questions.
    Using Oracle 9i R2, SQL Developer 1.51.5440.
    I don't know if it's Oracle DB or The SQL Developer tool, but the names of the object I create are all transformed in uppercase. Table name, column names, procedure names all are displayed in uppercase. And yet I make sure when I created them to use carefully mixed case to improve readability. Example: ProductID, MyTable, etc.
    I've gone over the options of SQL Developer, but I didn't see any option to turn off the automatic uppercase. Some objects still remains in mixed case, for example the content of a procedure still looks like when I typed it.
    Is there a way to get the object names to be displayed exactly as I created them?
    Thanks in advance.

    Ok, now I see, make senses that everybody keeps using uppercase. I have tried this:
    CREATE TABLE "MyTable" ("Col1" number not null, "Col2" varchar2(20) not null)
    And indeed, even SELECT * FROM MyTable would not work, I have to reference the table by SELECT * FROM "MyTable"
    FYI, in SQL Server, object names are case-insensitive. The name saved in the data dictionary is exactly how you type them. In the queries, constraints, indexes, etc., you can reference to the object name by any case. I find this way more convenient.
    One more question, in the current schema I am working on, where all object names are uppercase. How come I can still make a query with any case?
    For example if I type in SQL Developer: SELECT ProdUCTID, PrOduCTNaMe FROM T_proDuCT ;
    The query executes OK although I'd expect Oracle would complain about table not found. So are the following rules correct?
    1. If the object name was saved with double quote, Oracle will preserve the case and the object should always be referenced WITH double quote and the exact case.
    2. If the object name was save without double quote, Oracle will uppercase the name and the object can be reference by any case.

  • How use forEach tag in xml tag library

    Hi,
    Can u please explain the procedure for using forEach tag for displaying the parsed xml tags?
    This is the code snippet
    <%@ page contentType="text/html" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
    <html>
    <body>
         <c:import url="\books.xml" var="url" />
         <x:parse xml="${url}" var="doc" />
              <x:forEach var="n" select="${doc}/books/book">
                   <x:out select="${n}/title"/>
                   <x:out select="${n}/author" />
         </x:forEach>
    </body>
    </html>
    but I got the fallowing error.
    java.lang.NoClassDefFoundError: org/saxpath/SAXPathException
         at org.apache.taglibs.standard.tag.common.xml.ForEachTag.prepare(ForEachTag.java:51)
         at javax.servlet.jsp.jstl.core.LoopTagSupport.doStartTag(LoopTagSupport.java:262)
         at jsp_servlet.__index._jspService(__index.java:197)
         at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

    Just the same way as you do in JSP. Since JSF 1.2 you can use unified EL #{ } in c:forEach.
    You can also use Tomahawk's [t:dataList|http://myfaces.apache.org/tomahawk-project/tomahawk12/tagdoc/t_dataList.html] by the way. It is more efficient.

Maybe you are looking for