Why had I better try the suggestion? Is what I've done not going to work?
Even though I said the underlying table was not being locked, I only need the rows retrieved with XLOCK for this one query. Just locking this one table with a view works for this one query.