What you want is a database environment, on-site , to work with your app offline, and when you have a connection, sync these data. Right?
Well, as it was not said if it is a desktop or mobile app, or assume that you are using .NET Framework , ie a desktop app.
For these cases, I exclusively recommend using System.Data.DataSet . DataSet is a representation, memory me, of a database. With it you can simulate an entire database, creating tables, making relationships, even controlling transactions.
But the feature most important in your case is that it already has methods to write and retrieve information in XML. See:
var dataSet = new DataSet();
dataSet.Tables.Add(new DataTable("Tabela1"));
dataSet.WriteXml(@"c:\bancodedados.xml");
Your scenario fits well with this guy. It's super easy to deploy, and it also has features for saving and retrieving local data in XML.
But be aware that it is not recommended - for me at least - to use this guy in any scenario. In yours, specifically, it fits.
A few months ago I wrote an article discouraging you to use it for its complexity. Talking about the DataSet and DataTable maladies . It's worth a look.