[no subject]

Element g contains h and i only, which are defined (result="true" in
both giving g's result attribute a value of true).
>>> correct

c,d,h,i are defined in the data.xml and therefore @complete="true".
Also they are the only childs of elements b and g, which means that b
and g are also complete.
>>> correct

The element f is not defined in the data.xml file, and it does not
have any children that are defined in the file. Therefore @result is
undefined (result=""). Nor is it complete (complete="false").
>>> correct - in this case the value of @result is not significant to me
because @complete="false".

Element e contains both f and g. It seems you do not AND result values
that are NULL (empty string), so e's attribute result="true". But
complete="false" because that is the value of f's complete attribute.
>>> correct - I made the decision that even if @complete="false", as long as
all descendants that have @complete="true" also have @result="true", then
the current node's @result value would be "true"

a contains b and e. Because @result is true in e but false in b and
visa versa for @complete, these attributes both become false in the
element a.
>>> correct

Have I understood your problem?
>>> very well, thank you - I tried to include all possible scenarios in as
short an example as possible.


Regards,
Ragulf Pickaxe :-)


On 4/20/07, Simon Shutter <simon@xxxxxxxxxxx> wrote:
> Dimitre,
>
> I believe I do know what the problem is and I'm sorry I've been unable to
> communicate it clearly enough in my previous posts.
>
> Let me try again.
>
> I have a known tree structure.  Let's say it's stored in a file tree.xml.
> It looks like this:
>
> <a>
>   <b>
>     <c/>
>     <d/>
>   </b>
>   <e>
>     <f/>
>     <g>
>       <h/>
>       <i/>
>     </g>
>   </e>
> </a>
>
> I have an application that generates boolean values (stored in an
attribute
> called "result") for a number of data elements.  The element names
> correspond to the leaf node elements in the tree structure above.  Let's
say
> they are are stored in a file data.xml that looks like this:
>
> <data>
>  <c result="true"/>
>  <d result="false"/>
>  <h result="true"/>
>  <i result="true"/>
> </data>
>
> Data.xml does not have to contain an element for each leaf node in the
> tree.xml.
>
> I am interested in constructing an output tree that has the same structure
> as the tree above based only on the leaf node data.  To prevent ambiguity
> there can only be one instance of each element in tree.xml.
>
> The idea is that if all descendants of a node have a result attribute =
> "true" then the result attribute value of that node is true also.  Ken
> identified this in his opening paragraph even though I didn't make it
clear.
>
> In addition to the logical AND calculation, I also want to indicate where
> leaf nodes are missing and that is where the "complete" attribute comes
in.
> So the output tree should indicate nodes that have missing descendants as
> well as the logical AND result.  In the example I used, the desired output
> tree is:
>
> <a complete="false" result="false">
>  <b complete="true" result="false">
>    <c complete="true" result="true"/>
>    <d complete="true" result="false"/>
>  </b>
>  <e complete="false" result="true">
>    <f complete="false" result=""/>
>    <g complete="true" result="true"/>
>      <h complete="true" result="true"/>
>      <i complete="true" result="true"/>
>    </g>
>  </e>
> </a>
>
> So in answer to your question, the element f can be absent from data.xml
but
> it needs to be in the output tree so it can identified as missing when the
> output tree is transformed to HTML.  That is why all the leaf nodes have a
> "complete" attribute.
>
> Perhaps it is my choice of attributes that has caused confusion here.
> Anyhow, I hope that this attempt to outline my requirements makes more
sense
> than the original post.
>
> Regards, Simon

Current Thread