Recursive (XML) Object Question

Hi,
I am new to Oracle and I have what
seems like a naive question. I want
to define a recursive Object structure
to model XML elements. This is my first
attempt:
CREATE OR REPLACE TYPE OBJ_XML_NODE AS OBJECT (
TYPE NUMBER(3),
NAME VARCHAR2(40),
CONTENT VARCHAR2(32000),
ATTLIST VARRAY(32000) OF REF OBJ_XML_NODE,
CHILDREN VARRAY(32000) OF REF OBJ_XML_NODE)
SHOW ERRORS
I then tried to use:
CREATE OR REPLACE TYPE COL_VARRAY_REF AS VARRAY(32000) OF REF OBJ_XML_NODE
SHOW ERRORS
but found myself with a chicked and
egg situation: I need to defien OBJ_XML_NODE
before I can define COL_VARRAY_REF, but I
need to define COL_VARRAY_REF before I can
define OBJ_XML_NODE.
I tried redefining OBJ_XML_NODE but
that did not work.
Really I do not want an Object at all;
what I want is a TABLE with 'children' as a
VARRAY of ROWIDs but I cannot do this either.
I am sure there are several million
Oracle experts who could do this in their
sleep; if one answered I would be eternally
grateful.
P.S. I did this sort of thing (for
SGML) many years ago with UniSQL (a now
defunct OR database).
TIA,
Aidan

Thanks,
I'll try a different approach.
</>Aidan
<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Oracle XML Team:
You are running up against a current limitation that prevents COLLECTIONS of COLLECTIONS in 8i Objects.
The current workaround is to use multiple objects and use an XSL Stylesheet to assemble the doc on output which can be applied within the database using our XMLParser/XSL Processor and the Oracle 8iJVM.
Oracle XML Team<HR></BLOCKQUOTE>
null

