XML и JSON прежде всего конечно же служат для описания данных и чаще всего сегодня служат передачи/хранения их в удобном читаемом виде.
XML по сравнению с html позволяет создавать более строгие и форматы + не будет лишнего для четкого, легкого и однозначного парсинга на любых платформах, в свое время даже создавался формат xHTML как попытка принести ясность и жесткие правила в html, но все же html5 его похоронил, хотя многие его и сегодня используют.
JSON - взлетел на фоне взлета популярность веб в целом и JavaSript в частности, несмотря на все плюсы XML, он все же был часто избыточным для и тяжелым для парсинга, поэтому легкий и удобные JSON быстро набрал популярность, для js он дефакто изначально является нативным и бытсро получил полную поддержку во многих языках программирования и в базах данных(в качестве типа поля).
Короче говоря ключ успеха - легкость(он всегда легче весит соответсвующего xml), простота парсинга - залог успеха.
Есть еще YAML - можно сказать расширения JSON, удобен для конфигурирование приложений, настроек и тп
Но все же везде есть свои недостатки, так что возможно в ближайшем будущем, вместе с развитием веб технологий и JavaScript мы будем иметь другую популярную штуку.