Somebody answered it in another forum. Here is the solution.
The XSLT processor is doing you a favour by escaping the URL value in the href attribute of the HTML link element. This is by design, see
http://www.w3.org/TR/xslt-xquery-serialization/#HTML_ESCAPE-URI-ATTRIBUTES. If you really don't want that and you use an XSLT 2.0 processor then you can use
<xsl:ouput method="html" escape-uri-attributes="no" xmlns:xsl="#unknown" />
in your stylesheet.
The problem developing under .net is that it don't supports XSLT2.0.
You have to use a third party XSLTProcessor like Saxon.net