Что такое XML, и когда я должен его использовать?

Мне любопытно, что я разрабатываю довольно мощные веб-сайты / веб-приложения, и я никогда не изучал XML, даже более странный, я никогда не чувствовал необходимости. Это не похоже на завиток или подготовленные заявления, где, прежде чем знать, что они сделали и как они работали, у меня возникло чувство, что «это должен быть более простой способ сделать это!» или «для этого нужно что-то для этого!».

В настоящее время я работаю с MySQL и JSON, и у меня нет такого чувства: «Мне нужно это узнать» (XML), это должно быть неправильно!

Мне очень интересно услышать некоторые убедительные аргументы для XML и узнать о том, что он может сделать, чем JSON или MySQL (или какой-либо другой аспект веб-разработчика), и когда я его буду использовать!

Related of "Что такое XML, и когда я должен его использовать?"

JSON очень легкий, что делает его лучше подходящим для передачи данных на передний план.

XML имеет дескриптивные теги, которые (я лично нахожу) упрощают чтение в необработанном формате. Если бы я хотел иметь какой-либо файл настроек, загруженный из моей программы, я бы получил его в формате XML-файла.

В любом случае, это моя идея, но я уверен, что есть намного более глубокие причины выбора одного из них. Из которых я недостаточно опытен, чтобы перечислять 🙂

Однако я нашел пару сайтов, которые создают хорошие моменты.

http://ajaxian.com/archives/json-vs-xml-the-debate (Некоторые хорошие моменты в комментариях)

http://webignition.net/articles/xml-vs-yaml-vs-json-a-study-to-find-answers/

XML полезен для хранения гетерогенных древовидных структур, в ситуациях, когда для них могут применяться инструменты общего назначения, и требуется некоторая избыточность. Если вы занимаетесь современной веб-разработкой, есть хорошие шансы, что вы производите XHTML, а не HTML, и создаете RSS или Atom, поэтому вы уже должны использовать его. Наиболее распространенные форматы RDF используют его.

JSON немного проще работать с данными в Интернете, но не имеет такого же набора функций – вы не можете иметь атрибуты в JSON, поэтому нет никакой разницы между данными и метаданными, и вы не можете имеют инструкции по обработке или возможность создавать объекты для повторных фрагментов текста. С другой стороны, многие применения XMLl также не используют эти функции. Базы данных SQL имеют фиксированную схему и не представляют деревья хорошо.

В основном XML используется для взаимодействия.

Одним из преимуществ XML по сравнению с другими форматами сериализации является количество доступных инструментов. Другая – возможность формализовать описание ваших данных (XML Schema).

Доступность инструментов позволяет использовать XML-редакторы, трансформаторы, визуализаторы … Например, когда я работаю, у нас есть команда связи с помощью редактора XML для редактирования контента и метаданных. Они недостаточно техничны для написания JSON вручную (или XML), но очень легко дать им шаблон с хорошим общим интерфейсом для редактирования необходимых документов.

Наличие способа описания формата (XSD, DTD, Relax NG, …) означает, что вы также можете автоматически проверить свои документы. Он также служит довольно хорошей документацией о том, что разрешено, а что нет в ваших документах.

XML – это просто для хранения сообщений структурированным способом, который (якобы) является агностическим. Это все, что есть. С другой стороны, XML предлагает способ сохранения семантики (значения) данных при общении между различными приложениями. Он также популярен как формат конфигурации, поскольку (1) конфигурационный файл представляет собой просто сообщение между различными сеансами приложений * и (2) почти каждый язык имеет зрелые стандартные XML-библиотеки.

* вы также можете думать об этом как о дегенеративном случае общения между приложениями.

Я использую XML для перевода ярлыков веб-сайтов, тэгов и т. Д. Или неповторяющегося содержимого. Для такого рода вещей это спасатель жизни.

Я использую XML в основном для файлов конфигурации или в формате транспортировки, однако, если вы знакомы с JSON или YAML, они могут быть так же хороши для вас, поэтому нет необходимости изучать XML.

XML – единственное решение для обмена данными и ни для чего другого.

Итак, вы должны изучать XML только в том случае, если вы собираетесь анализировать или поставлять RSS-канал. Хотя ракеты наука, хотя это тот же язык разметки, что и HTML, с некоторыми строгими правилами.

Ol 'хорошая статья от хорошего Джоэла, чтобы разобраться

«Знание XML» может означать пару разных вещей.

Первое – это понимание базового синтаксиса. Это предварительное условие для написания XHTML, SVG, Atom, RSS и множества других языков, которые являются приложениями XML.

Вторая основана на первом и понимает, как разрабатывать собственные XML-приложения, то есть пользовательские хранилища данных или обменные форматы. JSON может выполнять аналогичную роль и имеет некоторые преимущества (например, возможность неявно представлять массив данных: { bar: ['foo'] } . В XML, который анализатор должен был бы знать, чтобы преобразовать содержимое <bar> в массив для языка программирования, если вы хотите рассматривать его как простую структуру данных) <bar><foo/></bar> ) и недостатки (XML позволяет вам иметь необязательные вещи в любом порядке с меньшими усилиями).

XML полезен в качестве формата для:

  • перенос данных на разных платформах
  • резервное копирование или экспорт текста из базы данных
  • кросс-языковая интеграция

Для этого используются системы управления контентом. Он также полезен для кэширования кода шаблонов на стороне клиента, который используется на skechers.com и объясняется в комментарии от Mark Beeson на сайте Тима Брея :

К счастью, есть способ кэшировать весь уровень просмотра на клиенте, сохраняя при этом уважение к страницам и все еще предлагая AJAX в правильных местах без чудовищных URL. Проверьте источник skechers.com – мы используем клиентский XSLT, который кэшируется в браузере, а один файл xsl описывает макет всего сайта. Таким образом, при переходе со страницы на страницу вы загружаете только небольшое количество XML. Мы обнаружили, что это значительно ускоряет наше приложение и позволяет нам массировать огромное количество кэширования.

Рекомендации

  • MediaWiki: Экспорт
  • WordPress: экран экспорта инструментов
  • XML-формат mysqldump
  • XML-котировки
  • XML: налог на угловой кронштейн
  • Является ли XML слишком жестким?
  • XML не является S-выражениями
  • Является ли XML доступным для чтения?

С PHP, как и с большинством динамических языков, лучше всего отнести к интероперабельности. XML быстрее переписывается, чем Java, но PHP быстрее переписывает, чем XML.