Always remember that the output of your stylesheet is a tree of nodes, not lexical XML markup. If you want to create an element, you need to create an element node, not an angle-bracket representation of the node. Leave that to the serializer.
In your case this is dead easy: change
<xsl:text>#60;soap:address location="</xsl:text>
<xsl:value-of select="$url-address"/>
<xsl:text>" /></xsl:text>
to
<soap:address location="{$url-address}"/>
You'll also need to make sure that the soap namespace prefix is declared somewhere in the stylesheet.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference