обычно XML/JSON/etc - это чисто транспортный формат, поэтому ручное его редактирование - странная вещь
по идее программа должна подготовить объекты и структуры и упаковать их в XML и наоборот - парсить XML, чтобы получить объекты
с редактированием самого текста отлично справляются внешние редакторы, бесплатные, которых просто мильон - notepad++, microsoft xml notepad и разные другие, включая online.
неясно, для чего этот функционал в своей программе
из компонентов-редакторов подсветкой есть synedit