Nested XML and attributes

Hi all,
Not sure if this is me doing things wrong, or a bug.
XML:
<schedules>
<entry>
<groupTitle group="test">Nice Test
Title</groupTitle>
<type>testtype</type>
<items qty="2">
<item>number 1</item>
<item>number 2</item>
</items>
</entry>
</schedules>
I have two datasets:
ds1 = new...XMLDataSet ("data/data.xml", "schedules/entry");
ds2 = new...NestedXMLDataSet(ds1, "items/item");
Everything seems to work fine except for accessing the @qty
attribute for items. From reading the docs on datasets, I should be
able to access that using {ds2::@qty} I believe ?
If I add a @qty attribute to <entry> as a test, I can
access that via {ds1::@qty}, or if I change ds2's XPath to just
"items" then I can access it through {ds2::@qty} ... but then
repeat on ds2 doesnt step through the child items.
Am I doing something wrong or is there a bug accessing
attributes on nested xml datasets ?
Thanks in advance as always!
Regards
Dave

Hi Dave,
to access the @qty attribute, you don't need to create a
nested data set. You can add a sub -path for the XML data set.
The code should look like this:
var ds1 = new Spry.Data.XMLDataSet("test.xml",
"/schedules/entry", {subPaths: "items"});
<div spry:region="ds1">
<ul spry:repeat="ds1">
<li>{items/@qty}</li>
</ul>
</div>
Diana

