Введение в XML

       

Какой интерфейс подходит для вас?


Чтобы определить, какой интерфейс подходит для вас, вам нужно понять особенности проектирования с каждым из этих интерфейсов, и вам нужно понимать, что ваше приложение должно делать с XML-документами, которые вы собираетесь обрабатывать. Рассмотрим эти вопросы, чтобы помочь вам найти правильный подход.

  • Будет ли ваше приложение написано на Java? JAXP работает с DOM, SAX и JDOM; если вы будете писать код на Java, вы должны использовать JAXP, чтобы изолировать ваш код от подробностей реализации различных парсеров.
  • Как ваше приложение будет разворачиваться? Если вы собираетесь разворачивать ваше приложение как аплет Java и хотите минимизировать объем выгружаемого кода, имейте в виду, что парсеры SAX меньше, чем парсеры DOM. Также помните, что использование JDOM требует очень маленького объема кода в дополнение к парсеру SAX или DOM.
  • После того, как вы разобрали XML-документ, нужно ли вам будет обращаться к данным много раз? Если вам нужно возвращаться к разобранной версии XML-файла, возможно, DOM является правильным вариантом. Когда генерируется событие SAX, то от вас (разработчика) зависит сохранение чего-либо, что может понадобиться позже. Если вам нужно обратиться к событию, которое вы не сохранили, вам придется разобрать файл заново. DOM сохраняет все данные автоматически.
  • Не нужно ли вам всего несколько вещей из источника XML? Если вам нужно всего несколько вещей из источника XML, возможно, SAX является правильным вариантом. SAX не создает объектов для всего в исходном документе, вы можете сами решить, что является важным. При помощи SAX, вы можете просматривать каждое событие и определять, относится ли оно к тому, что вам нужно, и соответствующим образом его обрабатывать. Даже лучше, если вы нашли то, что искали, ваш код может сгенерировать исключение, чтобы остановить и парсер SAX.
  • Работаете ли вы на машине с очень маленькой памятью? Если так, SAX является наилучшим для вас вариантом, хотя вы можете рассмотреть и все другие факторы.

Разумеется, API XML существуют и для других языков, в частности, сообщества Perl и Python имеют очень хороший инструментарий XML.



Содержание раздела