Can an index on one table be used in the query for another table?
Selective XML Indexes does just that for you behind the scenes.

It allows you to specify an XPath expression in the index and when you use that expression in a query SQL Server uses a system table to retrieve the value you are looking for.

Example:

create table dbo.T
(
  ID int identity primary key,
  XMLDoc xml not null
);

go

create selective xml index SIX_T on dbo.T(XMLDoc) for
(
  Node1 = '/root/node1/text()' as sql int
);

go

insert into dbo.T(XMLDoc) values('
&lt;root&gt;
  &lt;node1&gt;1&lt;/node1&gt;
&lt;/root&gt;');

go

select T.XMLDoc.value('(/root/node1/text())[1]', 'int') 
from dbo.T;


The query plan for the XML query shows a table scan of T and a nested loops join with a seek on the primary key into the system table that holds the value you are looking for.