XML - это просто инструмент, который доступен во многих вариантах. XML выделяется в одних вещах и сосет в других. Я думаю, что одна из проблем заключается в том, что люди видели «корпоративный» XML, который излишне сложен с пространствами имен и всякой ерундой (SOAP, кто-нибудь?). Хитрость в разработке XML-форматов для людей заключается в том, чтобы придать реальный смысл данным, не перегружая их чтением.
Одна из вещей, с которыми сталкиваются люди, это то, что XML иногда задыхается от какого-то символа или от отсутствующей скобки. Однако есть и плюсы, и минусы. Положительным моментом является то, что у вас нет такой неоднозначности, как у вас с HTML, где разные случаи полудействующего синтаксиса могут интерпретироваться по-разному.
Недостатком является то, что авторам сложнее и труднее учиться. Я согласен, что есть аргумент, что сеть не стала бы такой большой, если бы HTML был таким же строгим, как XML, но я бы также сказал, что мы были бы рады, если бы это произошло сегодня. :)
Кроме того, не используйте это для всего только потому, что вы можете иметь разум и суждение применять его соответствующим образом. Если все, что у вас есть, - это XML, вы всегда будете XSLT-преобразованием вдали от того, что вы хотите. :)
Я бы сказал, что формат имеет значение только тогда, когда людям нужно с ним взаимодействовать. Если вы пишете какую-то программу, которая сериализует что-то и отправляет ее куда-то, где она будет использоваться другой вашей программой, кого волнует, как она выглядит, если она максимально эффективна? Используйте бинарный формат или кроликов и единорогов для меня все равно.
Плюсы XML
- Охватывает много крайних случаев, которые не YAML и JSON
- Существуют отличные инструменты для анализа и проверки XML на множестве разных платформ и языков.
- XML можно легко и мощно преобразовать в другой формат (с помощью таких вещей, как XSLT).
- Разумные документы XML просты для чтения и редактирования людьми. не говори мне, что JSON проще, это не так :)
- XML в некоторой степени самоописывает себя, то есть он непосредственно содержит информацию о своей структуре и значении (в отличие от большинства двоичных форматов)
- Ручки кодирования
- Независимость от пробелов, что облегчает кроссплатформенное использование
- Разрывы, если они не правильно сформированы (Гарантирует, что данные структурно правильны)
- Это не SGML
Cons
- Подробный
- Разбирается не так быстро, как бинарный
- Разрывы, если они не правильно сформированы (вылетает приложение)
Хорошо использует
- Конфигурационные файлы
- Форматы обмена данными
- Версии устойчивых форматов файлов
- Хранение документов в базах данных
Не очень хорошее использование
- Форматы передачи данных
- Сериализация объектов
- Хранение реляционных данных в базах данных
- Формат файла для высокопроизводительных сценариев ввода / вывода