# xf:get-namespace-from-QName

Extracts the namespace URI from $QName-var.

A QName (qualified name) is made up of a namespace name and a local part. The namespace name is the URI associated with the prefix of a namespace declaration.

If the value of $QName-var is the empty sequence, the empty sequence is returned. The empty sequence is a sequence containing zero items (), which is similar to null in SQL.

If a QName is not passed into $QName-var, the following error is displayed in the mapper:

    Error occurred while executing XQuery: Error loading the XQuery or XSLT for this method:
    Type error in function get-namespace-from-QName invocation:
    expected type [QName@http://www.w3.org/2001/XMLSchema]?,
    given type [string@http://www.w3.org/2001/XMLSchema]

### Signatures

xf:get-namespace-from-QName(xs:QName? $QName-var) —> xs:anyURI?

### Arguments

Data Type | Argument | Description
--- | --- | ---
xs:QName | $QName-var | Represents the QName to extract from.

### Returns

Returns the URI (of data type anyURI) of the namespace in $QName-var.

### Examples

#### Simple

The following XML document defines the namespace called xacme:

    <?xml version='1.0'?>
    <mydoc xmlns:xacme="http://www.acme.com/foo">
    	<xacme:n/>
    </mydoc>

The preceding XML Document associates the namespace prefix xacme to the URI: http://www.acme.com/foo. The string xacme:n is qualified name for the URI/local name pair: ("http://www.acme.com/foo", "n").

The following example query calls the get-namespace-from-QName function:

    let $a := <mydoc xmlns:xacme="http://www.acme.com/foo"> <xacme:n/> </mydoc>
    	return
    	<name>{
    		xf:get-namespace-from-QName(xf:node-name($a/*[1]))
    	}</name>

The preceding query generates the following result:

    <name>http://www.acme.com/foo</name>

Related Topics

W3C get-namespace-from-QName function description.