xf:escape-URI

Applies the URI escaping rules to $string-var that contains a URI (Uniform Resource Identifier Reference).

If the value of $string-var or $boolean-var is the empty sequence, 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 escape-URI invocation: expected type [string@http://www.w3.org/2001/XMLSchema], given type empty 

The empty sequence is a sequence containing zero items (), which is similar to null in SQL.

Signatures

xf:escape-URI(xs:string $string-var, xs:boolean $boolean-var) —> xs:string

Arguments

Data Type
Argument
Description

xs:string

$string-var

Represents the conversion string that contains the URI (Uniform Resource Identifier Reference)

xs:boolean

$boolean-var

Represents the boolean that determines the URI escaping rules to apply.


true

All characters are escaped except the following:

  • Lower case letters a-z
  • Upper case letters A-Z
  • Digits 0-9
  • The following characters: "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")". (These characters are referred to as marks in RFC 2396.)

The "%" character is escaped only if it is not followed by two hexadecimal digits (0-9, a-f, or A-F).

Typically this option is used to escape part of a URI.

false

In addition to the characters defined in the true section of this table as not being escaped, the following reserved characters are not escaped: ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ",". (As defined by RFC 2396 .)

Typically, this option is used to escape an entire URI or URI reference.

Returns

Returns the $string-var after the URI escaping rules have been applied. The rules applied are different depending on the value of $boolean-var.

Examples

True

The following example query shows the escape-URI function called with the $boolean-var argument set to true:

<true>{xf:escape-URI("http://www.acme.org/", xs:boolean("true"))}</true> 

The preceding query generates the following result:

<true>http%3A%2F%2Fwww.acme.org%2F</true> 

False

The following example query shows the escape-URI function called with the $boolean-var argument set to false:

<false>{xf:escape-URI("http://www.acme.org/widget/201/#specs",xs:boolean("false"))}</false> 

The preceding query generates the following result:

<false>http://www.acme.org/widget/201/%23specs</false> 

Related Topics

W3C escape-uri function description.