A veteran of the Royal Navy has accused people of using the St George’s Cross and Union Jack to promote “xenophobic nationalism”.