Введение в XML

Simple API for XML


Чтобы обойти проблемы DOM, участники XML-DEV (возглавляемой David Megginson) создали интерфейс SAX. SAX имеет несколько характеристик, направленных на преодоление недостатков DOM:

  • Парсер SAX посылает в ваш код события. Парсер сообщает вам, когда он находит начало элемента, конец элемента, текст, начало и конец документа и т.д. Вы решаете, какие события важны для вас, вы решаете, какой вид структуры данных вы хотите создать для хранения данных из этих событий. Если вы явным образом не сохраняете данные из этих событий, они теряются.
  • Парсер SAX не создает никаких объектов вообще, он просто доставляет события в ваше приложение. Если вы хотите создавать объекты на основе этих событий - это ваше дело.
  • Парсер SAX начинает доставляет вам события сразу же после начала своей работы. Ваш код получить событие, когда парсер найдет начало документа, когда он найдет начало элемента, когда он найдет текст и т.д. Ваше приложение сразу же начнет генерировать результаты и не будет должно ожидать, пока будет разобран весь документ. Даже лучше, если вы ищете только определенные вещи в документе, ваш код может сгенерировать исключение, если он нашел то, что искал. Исключение останавливает парсер SAX, и ваш код может делать то, что ему нужно сделать с найденными данными

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



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