Similar Messages

  • Passing data from an XML object to an itemRenderer

    I'm trying to color the background of a column in a datagrid and have found a sample file that illustrate the concept. However, the sample has data stored in an arrayCollection whereas mine is in an XML object. The problem is that the data in the sample file is apparently automatically passed to the itemRenderer (shown below: note the trace statement). My XML object does not appear to automatically pass data to the itemRenderer. So my questions are:
    1. Is there a simple way to pass data stored in an XML object to an itemRenderer
    or
    2. Should I convert my XML to an arrayCollection? If so, what's the best way to do this-- I've tried the following, but without success:
    <mx:Model id="xmldata" source="example3.xml"/>
      <mx:ArrayCollection id="myAC" source="{ArrayUtil.toArray(xmldata.Example1)}" />
    Here's what the xml looks like:
    <TABLE>
       <EXAMPLE1>
          <difficulty> 0.5 </difficulty>
          <discrimination> 0.7 </discrimination>
          <item> 3 </item>
       </EXAMPLE1>
    </TABLE>  
    Here's the itemRenderer:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Label xmlns:mx="http://www.adobe.com/2006/mxml">
        <!--
            This item renderer simply extends Label and overrides the updateDisplayList function to
            draw a gradient-filled rectangle. The colors in the gradient are determined from the
            data.
        -->
        <mx:Script>
        <![CDATA[
            import flash.geom.Matrix;
            import flash.display.GradientType;
            import flash.display.Graphics;
            override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
                super.updateDisplayList(unscaledWidth,unscaledHeight);
                var m:Matrix = new Matrix();
                m.createGradientBox(unscaledWidth,unscaledHeight);
                var g:Graphics = graphics;
                            trace("data.col3="+data.col3)
                var colors:Array = (data.col3 < 2000 ? [0x0000CC,0x0000FF] : [0x00CC00,0x00FF00]);
                g.clear();
                g.beginGradientFill(GradientType.LINEAR, colors, [0.2,0.6], [0,255], m);
                // the rectangle is drawn a little high and a little tall to compensate for the gap
                // the DataGrid introduces between rows.
                g.drawRect(0, -2, unscaledWidth, unscaledHeight+4 );
                g.endFill();
        ]]>
        </mx:Script>
    </mx:Label>

    This sample code should answer your question of how to bring data into the renderer automatically. It comes in via the DataGrid dataProvider and then you refer to it in the renderer as data.XYZ, where XYZ is the field in the XML with the data. See FB 3 help sys on e4x syntax.
    ------------------ mainapp.mxml --------------------
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
      creationComplete="srvc.send();">
      <mx:Script>
        <![CDATA[
          import mx.rpc.events.ResultEvent;
          import mx.collections.XMLListCollection;
          [Bindable] private var xlc:XMLListCollection;
          private function dataHandler(evt:ResultEvent):void{
            xlc = new XMLListCollection(evt.result..EXAMPLE1 as XMLList);
        ]]>
      </mx:Script>
      <mx:HTTPService id="srvc" url="data2.xml" result="dataHandler(event)"
        resultFormat="e4x"/>
      <mx:DataGrid dataProvider="{xlc}">
        <mx:columns>
          <mx:DataGridColumn headerText="Difficulty" dataField="difficulty"/>
          <mx:DataGridColumn headerText="Discrimination" dataField="discrimination"/>
          <mx:DataGridColumn headerText="Item" itemRenderer="MyLabel"/>
        </mx:columns>
      </mx:DataGrid>
    </mx:Application>
    ----------- MyLabel.mxml --------------
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Label xmlns:mx="http://www.adobe.com/2006/mxml">
      <mx:Script>
        <![CDATA[
          import flash.geom.Matrix;
          import flash.display.GradientType;
          import flash.display.Graphics;
          override protected function updateDisplayList(unscaledWidth:Number,
            unscaledHeight:Number):void{
            super.updateDisplayList(unscaledWidth,unscaledHeight);
            this.text = data.col3;
            var m:Matrix = new Matrix();
            m.createGradientBox(unscaledWidth,unscaledHeight);
            var g:Graphics = graphics;
            var colors:Array = (data.col3 < 2000 ? [0x0000CC,0x0000FF] : [0x00CC00,0x00FF00]);
            g.clear();
            g.beginGradientFill(GradientType.LINEAR, colors, [0.2,0.6], [0,255], m);
            g.drawRect(0, -2, unscaledWidth, unscaledHeight+4 );
            g.endFill();
        ]]>
      </mx:Script>
    </mx:Label>
    ------------ data2.xml ----------------
    <?xml version="1.0" encoding="utf8"?>
    <TABLE>
       <EXAMPLE1>
          <difficulty> 0.5 </difficulty>
          <discrimination> 0.7 </discrimination>
          <col3> 3 </col3>
       </EXAMPLE1>
    </TABLE>

  • Problem inserting and querying XML data with a recursive XML schema

    Hello,
    I'm facing a problem with querying XML data that is valid against a recursive XML Schema. I have got a table category that stores data as binary XML using Oracle 11g Rel 2 on Windows XP. The XML Schema is the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="bold_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="keyword_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
                   <xs:element name="plain_text" type="xs:string"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="emph_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="text_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="parlist_type">
              <xs:sequence>
                   <xs:element name="listitem" minOccurs="0" maxOccurs="unbounded" type="listitem_type"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="listitem_type">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="parlist" type="parlist_type"/>
                   <xs:element name="text" type="text_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:element name="category">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="name"/>
                        <xs:element name="description">
                                  <xs:complexType>
                                            <xs:choice>
                                                           <xs:element name="text" type="text_type"/>
                                                           <xs:element name="parlist" type="parlist_type"/>
                                            </xs:choice>
                                  </xs:complexType>
                        </xs:element>
                                                                </xs:sequence>
                                                                <xs:attribute name="id"/>
                                            </xs:complexType>
                        </xs:element>
    </xs:schema>I registered this schema and created the category table. Then I inserted a new row using the code below:
    insert into category_a values
    (XMlElement("category",
          xmlattributes('categoryAAA' as "id"),
          xmlforest ('ma categ' as "name"),
          (xmlelement("description", (xmlelement("text", 'find doors blest now whiles favours carriage tailor spacious senses defect threat ope willow please exeunt truest assembly <keyword> staring travels <bold> balthasar parts attach </bold> enshelter two <emph> inconsiderate ways preventions </emph> preventions clasps better affections comes perish </keyword> lucretia permit street full meddle yond general nature whipp <emph> lowness </emph> grievous pedro')))    
    The row is successfully inserted as witnessed by the results of row counting. However, I cannot extract data from the table. First, I tried using SqlPlus* which hangs up and quits after a while. I then tried to use SQL Developer, but haven't got any result. Here follow some examples of queries and their results in SQL Developer:
    Query 1
    select * from category
    Result : the whole row is returned
    Query 2
    select xmlquery('$p/category/description' passing object_value as "p" returning content) from category
    Result: "SYS.XMLTYPE"
    now I tried to fully respect the nested structure of description element in order to extract the text portion of <bold> using this query
    Query 3
    select  xmlquery('$p/category/description/text/keyword/bold/text()' passing object_value as "p" returning content) from  category_a
    Result: null
    and also tried to extract the text portion of element <text> using this query
    Query 4
    select  xmlquery('$p/category/description/text/text()' passing object_value as "p" returning content) from  category_a
    Result: "SYS.XMLTYPE".
    On the other hand, I noticed, from the result of query 1, that the opening tags of elements keyword and bold are encoded as the less than operator "&lt;". This explains why query 3 returns NULL. However, query 4 should display the text content of <text>, which is not the case.
    My questions are about
    1. How to properly insert the XML data while preserving the tags (especially the opening tag).
    2. How to display the data (the text portion of the main Element or of the nested elements).
    The problem about question 1 is that it is quite unfeasible to write a unique insert statement because the structure of <description> is recursive. In other words, if the structure of <description> was not recursive, it would be possible to embed the elements using the xmlelement function during the insertion.
    In fact, I need to insert the content of <description> from a source table (called category_a) into a target table (+category_b+) automatically .
    I filled category_a using the Saxloader utility from an flat XML file that I have generated from a benchmark. The content of <description> is different from one row to another but it is always valid with regards to the XML Schema. The data is properly inserted as witnessed by the "select * from category_a" instruction (500 row inserted). Besides, the opening tags of the nested elements under <description> are preserved (no "&lt;"). Then I wrote a PL/SQL procedure in which a cursor extracts the category id and category name into varchar2 variables and description into an XMLtype variable from category_a. When I try to insert the values into a category_b, I get the follwing error:
    LSX-00213: only 0 occurrences of particle "text", minimum is 1which tells that the <text> element is absent (actually it is present in the source table).
    So, my third question is why are not the tags recognized during the insertion?
    Can anyone help please?

    Hello,
    indded, I was using an old version of Sqlplus* (8.0.60.0.0) because I had a previous installation (oracle 10g XE). Instead, I used the Sqlplus* shipped with the 11g2database (version 11.2.0.1.0). All the queries that I wrote work fine and display the data correctly.
    I also used the XMLSERIALIZE function and can now display the description content in SQL Developer.
    Thank you very much.
    To answer your question Marco, I registered the XML Schema using the following code
    declare
      doc varchar2(4000) := '<?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="bold_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="keyword_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
                   <xs:element name="plain_text" type="xs:string"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="emph_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="text_type" mixed="true">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="bold" type="bold_type"/>
                   <xs:element name="keyword" type="keyword_type"/>
                   <xs:element name="emph" type="emph_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:complexType name="parlist_type">
              <xs:sequence>
                   <xs:element name="listitem" minOccurs="0" maxOccurs="unbounded" type="listitem_type"/>
              </xs:sequence>
         </xs:complexType>
         <xs:complexType name="listitem_type">
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                   <xs:element name="parlist" type="parlist_type"/>
                   <xs:element name="text" type="text_type"/>
              </xs:choice>
         </xs:complexType>
         <xs:element name="category">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="name"/>
                        <xs:element name="description">
                                  <xs:complexType>
                                            <xs:choice>
                                                           <xs:element name="text" type="text_type"/>
                                                           <xs:element name="parlist" type="parlist_type"/>
                                            </xs:choice>
                                  </xs:complexType>
                        </xs:element>
                                                                </xs:sequence>
                                                                <xs:attribute name="id"/>
                                            </xs:complexType>
                        </xs:element>
    </xs:schema>';
    begin
      dbms_xmlschema.registerSchema('/xmldb/category_auction.xsd', doc,     LOCAL      => FALSE, 
            GENTYPES   => FALSE,  GENBEAN    => FALSE,   GENTABLES  => FALSE,
             FORCE      => FALSE,
             OPTIONS    => DBMS_XMLSCHEMA.REGISTER_BINARYXML,
             OWNER      => USER);
    end;then, I created the Category table as follows:
    CREATE TABLE category_a of XMLType XMLTYPE store AS BINARY XML
        XMLSCHEMA "xmldb/category_auction.xsd" ELEMENT "category";Now, there still remains a problem of how to insert the "description" content which I serialized as a CLOB data into another table as XML. To this purpose, I wrote a view over the Category_a table as follows:
    CREATE OR REPLACE FORCE VIEW "AUCTION_XWH"."CATEGORY_V" ("CATEGORY_ID", "CNAME", "DESCRIPTION") AS
      select category_v."CATEGORY_ID",category_v."CNAME",
      XMLSerialize(content ( xmlquery('$p/category/description/*' passing object_value as "p" returning content)) as clob) as "DESCRIPTION"
      from  auction.category_a p, 
    xmltable ('$a/category' passing p.Object_Value as "a"
    columns  category_id varchar2(15) path '@id',
              cname varchar2(20) path 'name') category_v;Then, I wrote a procedure to insert data into the Category_xwh table (the source and target tables are slightly different: the common elements are just copied wereas new elements are created in the target table). The code of the procedure is the following:
    create or replace PROCEDURE I_CATEGORY AS
    v_cname VARCHAR2(30);
    v_description clob ;
    v_category_id VARCHAR2(15);
    cursor mycursor is select category_id, cname, description from category_v;
    BEGIN
    open mycursor;
      loop
      /*retrieving the columns*/
      fetch mycursor into v_category_id, v_cname, v_description ;
      exit when mycursor%notfound;
      insert into category_xwh values
      (XMlElement("category",
          xmlattributes(v_category_id as "category_id"),
          xmlelement("Hierarchies", xmlelement("ObjHierarchy", xmlelement ("H_Cat"),
                                                               xmlelement ("Rollsup",
                                                                                  (xmlelement("all_categories",
                                                                                   xmlattributes('allcategories' as "all_category_id")))
        xmlforest (
                  v_cname as "cat_name",
                  v_description as "description")    
    end loop;
      commit;
      close mycursor;
    END I_CATEGORY;When I execute the procedure, I get the following error:
    LSX-00201: contents of "description" should be elements onlyso, I just wonder if this is because v_description is considered as plain text and not as XML text, even if its content is XML. Do I need to use a special function to cast the CLOB as XML?
    Thanks for your help.
    Doulkifli

  • XML Object dissapearing?!?!

    Hello, All.
    I guess I'm just missing something silly, but I have a weird
    situation where after I've loaded my XML data and looked at the
    attributes (w/ trace in the loading function), immediately after
    "successfully" loading the data, it becomes undefined. Anything
    obvious that I should check for? This is probably the 10th project
    of this type that I've done, but it's been a version or so since
    I've messed with Flash & XML. TIA for any help...
    Ciao,
    -Jei.

    Thanks for the reply. Yeah, I have all the loading code
    (nearly identical to another project from a couple years ago).
    Here's my code:
    function loaded(success){
    if (success == true) {
    _root.rootNode = testXML.firstChild;
    _root.testNode = _root.rootNode;
    _root.questionNode = _root.testNode.firstChild;
    _root.questionCount = _root.testNode.childNodes.length;
    _root.testTitle = _root.testNode.attributes.title;
    trace(_root.testTitle);
    trace("XML loaded");
    trace("Question total: " + _root.questionCount);
    trace(_root.questionNode.attributes.qText);
    }else{
    trace("An error occured while loading XML data.");
    var currentQuestion = 0;
    var currentTest = 0;
    testXML = new XML();
    testXML.load("wd_test1.xml");
    testXML.onLoad = loaded;
    testXML.ignoreWhite = true;
    This all appears in the first frame of the first layer of my
    movie. In the next frame, I try to set the value of a dynamic text
    box as such:
    questionText.htmlText =
    _root.questionNode[0].attributes.qText;
    What I get in the textbox is "undefined." I've traced the
    values also (in the same frame as the text value assignment) and
    it's as if the XML object was never created/loaded.

  • Spry = Exception caught while loading data.xml [object Error]

    Exception caught while loading data.xml [object Error]
    I get this mistake message then I look in the Browser to my
    create html page with put in the xml file by Spry. All my xml files
    are not shows, its shows only the error massage.
    What can I do for the repair it?
    Thanks in advance for you answer and regards.

    Hi Jay,
    While in theory it should work offline, you have run into
    the main issue.
    IE7 has a security limitation that prevents the ActiveX
    control that does the XMLHttpRequest from working from the local
    file system.
    Without being about to control the viewing environment, you
    can't guarantee it will work in all instances.
    It will work if running off a web server (
    http://localhost or otherwise).
    I wouldn't recommend it for offline use unless you can
    control the usage.
    Let me know if you have further questions.
    Thanks,
    Donald Booth
    Adobe Spry Team

  • Replace text in XML object using a sequence of tags as input

    Hi, I need to write an apparently very simple function that replaces a text between tags in an XML object receving as input the sequence of tags to identify the element, but I miss one point.
    I travel through the XML tree using a element variable like
    Code:
    element = element.child(n)
    using at each step the tags provided as input to decide the value of "n". Now, when I reach the tags that contain the text to be replaced, what to do? If I use
    Code:
    element.replace(0, newValue)
    I replace the text just in element  not in the original object...
    For example having
    <publishing_date>
           <year>2002</year>
           <month>Jan</month>
    <success_date>
           <year>2004</year>
           <month>Feb</month>
    </success_date>
    I want to call a function like
    replace(["success_date", "month"], "Mar")
    and have an XML object where the second occurence of Feb is replaced with "Mar"
    Any suggestion on this easy task?
    Thanks a lot
    Giuse

    Hi Michael, thanks but my question was difference.
    I need to make a function to operate with input tags, not with known tags. So I am writing a loop that scans the XML object using the tags provided in input until it reaches the desired tag with the text to be replaced.
    That's why I wrote
    element = element.child(n)
    that I was thinking to use at each step of the loop looking for desired tag.
    There I have the problem: if I use
    element.replace.... I am changing the text between the tags in the element variable, not in the original XMLObject, and since there are no pointers in JavaScript, how to do that?
    I hope to have been more clear now..... did I ?
    Thanks and best reagrds
    Giuseppe

  • Xml object

    how to enable all xml object in oracle 10g database server
    thanks
    gkn

    To add due to email questions:
    Subject: RE: transforming XML document into RowSet
    Slava-
    I probably should have kept a copy of it when I was running, but I didn’t. It
    won’t be until next week that I will be able to re-create the issue and post a
    stack trace. Any help you can render outside of the trace? Have you successfully
    translated an xml document into a RowSet?
    Thanks for the assist.
    Eric
    -----Original Message-----
    Sent: Thursday, July 31, 2003 12:30 PM
    To: [email protected]
    Subject: Re: transforming XML document into RowSet
    Hi Eric,
    Could you post the stack trace?
    Regards,
    Slava Imeshev
    "Eric Ballou" <[email protected]> wrote:
    >
    I posted this in jdbc intrest group as well, but could use a response
    from anyone...
    I am using the following private class to attempt to take an XML object
    and map
    it into a row set, but I am getting validation errors on items such as
    (attribute
    id, rows), etc. What is the proper schema to utilize on RowSets and is
    there anything
    else I need to do to get this to work properly? (The schema that is
    generated
    from the wizard has no mention of a row attribute nor do I have a really
    good
    guide on how to extend the schema so I may address several tables at
    once.)
    private WLCachedRowSet convertXmlData(XmlObject xmlInfo) throws SQLException,
    IOException
    WLCachedRowSet rowSet = null;
    XMLInputStreamFactory xiFactory = XMLInputStreamFactory.newInstance();
    XMLInputStream xis = null;
    RowSetFactory factory = RowSetFactory.newInstance();
    rowSet = factory.newCachedRowSet();
    WLRowSetMetaData metaData = (WLRowSetMetaData) rowSet.getMetaData();
    // Read XSD
    String sourceDir = System.getProperty("user.dir");
    xis = xiFactory.newInputStream(new FileInputStream(sourceDir+"\\xml\\myRowSet.xsd"));
    metaData.loadXMLSchema(xis);
    if (xis != null)
    xis.close();
    // Read XML
    xis = xmlInfo.newXMLInputStream();
    rowSet.loadXML(xis);
    if (xis != null)
    xis.close();
    return rowSet; }

  • Reading XML object from Request object

    Hi,
    We are using Flash in our web application in which we are sending an XML object using HTTP post method to a JSP where we need to parse the XML object and get the values. Can anyone tell how we can do it?

    In fact we are not getting error in our page. following is the error
    Error: 500
    Location: /team/par/getData10.jsp
    Internal Servlet Error:
    java.lang.IllegalArgumentException
         at javax.servlet.http.HttpUtils.parseQueryString(HttpUtils.java:151)
         at javax.servlet.http.HttpUtils.parsePostData(HttpUtils.java:254)
         at org.apache.tomcat.util.RequestUtil.readFormData(RequestUtil.java:101)
         at org.apache.tomcat.core.RequestImpl.handleParameters(RequestImpl.java:719)
         at org.apache.tomcat.core.RequestImpl.getParameterValues(RequestImpl.java:259)
         at org.apache.tomcat.core.RequestImpl.getParameter(RequestImpl.java:250)
         at org.apache.tomcat.facade.HttpServletRequestFacade.getParameter(HttpServletRequestFacade.java:223)
         at org.apache.jasper.servlet.JspServlet.preCompile(JspServlet.java:437)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:480)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
         at org.apache.tomcat.core.Handler.service(Handler.java:287)
         at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
         at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
         at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
         at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
         at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
         at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
         at java.lang.Thread

  • Placing a variable value into an XML Object

    I am trying to figure out how I would get the value of a variable into an XML Object.
    I have the variable
    var dragonName:String = "Samuel";
    var listing:XML = new XML();
    listing = <thedragon>
                            <dragon>
                                  <myname> dragonName.valueOf()</myname>
                             </dragon>
                   </thedragon>
    However, the dragon name does not show up when I go trace(listing);
    How do I do it and should I have imported something as well or what?

    yeah - in fact you can do all sort of things. This is extremely useful when you creating an XML dynamically e.g.
    var names:Array = ["Sammy", "Samuel", "Sancho"];
    var xml:XML =     <dragon>
                         <myname>{Math.floor(Math.random()*names.length) < 2 ? names[1] : names[Math.round(Math.PI) - 1]}</myname>
                      </dragon>;
    or you can even run a function:
    var xml:XML =     <dragon>
                         <myname>{dragonName()}</myname>
                      </dragon>;
    private function dragonName():String {
       return "Samuel";

  • Calling Bpel Process From a Jsp(Need a string output instead of XML object)

    Hi
    I am calling a BPEL process(Synchrononus) from a JSP page, Where Bpel process calls a java web service.The output from Bpel process is returned as an XML object. I need the output in a string format.Please let me know the steps to get the string output.
    I also executed invokeCreditRatingService.jsp(from samples shipped with SOA Suite) that calls CreditRatingService bpel, but i was getting the following output where the rating value is printed as an XML object.
    Output:-
    BPELProcess CreditRatingService executed!
    Credit Rating is oracle.xml.parser.v2.XMLElement@9511c8
    Please let me know, what changes i need to make to get the string output.I followed all the steps given in "orabpel-Tutorial7-InvokingBPELProcesses.PDF" to execute credit rating jsp.
    We are using SOA Suite 10.1.3.1.0 version.Do I need to make any changes to the code, to make it work with this version.
    Thanks
    Vandana.

    The call payload.get("payload") returns, as you have observed, an XMLElement. You can simply convert the XMLElement into an XML string by using a DOMSerializer implementation. The following code is very useful for this purpose:
    http://javafaq.nu/java-example-code-432.html
    Best,
    Manfred

  • How can i filter an xml object on an attribute?

    I want address an xml object with .(@ attributeNameHere == "textToSearchForHere") and have it return the node it’s associated with. 
    This is the text from the adobe help site and it’s similar to my actual code.  I’m querying this xml object: staticVar.employee.(@id=="347").  FlashBuilder 4.7 is returning an error “No such variable: @id”. when I look in debugger.
    This example is found in Adobe's help site: Adobe Flash Platform * Traversing XML structures
    The help site says
    The following expressions are all valid:
    x.employee.(lastName == "McGee")—This is the secondemployeenode.
    x.employee.(lastName == "McGee").firstName—This is thefirstNameproperty of the secondemployeenode.
    x.employee.(lastName == "McGee").@id—This is the value of theidattribute of the secondemployeenode.
    x.employee.(@id == 347)—The firstemployeenode.
    public var staticVar:XML = 
    <employeeList>
          <employee id="347">
               <lastName>Zmed</lastName>
               <firstName>Sue</firstName>
               <position>Data analyst</position>
          </employee>
          <employee id="348">
               <lastName>McGee</lastName>
               <firstName>Chuck</firstName>
               <position>Jr. data analyst</position>
          </employee>
    </employeeList>;
    I’m expecting this: staticVar.employee.(@id=="347") will return the following node:
    <employee nu="347">
    <lastName>Zmed</lastName>
    <firstName>Sue</firstName>
    <position>Data analyst</position>
    </employee>
    If this is the wrong, then what is the correct way to access the xml node based on an attribute?  How can i get that node 347 in this example to be found and returned?  I've opened a ticket with the adobe help team and we're on the 8th day and they have not been helpful at all.

    If you are using e4x as the result format for your service
    you can do the following
    //a XMLList of all day information
    var result:Object = event.result.day;
    //consits all information for month zero
    var month0:XMLList = result.(@month == 0);
    //consists of booking info for day 28 of month 0
    var day28Month0:XMLList = month0.(@day == 28);
    //this also can be done
    //contains booking info for all months for day 28
    var day28AllMonths:XMLList = result.(@day == 28);
    Using this technique you should be able to gather info about
    all user selected dates and build the smaller (filtered) list.
    HTH

  • Conversion of string into XML object

    Hi
    I am having some problems with conversion of string (containing XML data) into Flex XML object and binding it later to UI elements to output/maintain this data.
    Binding of XML structure to UI elements works perfectly fine if I will do following:
    1)      Hardcode XML object within Flex file
    2)      Read xml file from repository (xml file inside the Flex project)
    3)      Use HTTP request to retrieve XML data
    Unfortunately none of the above scenarios suits my solution.
    I am developing a prototype application for processing Flex forms inside SAP system. I have decided to make data bindings using XML structure stored in Data Base. When rendering form inside web browser based application I am retrieving corresponding XML schema (empty for new forms and populated for saved forms) and pass it to Flex form as a string type import parameter. Data is being passed correctly (I can display it on TextArea control for instance) but after conversion to XML and binding to DataGrid I am not getting any results.
    I am converting string (containing XML) to XML object in following way:
    Private var xml_obj:XML = new XML(string_xml );
    I am catching any potential errors but conversion is going well. After conversion I am not getting any results after binding it to DataGrid control and I am not able to access any of the nodes using AS code either. At the same time variable xml_obj is not empty (not null).
    Any help would be much appreciated.
    Regards
    Michael

    David
    First of all sorry for not stating it clearly but I am using Flex 3 for this development (at the moment it is the only choice when embedding Flex objects inside SAP applications).
    You must have missed the bit where I am describing how this XML data finds its way inside Flex. I am passing it to Flex as String type parameter during rendering (directly from DB where it is stored).
    Now, following code works perfect (XML is embedded inside Flex project):
                    <mx:XML id="form_data" source="../assets/example_xml_data.xml"/>
                    <mx:Script>
                                    <![CDATA[
                                                    import mx.collections.XMLListCollection;
                                                    import mx.controls.Alert;
                                                    [Bindable]
                                                    public var XML_list:XMLListCollection;
                                                    private function setParameters():void
                                                                   XML_list = new XMLListCollection(form_data.*);             
                                    ]]>
                    </mx:Script>
                    <mx:DataGrid id="myDataGrid" dataProvider="{XML_list}">
                                    <mx:columns>
                                                    <mx:DataGridColumn dataField="COMMON" headerText="Popular name"/>
                                                    <mx:DataGridColumn dataField="BOTANICAL" headerText="Botanical name"/>
                                                    <mx:DataGridColumn dataField="ZONE" headerText="Zone"/>
                                                    <mx:DataGridColumn dataField="LIGHT" headerText="Light"/>                                                                                                                                               
                                                    <mx:DataGridColumn dataField="PRICE" headerText="Price"/>                                               
                                                    <mx:DataGridColumn dataField="AVAILABILITY" headerText="Availability"/>                                    
                                    </mx:columns>               
                    </mx:DataGrid>
    But following code does not work (XML passed to Flex form as String input parameter):
    import sap.FlashIsland;
    import mx.controls.Alert;
    import mx.collections.XMLListCollection;
    [Bindable]
    public var xml_data:String;
    private var form_data:XML;
    [Bindable]
    private var XML_list:XMLListCollection;
    private function initApp():void
                    FlashIsland.register(this);
    private function setParameters():void
                    try
                                    form_data=new XML(xml_data);
                    catch (error:Error)
                                    Alert.show(error.toString());
                      XML_list = new XMLListCollection(form_data.*);           
    XML string does find its way inside Flex form. I can display content of variable xml_data in TextArea and all looks fine. Conversion to XML (variable form_data) goes well (no error)
    Please helpJ
    Regards
    Michael

  • How to create a xml object dynamically

    Hi all,
    In my current project the database is returning the query result in xml string format(using oracle's DBMS-XML package).
    Now I need to use this xml string and build a xml object and transform it into XSLT and then in a servlet and then pass it to the browser and display it using xsl stylesheets.
    Can some one help me in building an xml object using a string( the xml string is in the xml format i.e in <..> format) and then transform it into xslt in the servlet and send across to the browser.
    Any hands on code or references to the code will be most favourable.
    any help regarding this issue will be most appreciated. Pls do reply as early as possible as I do not have much time to implement this.
    Thanking in advance for your kind help.
    Srinivas.

    What's an "xml object"?
    If you want to transform it using XSLT (transforming it "into" XSLT doesn't make much sense), you can transform direct from the string. Like this:try {
      TransformerFactory xformFactory  = TransformerFactory.newInstance();
      Source xsl = new StreamSource("your.xsl");
      Transformer stylesheet = xformFactory.newTransformer(xsl);
      Source request  = new StreamSource(new StringReader(yourXMLString));
      Result response = new StreamResult(out);
      stylesheet.transform(request, response);
    catch (TransformerException e) {
      System.err.println(e);
    }By the way, if you haven't seen this code before then I suggest you go and read ERH's book about XML with Java:
    http://www.cafeconleche.org/books/xmljava/chapters/index.html

  • String to xml object java

    Hello,
    can anyone suggest me how to convert string to xml object in java?
    I have a string (Data) ant now I have to pass it as parameter as xml object, which structure should be:
    <MGWData>Data</MGWData>
    Where I surf I always see only solutions for converting string to xml document, but never to xml object.
    maybe the problem is I don't completely understand what xml object is in first place :/
    Any answer would help.
    Thanks.

    894871 wrote:
    here is the method to call:
    +/**+
    * Sets the p_DATAXMLTYPEIN value for this SVARCHAR2INSERT_RECEIVESInput.
    *+
    * @param p_DATAXMLTYPEIN
    *public void setP_DATAXMLTYPEIN(com.oracle.xmlns.orawsv.SISTEMA_MOKA.MGW_PUBLIC_FUNCTIONS.SVARCHAR2INSERT_RECEIVESInputP_DATAXMLTYPEIN p_DATAXMLTYPEIN) {*
    this.p_DATAXMLTYPEIN = p_DATAXMLTYPEIN;
    one of the classes contains:
    *public class SVARCHAR2INSERT_RECEIVESInputP_DATAXMLTYPEIN  implements java.io.Serializable, org.apache.axis.encoding.AnyContentType {*
    *private org.apache.axis.message.MessageElement [] _any;*
    this method and some classes where generated using eclipse and wsdl file by creating web service client.
    wsdl says for that part: *<xsd:element name="P_DATA-XMLTYPE-IN">*
    So I suppose it should involve smth org.apache.axis.message.MessageElement. But when I create any type of parameter, it gives me error:
    + ....cannot be cast to com.oracle.xmlns.orawsv.SISTEMA_MOKA.MGW_PUBLIC_FUNCTIONS.SVARCHAR2INSERT_RECEIVESInputP_DATAXMLTYPEIN+
    I am new in web service stuff so thank you for response.Can you explain in plain English what you are trying to do? Or provide a [url http://sscce.org/]SSCE.

  • Mapping XML object to java object gives ClassCastException

    Hi All,
    I am trying to map a specific XML object to a specific java object using web
    services and received the following exception:
    java.lang.ClassCastException: weblogic.soap.xml.XMLObject
    at $Proxy0.getMonster(Unknown Source)
    at serviceClient.TestServiceClient.main(TestServiceClient.java:46)
    Exception in thread "main"
    I tried to map a simple type:
    <types>
    <schema targetNamespace='java:biomaterials'
    xmlns='http://www.w3.org/1999/XMLSchema'>
    <element name="Monster">
    <complexType>
    <all>
    <element name="name"
    type="string"/>
    <element name="age"
    type="int"/>
    </all>
    </complexType>
    </element>
    </schema>
    </types>
    To the following java bean:
    package biomaterials;
    public class
    ster{
    private String name;
    private Integer age;
    public Monster(String name, int age) {
    this.name=name;
    this.age=new Integer(age);
    public String getName() {
    return name;
    public void setName(String s) {
    this.name=s;
    public Integer getAge() {
    return age;
    public void setAge(int n) {
    this.age=new Integer(n);
    Here is my client code:
    package serviceClient;
    import java.util.Properties;
    import weblogic.soap.codec.CodecFactory;
    import weblogic.soap.codec.SoapEncodingCodec;
    import weblog
    ic.soap.codec.LiteralCodec;
    import weblogic.soap.WebServiceProxy;
    import weblogic.soap.SoapMethod;
    import weblogic.soap.SoapType;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.ejb.*;
    import biomaterials.ServiceSession;
    import java.io.File;
    import java.io.IOException;
    import org.w3c.dom.Element;
    import biomaterials.Monster;
    public class TestServiceClient
    public static void main( String[] arg ) throws Exception
    Properties h = new Properties();
    h.put(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.soap.http.SoapInitialContextFactory");
    h.put("weblogic.soap.wsdl.interface",
    ServiceSession.class.getName() );
    Context context = new InitialContext(h);
    ServiceSession serv =
    (ServiceSession)context.lookup("http://localhost:7001/biocat/biomaterials.Se
    rviceSession/biomaterials.ServiceSession.wsdl");
    //try
    //int result = serv.getTheNum();
    //String result=serv.getBIXBiologicals();
    //int result=serv.setBIXInfo("TARNUMBER");
    Monster result=serv.getMonster();
    System.out.print("The value is "+result);
    } /* end of main */
    } /* end of class */
    Here is the method in my stateless session bean:
    public Monster getMonster()
    return new Monster("Sully",3);
    And here is my whole wsdl file:
    <% response.setHeader( "Content-Type", "text/xml; charset=utf-8" ); %>
    <definitions
    targetNamespace="java:biomaterials"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="java:biomaterials"
    >
    <types>
    <schema targetNamespace='java:biomaterials'
    xmlns='http://www.w3.org/1999/XMLSchema'>
    <element name="Monster">
    <complexType>
    <all>
    <element name="name" type="string"/>
    <element name="age" type="int"/>
    </all>
    </complexType>
    </element>
    </schema>
    </types>
    <message name="getBIXBiologicalsRequest"></message>
    <message name="getBIXBiologicalsResponse">
    <part name="return" type="xsd:string" />
    </message>
    <message name="setBIXInfoRequest">
    <part name="arg0" type="xsd:string" />
    <part name="arg1" type="xsd:string" />
    <part name="arg2" type="xsd:integer" />
    </message>
    <message name="setBIXInfoResponse"></message>
    <message name="getMonsterRequest"></message>
    <message name="getMonsterResponse">
    <part name="body" element="tns:Monster"/>
    </message>
    <portType name="ServiceSessionPortType">
    <operation name="getBIXBiologicals">
    <input message="tns:getBIXBiologicalsRequest"/>
    <output message="tns:getBIXBiologicalsResponse"/>
    I am using weblogic 6.1 SP1 on WIN NT.
    Please help me out in this issue.
    Thanks in advance.
    Sapan

    HI !
    i dont think that the servicepack is an issue in this case.
    anyway i ahve tried it on 6.1SP4 and still getting similar results.
    any pointers will be highly appreciated.
    Thanks,
    sapan
    "manoj cheenath" <[email protected]> wrote in message
    news:[email protected]...
    I just skimmed through your email. You said you
    are using WLS 6.1 SP1. Can you try this using
    the latest SP. There are many bug fixes done
    after SP1.
    Web service support in 6.1 is very limited. But, It
    looks like 6.1 can handle the case you are trying out.
    regards,
    -manoj
    "Sapan Agarwal" <[email protected]> wrote in message
    news:[email protected]...
    Hi All,
    I am trying to map a specific XML object to a specific java object usingweb
    services and received the following exception:
    java.lang.ClassCastException: weblogic.soap.xml.XMLObject
    at $Proxy0.getMonster(Unknown Source)
    at
    serviceClient.TestServiceClient.main(TestServiceClient.java:46)
    >>
    Exception in thread "main"
    I tried to map a simple type:
    <types>
    <schema targetNamespace='java:biomaterials'
    xmlns='http://www.w3.org/1999/XMLSchema'>
    <element name="Monster">
    <complexType>
    <all>
    <element name="name"
    type="string"/>
    <element name="age"
    type="int"/>
    </all>
    </complexType>
    </element>
    </schema>
    </types>
    To the following java bean:
    package biomaterials;
    public class
    ster{
    private String name;
    private Integer age;
    public Monster(String name, int age) {
    this.name=name;
    this.age=new Integer(age);
    public String getName() {
    return name;
    public void setName(String s) {
    this.name=s;
    public Integer getAge() {
    return age;
    public void setAge(int n) {
    this.age=new Integer(n);
    Here is my client code:
    package serviceClient;
    import java.util.Properties;
    import weblogic.soap.codec.CodecFactory;
    import weblogic.soap.codec.SoapEncodingCodec;
    import weblog
    ic.soap.codec.LiteralCodec;
    import weblogic.soap.WebServiceProxy;
    import weblogic.soap.SoapMethod;
    import weblogic.soap.SoapType;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.ejb.*;
    import biomaterials.ServiceSession;
    import java.io.File;
    import java.io.IOException;
    import org.w3c.dom.Element;
    import biomaterials.Monster;
    public class TestServiceClient
    public static void main( String[] arg ) throws Exception
    Properties h = new Properties();
    h.put(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.soap.http.SoapInitialContextFactory");
    h.put("weblogic.soap.wsdl.interface",
    ServiceSession.class.getName() );
    Context context = new InitialContext(h);
    ServiceSession serv =
    (ServiceSession)context.lookup("http://localhost:7001/biocat/biomaterials.Se
    rviceSession/biomaterials.ServiceSession.wsdl");
    file://try
    file://int result = serv.getTheNum();
    file://String result=serv.getBIXBiologicals();
    file://int result=serv.setBIXInfo("TARNUMBER");
    Monster result=serv.getMonster();
    System.out.print("The value is "+result);
    } /* end of main */
    } /* end of class */
    Here is the method in my stateless session bean:
    public Monster getMonster()
    return new Monster("Sully",3);
    And here is my whole wsdl file:
    <% response.setHeader( "Content-Type", "text/xml; charset=utf-8" ); %>
    <definitions
    targetNamespace="java:biomaterials"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="java:biomaterials"
    >
    <types>
    <schema targetNamespace='java:biomaterials'
    xmlns='http://www.w3.org/1999/XMLSchema'>
    <element name="Monster">
    <complexType>
    <all>
    <element name="name" type="string"/>
    <element name="age" type="int"/>
    </all>
    </complexType>
    </element>
    </schema>
    </types>
    <message name="getBIXBiologicalsRequest"></message>
    <message name="getBIXBiologicalsResponse">
    <part name="return" type="xsd:string" />
    </message>
    <message name="setBIXInfoRequest">
    <part name="arg0" type="xsd:string" />
    <part name="arg1" type="xsd:string" />
    <part name="arg2" type="xsd:integer" />
    </message>
    <message name="setBIXInfoResponse"></message>
    <message name="getMonsterRequest"></message>
    <message name="getMonsterResponse">
    <part name="body" element="tns:Monster"/>
    </message>
    <portType name="ServiceSessionPortType">
    <operation name="getBIXBiologicals">
    <input message="tns:getBIXBiologicalsRequest"/>
    <outputmessage="tns:getBIXBiologicalsResponse"/>
    >>
    >>
    >>
    >>
    >>
    >>
    >>
    I am using weblogic 6.1 SP1 on WIN NT.
    Please help me out in this issue.
    Thanks in advance.
    Sapan

Maybe you are looking for

  • Looking for a virtual app that will allow me to take a photo then be able to add details

    Looking for a virtual app that I can use in my event planning and designing that I can take a pic on my iPad and then design the pic to my personal needs?

  • Trial Download

    I am on the final stages of installing the Trial software for Adobe Photoshop CS6 and it ask me to sign in to conduct the final install.  However, it never finishes because it keeps stating, "Either your computer is offline (which it isn't) or that t

  • ResultSet IView - eventing - hand over serveral records

    Hi experts, we use a standard resultset iview for connecting the repository with the EP - this works fine. In case of "eventing": is there a possiblity to hand over more than one record via EPCF-eventing to another IView on the same page? The target

  • Digital Photo Frame with iPhoto

    What are the best digital photo frames that are compatible with Mac and iPhoto?  

  • MacBook Air Flash Storage Firmware Update 1.1

    MacBook Air Flash Storage Firmware Update 1.1. I have a mid 2012 MacBook air. I just upgraded to Maverick. As part of the upgrade the ssd was checked and I got a message that my ssd was successfully upgraded and that it is fine. After two days a lost