Hello, I encounter a problem with a RESTXQ application, perhaps someone can help me? *Goal:* Download a file with an encoding dependent on a user entry. The request contains *form parameters*. *Attempt:* I can control the encoding using the %output annotation. However, this annotation must be a literal string, I think. Therefore I tried *web:forward*, as well as *web:redirect*, thus triggering the execution of a function with the desired %output declaration. *Issue:* the form parameters get lost. How to achieve the goal? Thank you for your advice. With kind regards, Hans-Jürgen declare %output:method("text") %output:encoding("utf-8") %rest:path("*/util/download/text*") %rest:form-param("text", "{$text}", "") %rest:form-param("file-name", "{$fileName}", "text.txt") %rest:form-param("encoding", "{$encoding}", "utf-8") function *f:downloadText*( $text as xs:string, $fileName as xs:string, $encoding as xs:string) { if ($encoding eq 'cp1252') then *web:forward*(' */util/download/text-cp1252*') else ... declare %output:method("text") %output:encoding("cp1252") %rest:path("*/util/download/text-cp1252*") %rest:form-param("text", "{$text}", "") %rest:form-param("file-name", "{$fileName}", "text.txt") function *f:downloadTextCp1252*( $text as xs:string, $fileName as xs:string) { let $text := replace($text, ' ', ' ') return ( <rest:response> <http:response status="200"> <http:header name="Content-Disposition" value='attachment; filename="{$fileName}"'/> <http:header name="Content-Language" value="en"/> <http:header name="Content-Type" value="text/csv; charset=cp1252"/> </http:response> </rest:response>, $text ) }; PS: The <http:header> seems to be without effect - experiments seemd to show that I have to use the %output declaration.