Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java_sp.doc
Скачиваний:
48
Добавлен:
29.10.2018
Размер:
1 Мб
Скачать

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-документов:

  1. XML-документ должен иметь только один корневой элемент (элемент "Документ"). Все другие элементы должны быть вложены в корневой элемент.

  2. Элементы должны быть вложены упорядоченным образом. Если элемент начинается внутри другого элемента, он должен и заканчиваться внутри этого элемента.

  3. Каждый элемент должен иметь начальный и конечный теги. В отличие от HTML, в XML не разрешается опускать конечный тег - даже в том случае, когда браузер в состоянии определить, где заканчивается элемент.

  4. Название элемента в начальном теге должно в точности соответствовать (с учетом регистра) названию в соответствующем конечном теге.

  5. Название элемента должно начинаться с буквы или с символа подчеркивания ( _ ), после чего могут идти буквы, цифры, символы точки (.), тире (-) или подчеркивания.

Это базовые критерии корректного формирования. Для других понятий языка XML (атрибутов, примитивов, связей) действуют свои правила, которые необходимо соблюдать. Можно сказать, что если документ создан правильно, верно и при его отображении и использовании не возникает никаких ошибок, то это и есть корректно сформированный документ. Если вы ошибетесь в каком-либо теге HTML-страницы, браузер просто проигнорирует соответствующий тег, а ошибка в теге XML сделает невозможным отображение страницы. В этом смысле написание XML похоже на программирование на C# - компилятор не запустит программу при наличии синтаксических ошибок.

Создание действительных (valid) xml-документов. Определение типа документа (dtd)

Любой XML-документ должен отвечать минимальным требованиям по составлению, т.е. быть корректно сформированным. Если документ содержит ошибки, он не может считаться XML-документом.

Корректно сформированный XML-документ также может быть действительным (valid). Действительным называется корректно сформированный (well-formed) документ, отвечающий двум дополнительным требованиям1):

  1. Пролог документа должен содержать специальное объявление типа документа, которое включает определение типа документа (Data Type Definition, DTD), задающее структуру документа.

  2. Корневой элемент должен отвечать структуре, заданной в DTD.

Использование критерия действительности необходимо для включения XML-документа в группу схожих документов, отвечающих определенной структуре или набору стандартов. Достаточно один раз выработать схему DTD и затем просто подключать ее к создаваемым документам. Стандарт XML определяет DTD как "грамматику для определенного класса документов".

Объявление типа документа представляет собой блок XML-разметки, который располагается в любом месте пролога корректно сформированного документа. Оно имеет следующую обобщенную форму записи:

<!DOCTYPE Название_корневого_элемента DTD>

DTD представляет собой определение типа документа. Оно состоит из символа левой квадратной скобки ([), после которой следует ряд объявлений разметки, заканчивающихся правой квадратной скобкой (]). Объявления разметки описывают логическую структуру документа, т.е. задают элементы документа, атрибуты и другие компоненты. Действительный XML-документ, содержащий DTD с единственным объявлением разметки, которое определяет один тип элемента в документе, TABLE, выглядит так (рис).

Рис. Простейший документ с DTD

В этом примере DTD документа указывает, что он может содержать только элементы типа TABLE (это единственный заданный тип элемента) и что элемент TABLE может иметь любое допустимое для данного типа содержимое (ключевое слово ANY).

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

Объявление типа элемента имеет следующую обобщенную форму:

<!ELEMENT Название_элемента описание_содержимого>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]