If I understand this correctly, the .rc file must be compiled if the .xml file is modified.
If that is true, then the solution is to 'touch' the rc.h file (reset the modification time) so that only .rc gets compiled when the build (not rebuild) menu item is clicked.
Given the above, I'd use the project options preBuild step to 'touch' the .h file if the xml modTime is later than the .xml modTime using a command line batch file.
]https://stackoverflow.com/questions/40272150/how-to-get-a-files-last-modified-date-on-windows-dos-command] (https://stackoverflow.com/questions/40272150/how-to-get-a-files-last-modified-date-on-windows-dos-command)
]https://stackoverflow.com/questions/21698300/cmd-comparingvariables/21701765] (https://stackoverflow.com/questions/21698300/cmd-comparingvariables/21701765)
Now. How to touch the .h file?
https://superuser.com/questions/10426/windows-equivalent-of-the-linux-command-touch/764716 (https://superuser.com/questions/10426/windows-equivalent-of-the-linux-command-touch/764716)
Get clever with the arcane mysteries of CMD.
As mentioned in the other answer, COPY /B myfile+,, will update a
file's last modification datestamp, using the little-known
"plus" syntax of the COPY command (more on which can be found
here, incidentally). This of course can be combined with FOR /R to
perform the operation recursively, as hinted at in another answer here.
Wrap all this up in cmd.bat file and insert it in the prebuild steps as:
cmd /c name-of-your-bat-file
Menu\Project\Build options...\Pre/Post build steps tab