Similar Messages

  • URGENT : nested AM and attribute permission (and action invocation error)

    Hello,
    we have an issue with our application. We have nested AMs and we want to add permission on iterators and attributes.
    We have no problem with the RowSetPermission in the nested AM, we have this in our system-jazn-data.xml
                   <permission>
                        <class>oracle.adf.share.security.authorization.RowSetPermission</class>
                        <name>Application_RootDataControl.Root.NestedDomain1.*</name>
                        <actions>read</actions>
                   </permission>
    But concerning the AttributePermission we have an issue with the nested AM, they're still not rendered as if the permission was not set. The following lines are the declaration of the AttributePermission
                   <permission>
                        <class>oracle.adf.share.security.authorization.AttributePermission</class>
                        <name>Application_RootDataControl.Root.NestedDomain1.TestViewUsage.*</name>
                        <actions>read</actions>
                   </permission>
    But if we change the name to Application_RootDataControl.* it works (although it's not what we want at all)
    Anyone has more information on this issue ?
    We're close to delivery and it's becoming quite urgent, your help will be greatly appreciated.
    thanks
    PS : i use Jdev 10.1.3.3
    Edit :
    I've noticed that with nested application module the bug indicated here still exists in jdev 10.1.3.3 =>
    SECURITY: permissions not allowed with ExecuteWithParams action
    i.e. executeWithParams can't be invoked due to security problem

    Hi,
    your statement "ExecuteWithParams can't be invoked due to security problem " is not correct. This has been fixed in 10.1.3.3. You can't specify authorization for the ExecuteWithParams operation, but the fix has been such as that no explicit authorization is needed.
    However, the usecase that is not covered in the usecase for authorizing ExecuteWithParams is if this operation is part of a nested AM. So you may want to test the operation in the root AM to see the fix working (as it does for me). If it works for you in teh root AM but not the nested AM then this might be subject of another bug yet to file
    Frank

  • Nested XML and Accordion

    I have the following code:
    <script type="text/javascript">
    <!--
    var ds1 = new Spry.Data.XMLDataSet("all.xml",
    "/Documents/Group");
    var ds2 = new Spry.Data.NestedXMLDataSet(ds1, "Document");
    ds2.setColumnType("data", "html");
    //-->
    </script>
    <div spry:region="ds1 ds2">
    <div id="Accordion1" class="Accordion" tabindex="0">
    <div class="AccordionPanel" spry:repeat="ds1">
    <div class="AccordionPanelTab"
    spry:setrow="ds1">{ds1::name}</div>
    <div class="AccordionPanelContent">
    <ul><li spry:repeat="ds2"
    spry:setrow="ds2">{ds2::name}</li></ul>
    </div>
    </div>
    <script type="text/javascript">
    var Accordion1 = new Spry.Widget.Accordion("Accordion1");
    </script>
    </div>
    </div>
    </div>
    <div id="content" spry:detailregion="ds2">
    <h2><span
    class="title">{name}</span></h2>
    {data}
    </div>
    It *almost* works like I want it to, but the first time I
    click on the AccordionPanelTab, it updates the detailregion and
    defocuses the accordion. This requires another click to actually
    open the accordion to the tab. Is there some way I can make Spry
    behave properly and do both with a single click? My Javascript
    hacks are doing nothing.
    I've tried stuff like
    <div class="AccordionPanelTab" spry:setrow="ds1"
    onclick="handler({ds_RowNumber});">{ds1::name}</div>
    with
    function handler(i){
    Accordion1.openPanel(i);
    return false;
    and the panel doesn't even open when I call handler. I've
    checked that it's working and that
    onclick="handler({ds_RowNumber});" is providing the proper value
    via alerts.
    Anyhow, just trying to stretch Spry a bit, and I keep running
    into obstacles.

    Hi Dave,
    to access the @qty attribute, you don't need to create a
    nested data set. You can add a sub -path for the XML data set.
    The code should look like this:
    var ds1 = new Spry.Data.XMLDataSet("test.xml",
    "/schedules/entry", {subPaths: "items"});
    <div spry:region="ds1">
    <ul spry:repeat="ds1">
    <li>{items/@qty}</li>
    </ul>
    </div>
    Diana

  • CS3 javascript XML and attribute adding.

    I've been trying to get something working in CS3 javascript XML for some time and it is getting really frustrating.
    Say I have:
    var someXML = new XML("<anElement/>");
    someXML.@xxx = "something";
    $.writeln(someXML.toXMLString());
    gives the output I'd expect (<anElement xxx="something"/>);
    But I need the name of the attribute to be dynamic.  As far as I can see I should be able to either:
    someXML.getAttribute("xxx") = "something";
    or
    someXML.@["xxx"] = "something";
    both these cases give an error of 'Cannot set property xxx'.  I'm using CS3 version 5.0.4 (the debug build because most of the time I'm working directly with the API - not through scripting).
    I looking for ideas to try...
    Ian

    Hi Ole, thanks for the reply.
    I am aiming to manipulate XML using standard javascript functions - nothing directly to do with indesign, though other parts of the script does interact with it.  Basically the scripts allow a user to set some configuration options and that is in an XML string format (if it was the indesign XML Hierarchy XMLElements, etc I'm pretty sure I could get things to work - worst case I could add to the scripting support in a plugin and make it work...).
    I had an idea (driving home after a frustrating day), Since the XML I'm processing is small, I can move forward by crudely making a string from the XML object, inserting the attribute into the string and then re-new'ing the XML object.  With large comments about why - unless someone can come up with a reason/fix for the javascript-XML not working (I suppose it may just be the number of InDesign/Extendscript versions I have installed - CS2/CS3/CS4, indesign and server).
    Ian

  • Problem with generating xml and nested cursor (ora-600)

    I have a problem with generating xml (with dbms_xmlquery or xmlgen) and nested cursors.
    When I execute the following command, I get a ORA-600 error:
    select dbms_xmlquery.getxml('select mst_id
    , mst_source
    , cursor(select per.*
    , cursor(select ftm_fdf_number
    , ftm_value
    from t_feature_master
    where ftm_mstr_id = pers_master_id ) as features
    from t_person per
    where pers_master_id = mst_id ) as persons
    from f_master
    where mst_id = 3059435')
    from dual;
    <?xml version = '1.0'?>
    <ERROR>oracle.xml.sql.OracleXMLSQLException: ORA-00600: internal error code, arguments: [kokbnp2], [1731], [], [], [], [], [], []
    </ERROR>
    The problem is the second cursor (t_feature_master).
    I want to generate this:
    <master>
    <..>
    <persons>
    <..>
    <features>
    <..>
    </features>
    </persons>
    <persons>
    <..>
    <features>
    <..>
    </features>
    </persons>
    </master>
    If i execute the select-statement in sql-plus, then I get the next result.
    MST_ID MST_SOURCE PERSONS
    3059435 GG CURSOR STATEMENT : 3
    CURSOR STATEMENT : 3
    PERS_MASTER_ID PERS_TITLE PERS_INITI PERS_FIRSTNAME PERS_MIDDL PERS_LASTNAME
    3059435 W. Name
    CURSOR STATEMENT : 15
    FTM_FDF_NUMBER FTM_VALUE
    1 [email protected]
    10 ....
    I use Oracle 8.1.7.4 with Oracle XDK v9.2.0.5.0.
    Is this a bug and do somebody know a workaround?

    Very simple...Drop all type objects and nested tables and create them again. You will get no error. I'll explain the reason later.

  • Default xml namespace and attributes

    Hi,
    I was trying to use default xml namespaces, but came upon something strange.
    I got the following piece of xml:
    <animal type="sheep" xmlns="http://blabla">
        <name>josh</name>
        <age>2</age>
    </animal>
    and the following code
    public static var ns:Namespace = new Namespace("http://blabla");
    var xml:XML; // xml will be read into this var, not going into details here
    public function myfunc():void {
      default xml namespace = ns;
      trace(  xml.animal.@type );
    now for some reason, the elements are correctly traversed using the default namespace. But the attribute isn't found. After a bit of debugging, I found that I could only retrieve the attribute when using xml.animal.attribute(new QName("", "type")). Am I doing something wrong here? Why isn't the attribute in the same default namespace as the element?
    Kind regards,
    Jan

    The attribute should be in the element's namespace. If I run this snippet on the timeline, it outputs the correct values.
    var xml:XML =
    <xml>
    <animal type="sheep" xmlns="http://blabla">
      <name>josh</name>
      <age>2</age>
    </animal>
    <animal type="cow" xmlns="http://blabla">
      <name>jim</name>
      <age>2</age>
    </animal>
    </xml>
    var ns:Namespace = new Namespace("http://blabla");
    default xml namespace = ns;
    trace( xml.animal.@type ); // OUTPUT: sheepcow

  • Element name and attribute completion in XML editor?

    With either WebLogic Workshop 9.2.2 or 10.x, is it possible to get completion assistance on elements and attributes? It works in the JSP editor, but I need to know whether this will work for XML documents. For some of these namespaces, they are defined in JSF taglibs.

    I tested this on an .xhtml doc. Right-clicking gives me these options:
    * HTML Editor
    * Text Editor
    * System Editor
    * In-Place Editor
    * Default Editor
    Is this perhaps a feature available in 10.1?

  • How to create a user using XML and specifying addional attributes that are objects

    I'm trying to create a user using XML and specifying some attributes that are objects and not sure how to do it. How would I set the DirectoryUserAcl to Public?
    Here's the xml file:
    <?xml version = '1.0' standalone = 'yes'?>
    <SimpleUser>
    <UserName>mike2</UserName>
    <Password>abc123</Password>
    <AdminEnabled>false</AdminEnabled>
    <HomeFolderRoot>/home</HomeFolderRoot>
    <HasContentQuota>false</HasContentQuota>
    <DirectoryUserAcl> ??? </DirectoryUserAcl>
    <DefaultAclBundleAcl> ??? </DefaultAclBundleAcl>
    <HomeFolderPolicyBundleAcl> ??? </HomeFolderPolicyBundleAcl>
    </SimpleUser>

    I figured out the answer:
    <?xml version = '1.0' standalone = 'yes'?>
    <SimpleUser>
    <UserName>mike2</UserName>
    <Password>abc123</Password>
    <AdminEnabled>false</AdminEnabled>
    <HomeFolderRoot>/home</HomeFolderRoot>
    <HasContentQuota>false</HasContentQuota>
    <DirectoryUserAcl classname="SystemAccessControlList" refType="name">Public</DirectoryUserAcl>
    </SimpleUser>
    null

  • OC4J orion-application.xml - elements and attributes

    Hi. i read in oracle docs sentense like this: "Each property maps to an element attribute in the orion-application.xml descriptor." These properties are from deployment plan and i need to know what is the name of the element in orion-application.xml wich is mapped to webSiteBinding property (from deployment plan).

    I just did a quick test of this, and it seems to work for me.
    I used the following XML:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <Employees xmlns="
    http://www.foo.com/Employees">
    <Employee Id="001">
    <LastName>Davis</LastName>
    <FirstName>Kirk</FirstName>
    </Employee>
    <Employee Id="002">
    <LastName></LastName>
    <FirstName>James</FirstName>
    </Employee>
    <Employee Id="003">
    <FirstName>Anthony</FirstName>
    </Employee>
    <Employee>
    </Employee>
    </Employees>
    With the XPath "/Employees/Employee" I got rows in the data
    set and things displayed fine in my page. Changing it to
    "/employees/employee" caused the data set to have no rows which I
    would expect since things should be case sensitive.
    Can you provide me with some sample XML and XPath that
    doesn't work?
    Thanks!
    --== Kin ==--

  • Producing nested xml with querying attributes from a nested table

    How can one produce nested xml querying columns from a nested table? Looking at the object documentation, I can readily unnest the tables. Using your examples in the book, unnesting is select po.pono, ..., l.* from purchaseorder_objtab po, table (po.lineitemlist_ntab) l where l.quantity = 2;
    what if I don't want to unnest and don't want a cursor. I would like to produce nested xml.

    Gail,
    Although you can use XSU (XML-SQL Util) in 8.1.7, I would recommend that you upgrade to 9i for much better support (both in functionality and performance) of XML in the database. For example, in Oracle9i there are:
    - a new datatype - XMLType for storing and retrieving XML documents
    - DBMS_XMLGEN package and SYS_XMLGEN, SYS_XMLAGG functions for generating XML document from complex SQL queries
    - A pipelined table function to break down large XML documents into rows.
    You can check out some examples using SYS_XMLGEN and DBMS_XMLGEN for your specific needs at http://download-west.oracle.com/otndoc/oracle9i/901_doc/appdev.901/a88894/adx05xml.htm#1017141
    Regards,
    Geoff

  • Populating Spry Table using button action and Nested XML

    Ah, yet another question.
    So I have a catalog page with a Spry repeating table. The XML
    has 2 sets of nodes -- one for outfits and one for line sheets (the
    technical drawings for clothes). What i want to do is have the
    outfits show and populate the table to start off with, but
    re-populate with the line sheet info if a user clicks on a button.
    currently the page is set up and works perfectly by sucking
    in the XML and populating the table. What I can't seem to do is get
    the button (when clicked) to switch the outfit info with the line
    sheet info.
    I have the following
    // javascript:
    var siracusafall08 = new
    Spry.Data.XMLDataSet("fall_collection.xml",
    "collection/siracusa/outfits", { filterFunc: MyPagingFunc });
    var siracusaLS = new
    Spry.Data.NestedXMLDataSet(siracusafall08, "linesheet",
    {filterFunc:MyPagingFunc });
    siracusafall08.setColumnType("photoURL", "image");
    siracusafall08.setColumnType("lrgphoto", "image");
    var pageOffset = 0;
    var pageSize = 1;
    var pageStop = pageOffset + pageSize;
    //var dssiracusafall08 = new
    Spry.Data.XMLDataSet("fall_collection.xml", "collection/outfits", {
    filterFunc: MyPagingFunc });
    function MyPagingFunc(ds, row, rowNumber)
    if (rowNumber < pageOffset || rowNumber >= pageStop)
    return null;
    return row;
    function chooseLS()
    // no idea what to put here...
    function UpdatePage(offset)
    var numRows = siracusafall08.getUnfilteredData().length;
    if (offset > (numRows - pageSize))
    offset = numRows - pageSize;
    if (offset < 0)
    offset = 0;
    pageOffset = offset;
    pageStop = offset + pageSize;
    // Re-apply our non-destructive filter on dsStates1:
    siracusafall08.filter(MyPagingFunc);
    html
    <div spry:region="siracusafall08">
    <table>
    <tr spry:repeatchildren="siracusafall08">
    <td valign="top">{name}<br />{desc}</td>
    <td rowspan="8" valign="top" width="300"><img
    src="imx/{photoURL}"/></td>
    </tr>
    <tr spry:repeatchildren="siracusafall08">
    <td valign="top">{SKU1}<br />{SKU2}<br
    />{SKU3}</td>
    </tr>
    <tr spry:repeatchildren="siracusafall08">
    <td valign="top"><a href="imx/{lrgphoto}"
    target="_blank">enlarge</a></td>
    </tr>
    <tr spry:repeatchildren="siracusafall08">
    <td valign="top"><input type="image"
    src="../../imx/back.gif" onclick="UpdatePage(pageOffset -
    pageSize);" />
    <input type="image" src="../../imx/next.gif"
    onclick="UpdatePage(pageOffset + pageSize);" /><br
    /><br /><input type="button" value="filter"
    onclick="chooseLS();" /></td>
    </tr>
    <tr>
    <td height="200"> </td>
    </tr>
    </table>
    </div>
    XML
    <collection>
    <siracusa>
    <outfits>
    <photoURL>6648sm.jpg</photoURL>
    <lrgphoto>6648lg.jpg</lrgphoto>
    <SKU1>JS271SM</SKU1>
    <SKU2>PN109SM</SKU2>
    <SKU3></SKU3>
    <name>Siracusa Micro Crepe</name>
    <desc>Chestnut, Moss, Redwood, Black</desc>
    </outfits>
    <outfits>
    <photoURL>5237sm.jpg</photoURL>
    <lrgphoto>5237lg.jpg</lrgphoto>
    <SKU1>JS272SM</SKU1>
    <SKU2>LTK121SM</SKU2>
    <SKU3>PW112SM</SKU3>
    <name>Siracusa Micro Crepe</name>
    <desc>Chestnut, Moss, Redwood, Black</desc>
    </outfits>
    <outfits>
    <photoURL>5540sm.jpg</photoURL>
    <lrgphoto>5540lg.jpg</lrgphoto>
    <SKU1>JS272SM</SKU1>
    <SKU2>LTK121SM</SKU2>
    <SKU3>PW112SM</SKU3>
    <name>Siracusa Micro Crepe</name>
    <desc>Chestnut, Moss, Redwood, Black</desc>
    </outfits>
    <outfits>
    <photoURL>6276sm.jpg</photoURL>
    <lrgphoto>6276lg.jpg</lrgphoto>
    <SKU1>JL258SM</SKU1>
    <SKU2>PN100SM</SKU2>
    <SKU3></SKU3>
    <name>Siracusa Micro Crepe</name>
    <desc>Chestnut, Moss, Redwood, Black</desc>
    </outfits>
    <linesheet>
    <photoURL>5540sm.jpg</photoURL>
    <lrgphoto>5540lg.jpg</lrgphoto>
    <SKU1>JS128SM</SKU1>
    <SKU2>Mandarin collar jacket with box pleat
    cuff</SKU2>
    <SKU3>XS-XL</SKU3>
    <name>Siracusa Micro Crepe</name>
    <desc>Chestnut, Moss, Redwood, Black</desc>
    </linesheet>
    </siracusa>
    </collection>
    There's nothing in the documentation about using a button to
    repopulate a table. the Nested XML Data Sample page in the Spry
    documentation has been helpful in the past however this is more of
    a switch / toggle situation and frankly that kind of coding is a
    bit beyond my fine arts-trained skills.
    Any suggestions are greatly appreciated!

    Hi Bit Crusher,
    Sorry for the delayed response ...
    Looking at your setup, you can get rid of most of the code in
    collection.js since you are using a pageSize of 1 ... if displaying
    only one row of a data set is all you ever need, then you can get
    the equivalent functionality by just using a spry:detailregion and
    a couple of prev()/next() functions. For example:
    <script type="text/javascript">
    var siracusafall08 = new
    Spry.Data.XMLDataSet("fall_collection.xml",
    "collection/siracusa/outfits");
    siracusafall08.setColumnType("photoURL", "image");
    siracusafall08.setColumnType("lrgphoto", "image");
    var crepesfall08 = new
    Spry.Data.XMLDataSet("fall_collection.xml",
    "collection/crepes/outfits");
    crepesfall08.setColumnType("photoURL", "image");
    crepesfall08.setColumnType("lrgphoto", "image");
    function DSPrev(ds)
    var curRowNum = ds.getCurrentRowNumber();
    if (--curRowNum >= 0)
    ds.setCurrentRowNumber(curRowNum);
    function DSNext(ds)
    var curRowNum = ds.getCurrentRowNumber();
    if (++curRowNum < ds.getRowCount())
    ds.setCurrentRowNumber(curRowNum);
    </script>
    <div spry:detailregion="siracusafall08">
    </div>
    <div spry:detailregion="crepesfall08">
    </div>
    After you've simplified all that, the next thing I would do
    to get your linesheet switching working is to use "states". Take a
    look at these samples:
    http://labs.adobe.com/technologies/spry/samples/data_region/RegionStatesSample.html
    http://labs.adobe.com/technologies/spry/samples/data_region/StateMappingSample.html
    The first link is some basic background on states, but what
    should be of interest to you is the 2nd sample. What I would do is
    have a "styles" and a "linesheet" state in my region.
    Also since you are using nested XML data, you will need to
    access your <linesheet> data with a NestedXMLDataSet:
    http://labs.adobe.com/technologies/spry/samples/data_region/NestedXMLDataSample.html#Using NestedDataSets
    http://labs.adobe.com/technologies/spry/samples/data_region/NestedDataSample.html
    --== Kin ==--

  • Working With Nested XML Data

    Hello,
    I'm doing my best to create a page in Dreamweaver CS4 utilizing Spry datasets and, I hope, a valid nested XML file. What I want to do is use one XML file that provides the content for my nav div and my content div. It would, in essence, display as an outline. When a user clicks on an item in the nav div the content would be displayed. What I'm guessing would work for the XML file would be this format:
    <content>
      <topic name="Elements">   //--this would serve as the nav element and trigger
        <header>Non-editable</header>   //--this would serve as a header in the content area
        <info>
          <detail id="1">CSS, javascript</detail>   //--this would serve as detail under the headers in the content area.
          <detail id="2">Headers</detail>
          <detail id="3">Footers</detail>
          <detail id="4">Areas within navigation panel</detail>
        </info>
      </topic>
    </content>
    I got the idea from this page in Live Docs: Create a Spry nested data set. Also from a Labs page called Nested XML Data Sample. I've been able to make various parts of the page work but I don't know what is broken. My issues are this:
    I once saw but can no longer find a method for preventing redundant display of data. In this case, the nav elements which are attributes in my XML file.
    The details are showing up in my content area. I must be doing the code for the nesting incorrectly.
    I want to then use the details in the content area to trigger spry tooltips, the content for whih would be genereated from an XML file or HTML frags.
    Here is my latest, ill-fated attempt:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Menu - Content Example</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    <script src="SpryAssets/SpryNestedXMLDataSet.js" type="text/javascript"></script>
    <script src="SpryAssets/xpath.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryData.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryStackedContainers.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
    <!--
    var dsContent5 = new Spry.Data.XMLDataSet("navigation/content5.xml", "content/topic", {useCache: false});
    var dsInfo = new Spry.Data.NestedXMLDataSet(dsContent5, "info/detail");
    //-->
    </script>
    </head>
    <body>
    <div id="wrapper">
      <div id="header">
        <h1>CSU Website Clinic</h1>
        <h3>Bill Milhoan, IS&amp;T Technical Trainer</h3>
      </div>
      <div id="content" spry:region="dsInfo">
        <ul spry:repeatchildren="dsInfo">
          <li>{dsContent5::info}</li>
        </ul>
      </div>
      <div class="nav" spry:region="dsContent5">
        <ul spry:repeatchildren="dsContent5" spry:choose="">
          <li spry:when="{dsContent5::ds_CurrentRowID} == {dsContent5::ds_RowID}" spry:setrow="dsContent5" spry:select="select" spry:hover="hover" spry:selected="">{dsContent5::@name}</li>
          <li spry:default="" spry:setrow="dsContent5" spry:select="select" spry:hover="hover">{dsContent5::@name}</li>
        </ul>
      </div>
    </div>
    </body>
    </html>
    Thoughts? My hope is to distill this process so I can teach others how to do it in the hopes that they will find it easier to keep their department/program websites up-to-date.
    Thanks for the help.
    Bill Milhoan
    Cleveland State University

    I apologize, im using Spry XML Data Set. i guess the best way to describe what im trying to do is, i want to use the Non-desctructive filter sample with the Spry Nested XML Data sample. So with my sample xml on my first post and with the same code non-destructive filter is using, im having trouble trying to search repeating nodes, for some reason it only searches the last node of the repeating nodes. Does that make sense? let me know.
    thank you Arnout!

  • Parsing XML and Storing values in instance variable

    hi,
    i'm new to XML.
    here i'm trying to parse an XML and store their element data to the instance variable.
    in my main method i'm tried to print the instance variable. but it shows "" (ie it print nothing ).
    i know the reason, its becas of the the endElement() event generated and it invokes the characters() and assigns "" to the instance variable.
    my main perspective is to store the element data in instance variable.
    thanks in advance.
    praks
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    public class mysax extends DefaultHandler
         String ctelement;
         CharArrayWriter contents;
         String vname1,vrcbreg1,vaddress1,vcountry1,vtelephone1,vfax1;
         String vname,vrcbreg,vaddress,vcountry,vtelephone,vfax;
         public mysax()
              vname1 = null;
              vrcbreg1 = null;
              vaddress1 = null;
              vcountry1 = null;
              vtelephone1 = null;
              vfax1 = null;
              contents= new CharArrayWriter();
         public void doparse(String url) throws Exception
              SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();
    ParserAdapter pa = new ParserAdapter(sp.getParser());
    pa.setContentHandler(this);
    pa.parse(url);          
         public void startElement(String namespace,String localName,String qName,Attributes atts)
              ctelement = localName;     
         public void endElement(String uri,String localName,String qName) throws SAXException
         public void characters(char[] ch,int start, int length) throws SAXException
              try
                   if(ctelement.equals("name"))
                        vname = new String (ch,start,length);
                        System.out.println("The method "+vname1);
              }catch (Exception e)
                   System.out.println("The exception "+e);
         public static void main(String args[])
              try
              mysax ms = new mysax();
              ms.doparse(args[0]);
              System.out.println("the contents name "+ms.vname1);
              catch(Exception e)
                   System.out.println("this is exception at main" +e);
    my XML looks like
    <coyprofile_result>
    <company>     
    <name>abcTech</name>
    <rcbreg>123456789</rcbreg>
    <address>Singapore</address>
    <country>sg</country>
    <telephone>123456</telephone>
    <fax>123155</fax>
    </company>
    </coyprofile_result>

    I believe that the problem has to do with the value you assign to ctelement. You are assigning the value of localName to ctElement, however for the element: <name>...</name> the localname is empty string i.e. "", but qName equals "name". Because you are assigning empty string to ctElement, when you do the comparison in characters of ctElement to "name" it will always be false. So in startElement change it to ctElement = qName; Try it and see if it works. I have produced similar programs and it works for me.
    Hope this helps.

  • Spry Menu Using Nested XML Dataset (Spry 1.6)

    I have a vertical menu with a few items. One of which is
    labeled Products which has submenus. I want to have that submenu
    read from a Nested XML dataset. Using a single dataset for one
    level in a menu is easy enough, but the subenu will have submenus.
    Example Menu:
    Home
    Company
    Products
    |-- Product 1
    |-- Item 1
    |-- Item 2
    |-- Item 3
    |-- Product 2
    |-- Item 1
    |-- Item 2
    |-- Product 3
    |-- Item 1
    |-- Item 2
    |-- Item 3
    |-- Item 4
    |-- Product 4
    |-- Item 1
    |-- Item 2
    |-- Product 5
    I have been looking for an easy way to use the Spry Nested
    XML Dataset to create the Product/Item menu. The number of Products
    may vary as well as the number of Items in each Product submenu
    (also, some Products may not have Items).
    I already have an ASP page that creates the XML data from a
    database.
    Schema follows (XSD ):
    <?xml version="1.0" encoding="utf-8"?>
    <xsd:schema xmlns:xsd="
    http://www.w3.org/2001/XMLSchema">
    <xsd:element name="products">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="product_type"
    maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="type_name" maxOccurs="1"
    type="xsd:string"/>
    <xsd:element name="type_url" maxOccurs="1"
    type="xsd:anyURI"/>
    <xsd:element name="product_name"
    maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="item_name" maxOccurs="1"
    type="xsd:string"/>
    <xsd:element name="item_url" maxOccurs="1"
    type="xsd:anyURI"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    I have been programming for 17 years but am new to Spry. If
    this cannot be done easily with the Spry framework, I'll probably
    wind up splitting the XML data into 2 files (Products and Items)
    then writing a nested loop and call each by row, but then I have to
    find out how Spry Datasets reference XML data. Figuring out how to
    call rows from the XML data shouldn't be so bad, but this method
    just seems like such a hassle for something that should be easy.
    Pseudocode follows:
    j=1
    i=1 to TotalNumberProducts
    display Product i from Products
    ItemsExist=true
    While ItemsExist
    if j > TotalNumberItems | Item j is not for Product then
    ItemsExist=false
    else
    display Item j from Items
    j++
    Wend
    Next
    Thanks in advance for any help or direction!

    That's exactly what I'm trying to do. However, I implemented
    that code and the submenus won't appear. I suspect the submenus
    aren't finding the field names from the Nested XML Dataset. The
    first level of Product menus work great (this is a submenu of the
    overall menu) and correctly identify products that do not have
    submenus, so I know it's picking up the number of records in the
    Nested Dataset correctly - it just won't display the data in the
    next level of menu.
    variable and script declarations:
    <script src="SpryAssets/SpryMenuBar.js"
    type="text/javascript"></script>
    <script src="SpryAssets/xpath.js"
    type="text/javascript"></script>
    <script src="SpryAssets/SpryData.js"
    type="text/javascript"></script>
    <script src="SpryAssets/SpryNestedXMLDataSet.js"
    type="text/javascript"></script>
    <link href="SpryAssets/SpryMenuBarVertical.css"
    rel="stylesheet" type="text/css">
    <script type="text/javascript">
    <!--
    var productMenuData = new
    Spry.Data.XMLDataSet("products.asp", "products/product_type");
    var productMenuDataItems = new
    Spry.Data.NestedXMLDataSet(productMenuData, "product_name");
    //-->
    </script>
    Code for menus:
    <ul id="NavMenu" class="MenuBarVertical">
    <li><a
    href="index.html">Home</a></li>
    <li><a
    href="company.html">Company</a></li>
    <li><a href="franco_giberti.html">Franco
    Giberti</a></li>
    <li><a class="MenuBarItemSubmenu"
    href="products.asp">Products</a>
    <ul spry:region="productMenuData
    productMenuDataItems">
    <li spry:repeat="productMenuData"><a
    class="MenuBarItemSubmenu" href="{type_url}"
    spry:if="{productMenuDataItems::ds_RowCount} !=
    0">{type_name}</a> <a href="{type_url}"
    spry:if="{productMenuDataItems::ds_RowCount} ==
    0">{type_name}</a>
    <ul spry:if="{productMenuDataItems::ds_RowCount} !=
    0">
    <li spry:repeat="productMenuDataItems"><a
    href="{productMenuDataItems::item_url}">{productMenuDataItems::item_name}</a></li>
    </ul>
    </li>
    </ul>
    </li>
    <li><a href="contact.html">Contact Us</a>
    <!-- end #sidebar1 -->
    </li>
    </ul>
    XML:
    <products
    xsi:noNameSpaceSchemaLocation="products.xsd">

    <product_type>
    <type_name>Pasta Sauce</type_name>
    <type_url>pt_2.asp</type_url>

    <product_name>
    <item_name>Putenesca</item_name>
    <item_url>pn_3.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Arrabiata</item_name>
    <item_url>pn_4.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Pesto</item_name>
    <item_url>pn_5.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Basil and Tomato</item_name>
    <item_url>pn_6.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Bolognese</item_name>
    <item_url>pn_7.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Carboniera</item_name>
    <item_url>pn_8.asp</item_url>
    </product_name>
    </product_type>
    +
    <product_type>
    <type_name>Organic Olive Oil</type_name>
    <type_url>pt_3.asp</type_url>

    <product_name>
    <item_name>Original</item_name>
    <item_url>pn_9.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Basil</item_name>
    <item_url>pn_10.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Herbs</item_name>
    <item_url>pn_11.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Sun Dried Tomato</item_name>
    <item_url>pn_12.asp</item_url>
    </product_name>
    </product_type>
    +
    <product_type>
    <type_name>Organic Spreads</type_name>
    <type_url>pt_4.asp</type_url>

    <product_name>
    <item_name>Putenesca</item_name>
    <item_url>pn_13.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Arrabiata</item_name>
    <item_url>pn_14.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Pesto</item_name>
    <item_url>pn_15.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Basil and Tomato</item_name>
    <item_url>pn_16.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Bolognese</item_name>
    <item_url>pn_17.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Carboniera</item_name>
    <item_url>pn_18.asp</item_url>
    </product_name>
    </product_type>
    +
    <product_type>
    <type_name>Organic Grilled Vegetables</type_name>
    <type_url>pt_5.asp</type_url>

    <product_name>
    <item_name>Putenesca</item_name>
    <item_url>pn_19.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Arrabiata</item_name>
    <item_url>pn_20.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Pesto</item_name>
    <item_url>pn_21.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Basil and Tomato</item_name>
    <item_url>pn_22.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Bolognese</item_name>
    <item_url>pn_23.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Carboniera</item_name>
    <item_url>pn_24.asp</item_url>
    </product_name>
    </product_type>

    <product_type>
    <type_name>Truffle Products</type_name>
    <type_url>pt_6.asp</type_url>
    </product_type>
    </products>
    Any further guidance would be very much appreciated!

  • How to construct the where clause for a nested xml target file

    Post Author: jlpete72
    CA Forum: Data Integration
    I'm having some problems getting the desired results creating a multi-level nested xml file.  Specifically, it does not seem that the where clause in the child schemas respects values from parent schemas.  I'm sure I'm constructing something incorrectly, but am running out of ideas. 
    I am working with the classic company/order/line hierarchy and there are three levels of output schemas in my target xml file, one for company, order header and order line information.
    For testing, I have hardcoded a restriction at the order header line to deal with only one order.  But unless I hardcode values into the where clause at the order line level of the schema, all values are returned for orders belonging to the company defined in the company level.
    I'm trying a where clause at the order line level similar to:
    order_line.customer = order_header.customer and order_line.order_num = order_header.order_num
    If the customer has more than one order in the data file, then all orders for that customer are placed in the detail for the order header.  Only if I hard code the order number in the where clause do I get only the lines for the order specified in the header section.  Not very practical. 
    What am I missing?

    An External Parsed Entity could be used to reference a schema.
    In your DTD:
    <!ENTITY datamodules SYSTEM "file:///c:/Datamodules/Datamodules.xsd">
    Refer the external entity in xml document:
    <datamodules>&datamodules;</datamodules>

Maybe you are looking for

  • Itunes 10.5.3 crashes on startup in Lion 10.7.3

    Hey so my itunes library is on a external harddrive. When I launch itunes it starts normaly but crashes within second of being open. I'm pasting the crash log below.  I think it may be a issue with the library file. Any insite would be greatly apprec

  • Itunes no longer auto syncs when I plug in Ipod???

    Suddenly my Itunes is not recognizing my Ipod when I plug it in, therefore it won't sync my ipod. I tried my roomates cord and nothing, so thats not it. Any suggestions

  • Differences between left join in oracle8 style and oracle10g style

    Hi, I need some help to figure out what impact can be, on a product, the migration of query left join syntax from the Oracle8 one to the Oracle10g: we have a product that uses Hibernate configured to use the Oracle8 dialect to perform queries which u

  • Looking for Directory structure

    Hi i am new bie to Tomcat . i was wondering if some explain me the directory structure for a web Application. like where to put the HTML files and where to put the Java classes and where to keep the JSP and what is the Importance of WEB-INF dir Thank

  • Play animation in reverse

    Hey. Im a total noob at actionscript and flash so please explain to me like I´m a seven year old! I made a flash banner that includes a videofile and some vector animations. I would like this banner to play from fram 1 to the last fram and then rever