Update code works in manual stored procedure but not when run as SQL Server Agent Job
I resolved the issue - but do not understand it.

The system has a View corresponding to each Table.  One of the Views was used in my FOR XML PATH view.  

I substituted the no-permission Table for the View, and it works.  

The View has Public SELECT permissions.  The Table has no named permissions.

I think the SQL Server Agent Job should be able to SELECT from the View because of the public permission, but it cannot.