home contribute faq download

FunctX XQuery Functions

functx:sequence-node-equal

Whether two sequences contain the same XML nodes, in the same order

Google
Webxqueryfunctions.com

Description

The functx:sequence-node-equal function returns a boolean value indicating whether the two arguments have the same nodes, in the same order. They are compared based on node identity, not their contents.

Arguments and Return Type

NameTypeDescription
$seq1 node()* the first sequence of nodes
$seq2 node()* the second sequence of nodes
return value xs:boolean

XQuery Function Declaration

See XSLT definition.
declare namespace functx = "http://www.functx.com";
declare function functx:sequence-node-equal
  ( $seq1 as node()* ,
    $seq2 as node()* )  as xs:boolean {

  every $i in 1 to max((count($seq1),count($seq2)))
  satisfies $seq1[$i] is $seq2[$i]
 } ;

Examples

let $in-xml :=
<authors>
   <author>
      <fName>Kate</fName>
      <lName>Jones</lName>
   </author>
   <author>
      <fName>John</fName>
      <lName>Doe</lName>
   </author>
</authors>
let $anAuthor :=
<author>
   <fName>Kate</fName>
   <lName>Jones</lName>
</author>
return
XQuery ExampleResultsExplanation
functx:sequence-node-equal(
     $in-xml/author/*, $in-xml/*/*)
true
functx:sequence-node-equal(
     $in-xml/author,
     ($in-xml/author[2],$in-xml/author[1]))
false
The order of the nodes is different.
functx:sequence-node-equal(
     $in-xml/author[1],$anAuthor)
false
Although the nodes have the same content, they are not the same node.

See Also

functx:sequence-deep-equalWhether two sequences have the same XML node content and/or values
functx:sequence-node-equal-any-orderWhether two sequences contain the same XML nodes, regardless of order

History

Published OnLast UpdatedContributor(s)
2006-06-272007-02-26Priscilla Walmsley, Datypic, pwalmsley@datypic.com, http://www.datypic.com
Datypic XQuery Services

Recommended Reading:

XQuery