home contribute faq download

FunctX XSLT Functions

functx:namespaces-in-use

A list of namespaces used in element/attribute names in an XML fragment

Google
Webxsltfunctions.com

Description

The functx:namespaces-in-use function returns a list of all the namespaces used in element and attribute names in the scope of $root. It does not include namespaces that are declared but not used, or ones that are used in names that are the content (as opposed to the names) of elements or attributes.

Arguments and Return Type

NameTypeDescription
$root node()? the root node to start from
return value xs:anyURI*

XSLT Function Declaration

See XQuery definition.
<xsl:function name="functx:namespaces-in-use" as="xs:anyURI*"
              xmlns:functx="http://www.functx.com">
  <xsl:param name="root" as="node()?"/>

  <xsl:sequence select="
   distinct-values(
      $root/descendant-or-self::*/(.|@*)/namespace-uri(.))
 "/>

</xsl:function>

Examples

<xsl:variable name="in-xml" as="item()*">
<authors xmlns="abc" xmlns:d="def">
   <author xmlns="ghi">
      <fName xmlns:x="xyz" x:attr="123">Kate</fName>
      <lName>Jones</lName>
   </author>
</authors>
</xsl:variable>
XPath ExampleResultsExplanation
functx:namespaces-in-use($in-xml)
(abc, ghi, xyz)
def is not listed because it is not used in any names

See Also

fn:namespace-uri-for-prefixThe namespace associated with a prefix, in the scope of an element
fn:in-scope-prefixesThe prefixes that are in scope for an element
fn:namespace-uriThe namespace URI of a node

History

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

Recommended Reading:

XQuery