Should I use XML for data storage on client side?
This also depends on what kind of records you want to be stored, whether it is semi-structured data that is best formed using XML, or plain key-value based records. SQL Server Express can store both kinds, but involves an additional install. However, to avoid extra installs, you can check out SQL Server Compact and SQLite, both of which are installed as a part of the program you will be distributing and will run embedded with it. Also, several NoSQL databases may cure your needs - just give Google a hint and check the answers. Some of them are also compatible with Linq or whatever means you are using to store and extract data from your code.




SQL Server Compact may be downloaded here:
http://www.microsoft.com/en-us/download/details.aspx?id=30709
SQLite
is available here: https://www.sqlite.org/download.html