In order to get a table with an xml-column via a remote query, you need to create a view on the remote server without an xml-column (if it is not needed) or convert it to varchar(max)/nvarchar(max) :
CREATE VIEW xml_view AS SELECT CAST(xml_column as varchar(max)) as xml_column FROM xml_table
You can then use a remote query for this view.
SELECT * FROM REMOTE_DB.database.dbo.xml_view
If on the main server you need a column of the xml type, and not varchar (max) / nvarchar (max), then you can additionally use a request to the view via openquery :
SELECT cast(xml_column as xml) as xml_column FROM OPENQUERY(REMOTE_DB, 'SELECT xml_column FROM xml_view')
You can also directly access the remote table with xml using openquery :
SELECT CAST(xml_column AS xml) as xml_column FROM OPENQUERY(REMOTE_DB, 'select cast(xml_column as varchar(max)) as xml_column from xml_table') xml_table;