Я постоянно слышу, что XML слишком раздут, неудобен и не читаем для людей. Господа, вы хоть раз пробовали не в vi его править, а в XML-редакторе с подгруженной схемой? Где узлы (из указаний схемы) сами предлагаются и на 90% генерируются при создании, остаётся только параметры вписать (которые будут немедленно валидированны по схеме).
Я уж не говорю, что при использовании XML-конфигов (со схемой) для приложений мы сразу решаем несколько задач:
1. У нас не может быть неправильного конфига (только логически неправильного, но тут уже ничего не сделаешь). В схеме можно указать указать абсолютно всё, вплодь до того, какие стринг-параметры (даже регексповые) должны быть, какие типы данные, сколько их, названия параметров, обязательные и не обязательные паметры (и зависимости их друг от друга) и т.д.
Т.е. мы изначально можем не верифицировть конфиг своим кодом при наличии корректной схемы.
2. Далее не надо писать шаблонные регенараторы конфигурации для систем автомации, можно легко заменить нужный параметр на лету (и проверить, что всё корректно). А если и писать, то гораздо легче.
3. Вместо этого мы видим кучу всяких json, yaml, ini-подобных, тегированных, гибридных и прочих конфигов и форматов документов, которые принимаются приложением сразу с падением в случае ошибки (вместо оставления предыдущего состояния).
4. XML полностью стандартизирован. XEP и ещё несколько дублирующих стандартов.
5. XML БД, XPath.
6. Про работу с большими документами, которые, якобы, занимают кучу памяти. Кто-то просто не осилил курсорную или объектную работу с XML. Например, как в XMMP. Так называемые «бесконечные документы). Мало того, например, в яве, можно очень удобно повесить на поступление данных из файла (или сокета) обработчики в зависимости от поступающих данных на которые они будут реагировать, т.е. фактически срабатывание методов будет привязано к поступающему документу (т.е. документ управляет приложением, никакого заумного парсинга). При этом сохраняются только родители, а все обработанные листы выгружаются из памяти. Работает ооочень быстро, спросите у IBM с многогигабайтными XML-доками. И не надо писать никакой логики верификации - схема автоматически сама всё проверит (и можно поставить обработку эксепшенов)
7. Обязательный UTF8.
Так почему люди до сих пор не используют столь шикарный инструмент и хают его? Просто не осилили?
Перемещено leave из development