Wednesday, November 24, 2010

Почему XML

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

Любое изменение формата записываемых данных ведет к изменению парсера, который их читает. Конечно, делать парсер под каждый случай  - это лишние затраты времени и сил. Да и лень просто…

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

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

Прочитать о формате XML можно в Википедии.
Что еще позволяет формат XML:
·         искать данные с помощью XPath, делать запросы как к базе данных
·         хранить иерархические и древовидные данные
·         проверять формат файла на соответствие его определенной схеме
·         преобразовывать XML в другие форматы
·         отображать данные в браузере, с помощью CSS-стилей
·         легко и просто редактировать данные с помощью XML-редакторов
·         встроенная поддержка XML в библиотеке .NET
·         возможность автоматического сохранения данных в XML формат с помощью сериализации
XML формат поддерживается почти везде –от баз данных до встроенных систем.

Минусы XML формата напрямую связаны с тем, что это текстовый формат:
·         Объем XML-файла существенно больше, чем просто бинарный файл.
·         Данные не типизированы, т.е. все записываются в текстовом виде.

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

В .NET для работы с XML используются классы XDocument (начиная с версии 4) или XmlDocument.

No comments: