Spec-Zone .ru
спецификации, руководства, описания, API
След: API Java для XML, Обрабатывающего (JAXP)
Урок: Простой API для XML
Когда Использовать SAX
Домашняя страница > API Java для XML, Обрабатывающего (JAXP) > Простой API для XML

Когда Использовать SAX

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

SAX быстр и эффективен, но его модель событий делает его самым полезным для такой независимой от состояния фильтрации. Например, синтаксический анализатор SAX вызывает один метод в Вашем приложении, когда с тегом элемента встречаются и вызывает различный метод, когда текст находится. Если обработка Вас делает, независимо от состояния (подразумевать, что она не зависит от элементов, которые прибыли прежде), то SAX хорошо работает.

С другой стороны, для зависимой от состояния обработки, где программа должна сделать одну вещь с данными под элементом A, но что-то другое с данными под элементом B, затем синтаксический анализатор получения по запросу, такой как API Потоковой передачи для XML (StAX) был бы лучшим выбором. С синтаксическим анализатором получения по запросу Вы получаете следующий узел, независимо от того, что это, оказывается, в любой точке в коде, который Вы просите это. Таким образом, легко изменить способ, которым Вы обрабатываете текст (например), потому что можно обработать это многократные места в программе (для большего количества детали, см. Дополнительную информацию).

SAX требует намного меньшего количества памяти чем ДОМ, потому что SAX не создает внутреннее представление (древовидная структура) данных XML, как ДОМ делает. Вместо этого SAX просто отправляет данные приложению, поскольку это читается; Ваше приложение может тогда сделать то, что оно хочет сделать с данными, которые оно видит.

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

Но когда Вы должны изменить структуру XML - особенно, когда Вы должны изменить ее в интерактивном режиме - структура данных в памяти имеет больше смысла. ДОМ является одной такой моделью. Однако, хотя ДОМ обеспечивает много мощных возможностей крупномасштабных документов (как книги и статьи), также требуется большое сложное кодирование. Детали того процесса выделяются в том, Когда Использовать ДОМА в следующем уроке.

Для более простых приложений та сложность может хорошо быть ненужной. Для более быстрой разработки и более простых приложений, один из объектно-ориентированных программирующих XML стандартов, таких как JDOM (http://www.jdom.org) и DOM4J (http://www.dom4j.org/), мог бы иметь больше смысла.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Простой API для XML
Следующая страница: Парсинг XML-файла Используя SAX