Для чего нужен XML и когда я должен его использовать? - PullRequest
26 голосов
/ 20 мая 2010

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

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

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

Ответы [ 10 ]

13 голосов
/ 20 мая 2010

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/

12 голосов
/ 20 мая 2010

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

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

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

6 голосов
/ 20 мая 2010

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

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

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

5 голосов
/ 20 мая 2010

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

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

4 голосов
/ 20 мая 2010

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

2 голосов
/ 20 мая 2010

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

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

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

2 голосов
/ 20 мая 2010

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

1 голос
/ 04 января 2012

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

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

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

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

Ссылки

1 голос
/ 20 мая 2010

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

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

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

0 голосов
/ 20 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...