потому, что как только начнешь реализовывать на xml списки и семантику типа aside, footer, header, section, article, main — то будешь выглядеть несколько глуповато.
Краткий экскурс. Было, хотели, запили XHTML, который есть XML. Но.
MS саботировала выдавая диалог сохранения вместо отображения.
Упоротые в комитете решили сделать XHTML2 несовместимый со старым — браузеры положили на это решение болт.
Повсеместные неосиляторы — даже амперсанды в URL'ах экранировать им лень, а уж про закрытие элементов и говорить нечего.
XSLT, который для всего этого необязателен, но тоже был чем-то интересен, саботировали все, кому не лень. Баги, даже БАЖИЩА в браузерах, от нерабочего экранирования в выводе до выполнения скриптов по нескольку раз.
Легаси уже есть и всё равно его поддерживать придётся.
Паттерн наблюдаешь?
Впрочем, ты и сейчас можешь писать с использованием XML сериализации HTML5, но будь готов к неосиляторам (когда будешь использовать чужой код, например).
Тогда
1. В вебе все экономят трафик, потому вместо хмл используют json
2. Сайт надо индексировать
3. Если брать веб приложения то тут надо не xml+css+js а json+js, хотя на серваке у тебя прекрасно можеть жить xml. Его хотя бы по схеме можно провалидировать.
Потому что никому не хочется изобретать велосипед. Поведение кнопочек, прочих элементов форм, фокусы ввода… AFAIR, контент индексировался, сумеет ли поисковик без карты сайта найти внутренние страницы это уже другой вопрос. Если хочется XML сам XHTML куда удобнее. А вообще, веб компоненты всё равно заборят всех.
Интерфейс нужен для представления данных. Если не рассматривать картинки и не расслушивать звуки, информация бывает 2х типов: многобукв, где некоторые несут дополнительный смысл, и многоцифр с редкими описаниями.
Первое является каноничной парафией SGML и всего, что из этого следует. Но многобуквия генерируются, в основном, человеком, потому синтаксического мусора должно быть поменьше. Автозакрытие разметки без явного упоминания закрывающих тегов удобно, а XML этого не позволяет. Т.ч. единственным шансом XMLей остаётся их генерация из markdown-ов.
Многоцифрия - наоборот, в основном генерируются роботами, которые редко возражают против лишней работы. Но они, также, замечательно считают, т.ч. им не обязательно повторять назначение каждого элемента данных и скобки. Кроме того, роботы почти никогда не делают операций типа «перенести закрывающую скобку на 2 страницы ниже», т.ч. они знают размер элемента заранее и предпочитают его так же читать.
Отдельно стоит упомянуть сложные структурированные данные, употребимые человеком. Тут XML имел бы шансы, если бы не очевидный факт - любой язык программирования передаёт «это» не менее точно и намного более красиво. Не говоря уже об yaml-ах.
Т.ч. XML просто не имеет области применения, в которой он лучший. Вот и джава вспомнилась:)