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

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

Документ XML состоит из элементов. Элемент начинается открывающим тегом, далее идет необязательное тело элемента, потом — закрывающий тег:

<Открывающий тег>Тело элемента</Закрывающий тег>

Закрывающий тег содержит наклонную черту, после которой повторяется имя открывающего тега.

Язык XML, в отличие от языка HTML, требует обязательно записывать закрывающие теги. Если у элемента нет тела и закрывающего тега (empty — пустой элемент), то его открывающий тег должен заканчиваться символами "/>", например:

<br />

Внимание!

Сразу надо сказать, что язык XML, в отличие от HTML, различает регистры букв.

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

Рис. 28.1. Дерево элементов документа XML

У открывающих тегов XML могут быть атрибуты. Например, имя, отчество и фамилию можно записать как атрибуты first, second и surname тега <name>:

<name first="Иван" second="Пeтрович" surname="Сидоров" />

В отличие от языка HTML в языке XML значения атрибутов обязательно надо заключать в кавычки или в апострофы.

Атрибуты удобны для описания простых значений. У каждого гражданина России, уважающего паспортный режим, обязательно есть одно имя, одно отчество и одна фамилия. Их лучше записывать атрибутами. Но у гражданина России может быть несколько телефонов, поэтому их номера удобнее оформить как элементы <work-phone> и <home-phone>, вложенные в элемент <phone-list>, а не атрибуты открывающего тега <phone-

list>. Заметьте, что элемент <name> с атрибутами пустой, у него нет тела, следовательно, не нужен закрывающий тег. Поэтому тег <name> с атрибутами завершается символами "/>". В листинге 28.2 приведена измененная адресная книжка.

Листинг 28.2. Пример XML-документа с атрибутами в открывающем теге

<?xml version="1.0" encoding="Windows-1251"?>

<!DOCTYPE notebook SYSTEM "ntb.dtd">

<notebook>

<person>

<name first=,,Иван,, second="Пeтрович" surname=,,Сидоров,, /> <birthday>25.03.1977</birthday>

<address>

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

<city>Урюпинск</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=,,Мария,, second="Пeтровна" surname=,,Сидорова,, />

<birthday>17.05.1969</birthday>