This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: [ nodeset equivalence in intersection extension functions/elements ]


> Mike Kay's book states: "2 node-sets are equal (returns true in an
> expression) if there is a pair of nodes, one from each 
> node-set, that have the same string value"
> 
> This definition to me is confusing since sometimes we want 
> only the nodes
> with same "nodeName", attribute lists and string-value to be 
> considered equal.

I don't think you find the definition confusing, you just wish it was
different!

> In other words, I want strict equivalence. Sample below illustrates -

"strict" implies a value judgement. You just want a boolean function that
compares two nodes and has different semantics from the XPath "=" operator.
Which is fair enough.

> Contrast this to the intersection() extension element from 
> xt. In this case,
> even the hierachy of childnodes below an element must be 
> equivalent (in
> addition to equivalent nodenames, attribute values etc...)

I suspect you will find that the intersection function in xt works like the
union operator, it compares nodes for identity, not for any kind of
"equivalence". Two nodes A and B are identical if count(A|B)=1. 

You can do a set intersection, as defined here, in standard XPath by writing

$A[count(.|$B) = count($B)]

Mike Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]