home contribute faq download

FunctX XQuery Functions

functx:name-test

Whether a name matches a list of names or name wildcards

Google
Webxqueryfunctions.com

Description

The functx:name-test function tests a name against a list of names or name wildcards. Valid name wildcards are:

*, which matches all names

*:x, where x is a local name, which matches all names with that local name, in any namespace

p:*, where p is a prefix, which matches all names in the namespace associated with that prefix.

Arguments and Return Type

NameTypeDescription
$testname xs:string? the name to test
$names xs:string* the list of names or name wildcards
return value xs:boolean

XQuery Function Declaration

See XSLT definition.
XQuery Syntax for July 2004 - January 2007 (1.0):
declare namespace functx = "http://www.functx.com"; 
declare function functx:name-test 
  ( $testname as xs:string? ,
    $names as xs:string* )  as xs:boolean {
       
$testname = $names
or
$names = '*'
or
functx:substring-after-if-contains($testname,':') =
   (for $name in $names
   return substring-after($name,'*:'))
or
substring-before($testname,':') =
   (for $name in $names[contains(.,':*')]
   return substring-before($name,':*'))
 } ;
XQuery Syntax for May 2003:
declare namespace functx = "http://www.functx.com" 
define function name-test 
  ( $testname as xs:string? ,
    $names as xs:string* )  as xs:boolean {
       
$testname = $names
or
$names = '*'
or
functx:substring-after-if-contains($testname,':') =
   (for $name in $names
   return fn:substring-after($name,'*:'))
or
fn:substring-before($testname,':') =
   (for $name in $names[fn:contains(.,':*')]
   return fn:substring-before($name,':*'))
 }

Examples

let $in-xml :=
<pre:a xmlns:pre="ns1">abc</pre:a>
return
XQuery ExampleResults
functx:name-test(name($in-xml),('*'))
true
functx:name-test(name($in-xml),('pre:*'))
true
functx:name-test(name($in-xml),('*:a'))
true
functx:name-test(
   name($in-xml),('pre:a','pre:b'))
true
functx:name-test(
   name($in-xml),('a','b','c'))
false

Depends On

functx:substring-after-if-containsPerforms substring-after, returning the entire string if it does not contain the delimiter

History

Published OnLast UpdatedContributor(s)
2006-08-232007-02-26Priscilla Walmsley, Datypic, pwalmsley@datypic.com, http://www.datypic.com
Need XQuery Help?
D A T Y P I C
Training | Consulting | Development

XQuery by Priscilla WalmsleyGet the book!
XQuery by Priscilla Walmsley