I have not tried the SQLXMLOLEDB.4.0 destination, so not able to comment on that.The second option you proposed can be done using the undocumented sp_MSForeachTable stored procedure like this:sp_MSForeachTable 'select * from ? for xml raw'
If you want to insert the data into a single table, you can modify it like this:CREATE TABLE dbo.TableXMLs(tablename VARCHAR(255), XMLDATA XML);sp_MSForeachTable 'INSERT INTO dbo.TableXMLs SELECT ''?'', (select * from ? for xml raw) '