iri-to-uri

Converts an IRI into a URI

Description

The fn:iri-to-uri function converts an IRI into a URI. URIs require that some characters be escaped with their hexadecimal Unicode code point preceded by the % character. This includes non-ASCII characters and some ASCII characters, namely control characters, spaces, and several others.

This function replaces each special character with an escape sequence in the form %xx, where xx is two hexadecimal digits (in uppercase) that represent the character in UTF-8. For example, édition.html is changed to %C3%A9dition.html, with the é escaped as %C3%A9.

All characters except the following are escaped:

Letters a through z and A through Z

Digits 0 through 9

Hyphen (-), underscore (_), period (.), exclamation point (!), tilde (~),

asterisk (*), apostrophe(‘), parentheses (‘(’ and ‘)’) and hash mark (#)

Semicolon (;), forward slash (/), question mark (?), colon (:), at sign

(@), ampersand (&), equals sign (=), plus sign (+), dollar sign ($), comma (,), square brackets (‘[’ and ‘]’), and percent sign (%).

The last set of characters specified above is generally used to delimit parts of URIs. If you are escaping a single part of a URI (as opposed to an entire URI), it is better to use the fn:encode-for-uri function, which does escape these characters.

Parameters

Description

uri-part:string()

Examples

XPath

Results

iri-to-uri(’http://datypic.com/édition 2.html’)

http://datypic.com/%C3%A9dition%202.html

iri-to-uri(’http://datypic.com/Sales Numbers.pdf’)

http://datypic.com/Sales%20Numbers.pdf

See Also