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 >