The bug is caused by a missing case label in /usr/bin/xdg-open. The script correctly detects the xfce4 environment on my system, setting the DG variable to 'xfce'. It then proceeds to completely ignore this setting, falling through to the default action which is to show the error message. The attached patch fixes the problem, for me at least. I have used the suggested open_xfce4 function which uses exo-open to open any files. That seems like a sensible default for xfce4.
Regards, Hein Zelle
--- xdg-open 2006-06-19 06:40:33.000000000 +0200 +++ xdg-open-patched 2006-08-28 16:32:34.000000000 +0200 @@ -335,6 +335,10 @@ open_gnome "$url" ;; + xfce) + open_xfce "$url" + ;; + generic) open_generic "$url" ;;