<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Gerhard:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>The third parameter to your method call (after the session key and the method) is the specification of the fields that are wanted ( for proof of this,, look at the definition of getUserState in SessionFacade.pm). </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>The FieldsSpecification is a flexible way to specify exactly which components of a complex tree of objects that you want to retrieve in a given situation. The OME UserState (implemented in the database in the ome_sessions table) contains some basic information (an Id, a session-key, started and last accessed timestamps, etc.) along with references to items from other tables (group, experimenter, dataset, image, project, etc.) The fields specification criteria tells us which of the fields that we should retrieve, and which tables we should join in to retrieve requested values. In effect, the fields specification acts as both a project and a select off of the basic table that is requested.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>The "." notation specifies the top-level fields that should be retrieved: the columns from the table in question. In your example, we have a member with name "." and values "id" and "experimenter". This indicates that we should get the Id of the user state, and the experimenter along with that. If we had wanted (for example) the started timestamp as well, we would have specified "started" as an additional item in the array.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>The other element in the array - "experimenter" specifies the fields that we want to retrieve for the experimenter: in this case, just the id. We could have asked for the first name or last name of the experimenter by adding other fields. underneath experimenter.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>This can proceed in an arbitrarily complex fashion by adding dotted pair notation for further nesting. Thus, if i had asked for "dataset" under the ".", i would have had a top-level member named "dataset", which might have had fields like "id" and "owner".  i might then have had another top-level entry called "dataset.owner", which would ask for "id" "first name", "last name', etc.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>This may be a somewhat cryptic set of conventions, but it's very flexible and powerful.  if you have any further questions, please ask. </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>You might also consider looking at some useful notes on the remote framework, at <A href="http://www.openmicroscopy.org/api/remote/transfer.html">http://www.openmicroscopy.org/api/remote/transfer.html</A></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>best,</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>harry</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR><DIV><DIV>On Oct 12, 2005, at 6:39 AM, gerhard wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite">  <P><FONT size="2">One more question to  XML-RPC:</FONT> </P><P><FONT size="2">I have the following code:</FONT> </P><P><FONT size="2">&lt;value&gt;getUserState&lt;/value&gt;&lt;/param&gt;</FONT> <BR><FONT size="2">&lt;param&gt;</FONT> <BR><FONT size="2">&lt;value&gt;</FONT> <BR><FONT size="2">&lt;struct&gt;</FONT> <BR><FONT size="2">      &lt;member&gt;&lt;name&gt;experimenter&lt;/name&gt;&lt;value&gt;&lt;array&gt;&lt;data&gt;&lt;value&gt;id&lt;/value&gt;&lt;value&gt;Group&lt;/value&gt;&lt;value&gt;FirstName&lt;/value&gt;&lt;value&gt;LastName&lt;/value&gt;&lt;/data&gt;&lt;/array&gt;&lt;/value&gt;&lt;/member&gt;</FONT></P><P><FONT size="2">      &lt;member&gt;&lt;name&gt;.&lt;/name&gt;&lt;value&gt;&lt;array&gt;&lt;data&gt;&lt;value&gt;experimenter&lt;/value&gt;&lt;/data&gt;&lt;/array&gt;&lt;/value&gt;&lt;/member&gt;</FONT> <BR><FONT size="2">&lt;/struct&gt;&lt;/value&gt;&lt;/param&gt;</FONT> <BR><FONT size="2">&lt;/params&gt;</FONT> <BR><FONT size="2">&lt;/methodCall&gt;</FONT> </P> <BR><P><FONT size="2">So if anyone can explain the meaning of the two members in the struct. I</FONT> <BR><FONT size="2">know that these lines are what I want to get. But especially the second</FONT> <BR><FONT size="2">member with the point is confusing for me. So if anyone can  explain it</FONT> <BR><FONT size="2">in detail.</FONT> </P><P><FONT size="2">Thanks very much</FONT> <BR><FONT size="2">gerhard</FONT> </P>  </BLOCKQUOTE></DIV><BR></BODY></HTML>