Sorry, hit the send button to early:---

again: you should be able to use the DOM API to read the values. In set()
you should check whether the value is a DOM node:

import import org.w3c.dom.Node;
...
...
public void set(String name, Object value) {

        if (value instanceof Node) {
            Node nodeValue = (Node) value;


         // now you can use the DOM API to read the children of your node
         // http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/Node.html
         //
         // e.g. nodeValue.getAttributes() to read the attributes.
        ...
       }
    ....
  }
I haven't tried this code. But hope this helps.-- Ingmar.

2009/5/5 Linda Erlenhov <linda.erlen...@gmail.com>

> Hello.
> I´m back with another thousand questions!
>
> Still with my datamodel like this:
> ------------------------------------
> <scxml version="1.0" initialstate="176" xmlns:cs="
> http://commons.apache.org/scxml"; xmlns="http://www.w3.org/2005/07/scxml";>
>
> <datamodel>
> <data name="DynamicData">
> <Data_1 xmlns="" id="1" type="Integer">0</Data_1>
> <Data_2 xmlns="" id="2" type="Integer">0</Data_2>
> <Data_3 xmlns="" id="3" type="String">none</Data_2>
> </data>
> <data name="DDChange"/>
> <data name="DDValue"/>
> <data name="DDType"/>
> <data name="Indication_1" expr="false"/>
> </datamodel>
> .......................................snip.......
> Later on i set the data:
> ...........................................snip.....
> <state id="StateB">
> <onentry>
> <log label="Renegade" expr="'Entering state: StateB'"/>
> <log label="Renegade" expr="Data(DynamicData,'Data_1')"/>
> <assign location="Data(DynamicData,'Data_1')"
> expr="Data(DynamicData,'Data_1')+1"/>
> <assign name="DDValue" expr="Data(DynamicData,'Data_1')"/>
> <assign name="DDChange" expr="'Data_1'"/>
> <log label="Renegade" expr="Data(DynamicData,'Data_1')"/>
>
> </onentry>
> ..........snip--------------------
>
> So now here´s the problem.
>
> As you see I haven´t used the custom action, but an rather ugly hack where
> I
> do an assign name after I do the assign location to trigger a call to the
> "set" function in the context.
>
> In this version I also do another assign where I assign another name with
> the value. All my data are named Data_XX so i screen the calls to set byt
> looking for the ones that are named Data_XX. When I recieve a call for
> Data_XX I would like to know what the value is, which I in this case have
> solved by assigning another variable with it earlier, when i get a "set"
> call named Data_xx i know that the variable DDValue contains the value of
> this data. Not pretty, but OK and working so far.
> Now I would like to be able to see what "type" the data is aswell. How do I
> do that? And: Is there a less spaghetti way to poll the value of the data
> from where I am (In the context) when I have the "name" of it. (The name in
> this case is Data_1, Data_2 or Data_3, I also know that the data=name is
> DynamicData) .
>
> Due to lack of time I would prefer if i wouldn´t have to "redo" to much of
> the scxml, but is this possible to do it my way otherwise? Or do I have to
> do it over.
>
> Best Regards
> //Linda
>

Reply via email to