Сравнивать размер файла - это в общем случае не правильно, т.к данные могут измениться (цена у товара например была 100, стала 200), а размер файла при этом не изменится.
Вам нужно сравнивать что то, что гарантированно изменяется при изменении данных.
Самое простое - дата изменения данных. Лучше всего в миллисекундах.
Т.е при любых изменениях базы данных - обновлять это число.
Обязательно отдавать его в xml.
Соответственно приложение сначала отдельно запрашивает с сервера дату изменения (заголовками или отдельным вопросом - не суть важно) и сравнивает её с датой которая была в xml.
Плюс решения - очень легко проверить надо скачивать или нет.
Минус - в тех случаях когда что то обновилось - все равно придется перекачать все.
Выход один - реализовывать свой протокол поддерживающий инкрементное обновление данных с любой версии до актуальной. Но это отдельная большая и ресурсоемкая история.