Currently, when ulink.show is set to 1, it will display the value of xlink:href (either after the reference in square brackets or as a footnote, depending on the value of ulink.footnotes) unless the text of the element's contents exactly match the value of xlink:href.
This means that a link like: <link xlink:href="http://example.com">example.com</link> will display the link, even though the difference is just the prefix.
I propose an option that would say, do not display the link if the only difference between the contents of xlInk:href and the contents of the element is a prefix like mailto: or xxx://.
To make this change requires a small change to the hyperlink.url.display template in xref.xsl, the addition of a new parameter (maybe ulink.show.normalize), and a template to actually do the normalization.
I have implemented this change, and have attached the updated hyperlink.url.display template, along with a template to normalize the strings, to this message. If it looks ok, I'll be glad to commit the change.
The normalization could be extended to do other URL normalizations, for example removing trailing slashes, by adjusting the template normalize.url.