Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 453
Ильдар Шаукатович Хабибуллин
Документ XML состоит из
Закрывающий тег содержит наклонную черту, после которой повторяется имя открывающего тега.
Язык XML, в отличие от языка HTML, требует обязательно записывать закрывающие теги. Если у элемента нет тела и закрывающего тега (empty —
<br />
Сразу надо сказать, что язык XML, в отличие от HTML, различает регистры букв.
Из листинга 28.1 видно, что элементы документа XML могут быть вложены друг в друга. Надо следить за тем, чтобы элементы не пересекались, а полностью вкладывались друг в друга. Как уже говорилось ранее, все элементы, составляющие документ, вложены в корневой элемент этого документа. Тем самым документ наделяется структурой дерева вложенных элементов. На рис. 28.1 показана структура адресной книжки, описанной в листинге 28.1.
Рис. 28.1. Дерево элементов документа XML |
У открывающих тегов XML могут быть
<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>