I have read about general algorithm of updating on this forum, but I would like some advice about things that should be in an xml file.
Do I need any version number in xml file on server and somewhere on client side? If yes, then where should it be? Hardcoded in source code of 2 binary files (Client.exe, Server.exe), in separate file?

My first idea for now is:
<update>
<files sytem="Windows">
<file path="Client.exe" hash="8bf15...." />
<file path="Server.exe" hash="7a2z3...." />
</files>
<files sytem="Linux">
<file path="Client" hash="8bf15...." />
<file path="Server" hash="7a2z3...." />
</files>
</update>

where hash is md5 for example.