home contribute faq download

FunctX XQuery Functions

functx:sequence-node-equal-any-order

Whether two sequences contain the same XML nodes, regardless of order

Google
Webxqueryfunctions.com

Description

The functx:sequence-node-equal-any-order function returns a boolean value indicating whether the two arguments have the same nodes, in any 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-any-order
  ( $seq1 as node()* ,
    $seq2 as node()* )  as xs:boolean {

  not( ($seq1 except $seq2, $seq2 except $seq1))
 } ;

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 ExampleResults
functx:sequence-node-equal-any-order(
     $in-xml/author, $in-xml/*)
true
functx:sequence-node-equal-any-order(
     $in-xml/author,
     ($in-xml/author[2],$in-xml/author[1]))
true
functx:sequence-node-equal-any-order(
     $in-xml/author[1],$anAuthor)
false

See Also

functx:sequence-node-equalWhether two sequences contain the same XML nodes, in the same order
functx:sequence-deep-equalWhether two sequences have the same XML node content and/or values

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