You will need to convert that list to "xref item" values.
See xref--collect-matches-1 for how this is done. Since your locations are not "xref matches", though, you will call xref-make instead of xref-make-match, and won't need the length argument.
Note that you will also need the string contents on that line (it will be shown in the xref ...
You may want to use package ivy-xref or helm-xref to replace the "window-ish" selector with popular completion framework like ivy or helm (so it feels better when picking a definition). Sure you also need ivy/helm themselves. It's easy if you already use one of them, otherwise have a try.
If you insist... Digging down into xref-find-definitions, it'...
Not an answer, but too much code for a comment.
May be you can reuse and adapt this code:
(and ;;; try finding file from make buffer javac error
(re-search-forward "(\\(\\([A-Za-z]:\\)?\\.?\\.?/?[a-zA-Z0-9._/+-]+\\.[a-zA-Z0-9_/,+-]+\\):\\([0-9]+\\))" nil t)
(file-readable-p (match-string ...