Изучаем Java EE 7 - [185]
DOM
API объектной модели документа (Document Object Model, DOM), как правило, легко использовать. Он обеспечивает привычную древовидную структуру объектов, что позволяет приложению переставлять узлы, а также добавлять или удалять содержимое по мере необходимости.
Модель DOM, как правило, проста в реализации, но ее построение требует чтения всей XML-структуры и хранения всего дерева объектов в памяти. Таким образом, DOM лучше использовать для небольших структур данных XML в случаях, когда скорость не имеет первостепенного значения для приложения или требуется произвольный доступ ко всему содержимому документа. Есть и другие технологии, такие как JDOM и DOM4J, которые дают возможность применять принципы объектно-ориентированного программирования при работе с XML для несложных приложений.
SAX
Потоковая модель анализаторов используется для локальной обработки ресурсов, где произвольный доступ к другим частям данных ресурса не требуется. Простой API для XML (SAX) основан на частичном анализе потоковой модели, в которой данные пошагово поставляются в приложение для чтения клиентом.
SAX основан на событиях и имеет последовательный механизм доступа, что позволяет обрабатывать один элемент за другим. При использовании анализатора SAX событие SAX срабатывает всякий раз, когда выявляется конец элемента XML. Событие включает в себя имя элемента, который только что закончился. Обработчик SAX — это конечный автомат, который может работать только с частью XML-документа, который уже был проанализирован.
SAX является самым быстрым способом анализа XML и подходит для работы с большими документами, которые не могут быть считаны в память целиком. Это, как правило, предпочтительно для высокопроизводительных серверных приложений и фильтров данных, которые не требуют представления данных в памяти. Однако этот способ очень требователен к навыкам разработчика.
Выполнение запросов с помощью XPath
XPath — это язык запросов, предназначенный для опроса XML-структур, которые используют другие XML-стандарты, в том числе XSLT, XPointer и XQuery. Он определяет синтаксис для создания выражений, значение которых оценивается на базе XML-документа.
Выражения XPath могут представлять собой узел, двоичное значение, число или строку. Наиболее распространенный тип выражений XPath — это путь, который представляет собой адрес узла. Например, выражение XPath / — это выражение, которое представляет все узлы XML-документа, начиная с корневого. Ниже приводится выражение XPath, представляющее все узлы unit_price, стоимость которых составляет более 20 (сам XML-документ вы видели выше (см. листинг 12.1)).
>//content/order_line[unit_price>=20]/unit_price
Кроме того, XPath имеет набор встроенных функций, которые позволяют разрабатывать очень сложные выражения. Следующее выражение возвращает текстовый узел-потомок элементов unit_price:
>//content/order_line[unit_price>=20]/unit_price/text()
XQuery — это другой язык запросов, предназначенный для опроса коллекций данных XML с помощью выражений XPath. XQuery синтаксически похож на SQL, его набор ключевых слов включает в себя FOR, LET, WHERE, ORDER BY или RETURN. Ниже представлено простое выражение XQuery, которое использует функцию doc() (она читает документ Order.xml), чтобы вернуть все дочерние узлы order_line, у которых значение атрибута quantity больше 1, а unit_price — менее 50;
>for $orderLine in doc("order.xml")//content/order_line[@quantity>1]
>where $orderLine/unit_price < 50
>return $orderLine/unit_price/text()
С помощью XQuery можно выполнить и более сложные запросы, создавая сложные условия или упорядочивая результаты.
В некоторых случаях извлечение информации из XML-документа с использованием API может быть слишком громоздким, в основном из-за того, что критерий для поиска данных сложен и необходимо писать много кода для перебора узлов. Языки запросов XML, такие как XPath 1.0 и XQuery, предоставляют многофункциональные механизмы извлечения информации из XML-документов.
Преобразование с помощью XSLT
Ключевым преимуществом XML, по сравнению с другими форматами данных, является способность к преобразованию XML-документа из одного словаря в другой в общем виде. Например, вы можете трансформировать XML-документ в форму, подготовленную к печати, или веб-страницу. Технология, которая позволяет такое преобразование, называется расширяемым языком стилей для преобразований (XSLT).
Проще говоря, XSLT представляет собой фреймворк для трансформации структуры XML-документа, объединив его с таблицей стилей XSL для получения выходного документа. Все, что вам нужно сделать, — это создать таблицу стилей XSL, которая содержит набор инструкций по преобразованию для трансформации исходного дерева в конечное. Затем процессор XSLT преобразует исходный документ, связывая шаблоны исходного дерева XML с шаблонами применяемой таблицы стилей.
Шаблон — это выражение XPath, которое сравнивается с элементами исходного дерева. При совпадении создается часть результирующего дерева. При конструировании результирующего дерева элементы источника могут быть отфильтрованы и переупорядочены, также может быть добавлена произвольная структура.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.