Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 452

Ильдар Шаукатович Хабибуллин

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

Листинг 28.1. Пример XML-документа

<?xml version=,,1.0n encoding=,,Windows-1251n?>

<!DOCTYPE notebook SYSTEM "ntb.dtd">

<notebook>

<person>

<name>

<first-name>MBaH</first-name> <second-name>neTpoBH4</second-name> ^игпате>Сидоров</surname>

</name>

<birthday>25.03.1977</birthday>

<address>

<street>Садовая, 23-15</street>

<с^у>Урюпинск</city> <zip>123456</zip>

</address>

<phone-list>

<work-phone>2654321</work-phone>

<work-phone>2654023</work-phone>

<home-phone>3456781</home-phone>

</phone-list>

</person>

<person>

<name>

<first-name>Мария</first-name> <second-name>neTpoBHa</second-name> <surname>Сидорова</surname>

</name>

<birthday>17.05.1969</birthday> <address>

<street>Ягодная, 17</street> <city>Жмeринка</city>

<zip>234561</zip>

</address>

<phone-list>

<home-phone>2334455</home-phone>

</phone-list>

</person>

</notebook>

Документ XML начинается с необязательного пролога, состоящего из двух частей.

В первой части пролога — объявлении XML (XML declaration), — записанной в первой строке листинга 28.1, указывается версия языка XML, необязательная кодировка документа и отмечается, зависит ли этот документ от других документов XML (standalone="yes"/"no"). По умолчанию принимается кодировка UTF-8.

Все элементы документа XML обязательно должны содержаться в корневом элементе (root element), в листинге 28.1 это элемент <notebook>. Имя корневого элемента считается именем всего документа и указывается во второй части пролога, называемой объявлением типа документа (document type declaration). (Не путайте с определением типа документа DTD!) Имя документа записывается после слова doctype. Объявление типа документа записано во второй строке листинга 28.1. В этой части пролога после слова doctype и имени документа в квадратных скобках идет описание DTD:

<!DOCYPE notebook [ Сюда заносится описание DTD ]>

Очень часто описание DTD составляется сразу для нескольких документов XML. В таком случае его удобно записать отдельно от документа. Если описание DTD отделено от документа, то во второй части пролога вместо квадратных скобок указывается одно из слов: system или public. За словом system идет URI файла с описанием DTD, а за словом public, кроме того, можно записать дополнительную информацию.