- •1. Жизненный цикл приложения Java. Компиляция. JiTкомпиляция. Исполнение.
- •2. Классы. Абстрактные классы. Интерфейсы. Наследование.
- •3. Классы и интерфейсы стандартной библиотеки. Списки. Сортировка.
- •4. Классы и интерфейсы стандартной библиотеки. Ассоциированные массивы. Словари.
- •5. Классы и интерфейсы стандартной библиотеки. Потоки ввода-вывода. Файловый ввод-вывод.
- •6. Параллельные процессы. Синхронизация.
- •Синхронизация по ресурсам и событиям
- •Синхронизация по ресурсам
- •7. Параллельные процессы. Управление потоками.
- •Синхронизация по событиям
- •Создание и запуск потока выполнения
- •Поля и методы, заданные в классе Thread
- •Важнейшие константы и методы класса Thread:
- •Важнейшие методы объектов типа Thread:
- •8. Параллельные процессы. Управление памятью потока.
- •Хранение переменных в памяти
- •Блокировки
- •9. Jdbc, драйверы строка соединения, класс DriverManager, интерфейс Connection.
- •10. Jdbc, создание sql запросов, интерфейсы Statement, PreparedStatement Класс Statement.
- •Выполнение запроса через объект Statement
- •Закрытие объектов Statement
- •11. Jdbc, обработка полученных результатов, интерфейсы ResultSet, ResultSetMetaData.
- •Строки и курсоры
- •Колонки
- •Типы данных и их преобразование
- •Использование потоков для очень больших значений
- •Значения null в результатах
- •12. Объектно-реляционное отображение. Создание персистентных классов при помощи jpa
- •13. Объектно-реляционное отображение. Подключаемы провайдеры персистенции.
- •14. Кастомизация мэппинга персистентных классов на поля и таблички бд.
- •15. Объектно-реляционное отображение. Отображение реляционных связей many-to-many, one-to-many, one-to-one.
- •16. Объектно-реляционное отображение. Жизненный цикл персистентных объектов (entity lifecycle)
- •17. Объектно-реляционное отображение. Интерфейс EntityManager.
- •18. Объектно-реляционное отображение. Создание запросов на jpql, sql
- •19. Работа с xml в Java. Правильно сформированные (well-formed) и корректные (valid) xml документы
- •Понятие корректно сформированных (well-formed) xml-документов
- •Создание действительных (valid) xml-документов. Определение типа документа (dtd)
- •20. Jaxp, основные группы api.
- •21. Работа с xml документами посредством sax.
- •22. Работа с xml документами посредством dom.
- •23. Сравнение sax и dom подходов к обработке xml документов.
- •24. Jaxb, отображение Java класса, отображаемого на xml.
- •25. Создание jaxb контекста, маршалинг и демаршалинг.
- •26. Сервлеты, создание, жизненный цикл
- •27. Http запросы get, post, put, delete, head
- •28. Интерфейс servlet, класс HttpServlet
- •29. Создание rest сервисов, jax rs
- •30. Связка jaxb и jax rs, переключение типов возвращаемого контента (xml, json)
- •33. Оптимизация jvm
19. Работа с xml в Java. Правильно сформированные (well-formed) и корректные (valid) xml документы
Поскольку сейчас очень часто информация хранится и передается в виде XML-документов, для разработки Web-приложений большое значение имеют средства работы с XML. Основными элементами, необходимыми для облегчения работы с XML-документами, являются их разбор и внутреннее представление XML-данных.
Библиотеки для работы с XML-документами находятся в пакетах javax.xml , org.w3c.dom и org.xml.sax, a также во вложенных в них пакетах.
Понятие корректно сформированных (well-formed) xml-документов
Документ называется корректно сформированным, если он соответствует минимальному набору правил для XML-документов:
-
XML-документ должен иметь только один корневой элемент (элемент "Документ"). Все другие элементы должны быть вложены в корневой элемент.
-
Элементы должны быть вложены упорядоченным образом. Если элемент начинается внутри другого элемента, он должен и заканчиваться внутри этого элемента.
-
Каждый элемент должен иметь начальный и конечный теги. В отличие от HTML, в XML не разрешается опускать конечный тег - даже в том случае, когда браузер в состоянии определить, где заканчивается элемент.
-
Название элемента в начальном теге должно в точности соответствовать (с учетом регистра) названию в соответствующем конечном теге.
-
Название элемента должно начинаться с буквы или с символа подчеркивания ( _ ), после чего могут идти буквы, цифры, символы точки (.), тире (-) или подчеркивания.
Это базовые критерии корректного формирования. Для других понятий языка XML (атрибутов, примитивов, связей) действуют свои правила, которые необходимо соблюдать. Можно сказать, что если документ создан правильно, верно и при его отображении и использовании не возникает никаких ошибок, то это и есть корректно сформированный документ. Если вы ошибетесь в каком-либо теге HTML-страницы, браузер просто проигнорирует соответствующий тег, а ошибка в теге XML сделает невозможным отображение страницы. В этом смысле написание XML похоже на программирование на C# - компилятор не запустит программу при наличии синтаксических ошибок.
Создание действительных (valid) xml-документов. Определение типа документа (dtd)
Любой XML-документ должен отвечать минимальным требованиям по составлению, т.е. быть корректно сформированным. Если документ содержит ошибки, он не может считаться XML-документом.
Корректно сформированный XML-документ также может быть действительным (valid). Действительным называется корректно сформированный (well-formed) документ, отвечающий двум дополнительным требованиям1):
-
Пролог документа должен содержать специальное объявление типа документа, которое включает определение типа документа (Data Type Definition, DTD), задающее структуру документа.
-
Корневой элемент должен отвечать структуре, заданной в DTD.
Использование критерия действительности необходимо для включения XML-документа в группу схожих документов, отвечающих определенной структуре или набору стандартов. Достаточно один раз выработать схему DTD и затем просто подключать ее к создаваемым документам. Стандарт XML определяет DTD как "грамматику для определенного класса документов".
Объявление типа документа представляет собой блок XML-разметки, который располагается в любом месте пролога корректно сформированного документа. Оно имеет следующую обобщенную форму записи:
<!DOCTYPE Название_корневого_элемента DTD>
DTD представляет собой определение типа документа. Оно состоит из символа левой квадратной скобки ([), после которой следует ряд объявлений разметки, заканчивающихся правой квадратной скобкой (]). Объявления разметки описывают логическую структуру документа, т.е. задают элементы документа, атрибуты и другие компоненты. Действительный XML-документ, содержащий DTD с единственным объявлением разметки, которое определяет один тип элемента в документе, TABLE, выглядит так (рис).

Рис. Простейший документ с DTD
В этом примере DTD документа указывает, что он может содержать только элементы типа TABLE (это единственный заданный тип элемента) и что элемент TABLE может иметь любое допустимое для данного типа содержимое (ключевое слово ANY).
DTD может содержать различные типы объявлений разметки: Объявления типов элементов – Они определяют типы элементов, которые может содержать документ, а также содержимое и порядок следования элементов, Объявления списков атрибутов – Каждое объявление списков атрибутов задает имена атрибутов, которые могут быть использованы с определенным типом элемента, а также типы данных и устанавливаемые по умолчанию значения этих атрибутов, Объявления примитивов – Вы можете использовать примитивы для хранения часто используемых фрагментов текста или для встраивания не относящихся к XML данных в ваш документ, Объявления нотаций – Нотация описывает формат данных или идентифицирует программу, используемую для обработки определенного формата, Инструкции по обработке, Комментарии, Ссылки на параметрические примитивы.
Объявление типа элемента имеет следующую обобщенную форму:
<!ELEMENT Название_элемента описание_содержимого>
