double arrow

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

<?xml version="l.0 encoding=”Windows-1251"?>

<! DOCTYPE notebook SYSTEM "ntb.dtd">

<notebook>

<person>

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

<birthday>25.03.1577</birthday>

<address>

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

<city>Урюпинск</city>

<zip>123456</zip>

</address>

<phone-list>

<work-phone>265432l</work-phone>

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

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

</phone-list>

</person>

<person>

<name first=”Мария” second=”Петровна” surname=”Сидорова” />

<birthday>17.05.1969</birthday>

<address>

<street>Ягодная, 17</street>

<city>Жмеринка</city>

<zip>23456K/zip>

</address>

<phone-list>

<home-phone>2331455<:/home-phone>

</phone-list>

</person>

</notebook>

Атрибуты открывающего тега удобны и для указания типа элемента. Например, мы не уточняем, в городе живет наш родственник, в поселке или деревне. Можно ввести в тег <city> атрибут type, принимающий одно из значений: город, поселок, деревня. Например:

<city type=“город“>Москва</city>

Для описания адресной книжки нам понадобились открывающие теги <notebook>, <person>, <name>, <address>, <street>, <city>, <zip>, <phone-list>, <work-phone>, <home-phone> и соответствующие им закрывающие теги, помеченные наклонной чертой. Теперь необходимо дать их описание. В описании указываются только самые общие признаки логической взаимосвязи элементов и их тип.

□ Элемент <notebook> может содержать в себе только нуль или больше элементов <person>.

• Элемент <person> содержит ровно один элемент <name>, нуль или несколько элементов <address> и нуль или один элемент <phone-list>.

• Элемент <name> пустой.

• В открывающем теге <name> три атрибута first, second, surname, значения которых — строки СИМВОЛОВ.

• Элемент <address> содержит по одному элементу <street>, <city> и <zip>.

• Элементы <street> и <city> содержат по одной текстовой строке.

• Элемент <zip> содержит одно целое число.

• У открывающего тега <city> есть один необязательный атрибут type, принимающий одно из трех значений город, поселок или деревня. Значение по умолчанию город.

• Необязательный элемент <phone-list> содержит нуль или более элемен­тов <work-phone> и <home-phone>.

• Элементы <work-phone> и <home-phone> содержат по одной строке, состоящей только из цифр.

Это словесное описание, называемое схемой документа XML, формализуется несколькими способами. Наиболее распространены два способа: можно сделать описание DTD, пришедшее в XML из SGML, или описать схему на языке XSD.

Ограниченные средства DTD не позволяют полностью описать структуру документа XML. В частности, описание DTD не указывает точное количество повторений вложенных элементов, оно не задает точный тип тела элемента. Например, в листинге 14.3 из описания DTD не видно, что в элементе <birthday> содержится дата рождения. Эти недостатки DTD привели к появлению других схем описания документов XML. Наиболее развитое описание дает язык XSD. Поэтому в 2001 году консорциум W3C (WWW Consortium) рекомендовал описывать структуру документов XML на языке описания схем XSD. Мы будем называть описание на этом языке просто схемой XML (XML Schema).

Посмотрим, как создаются схемы XML, но сначала познакомимся еще с одним понятием XML — пространством имен.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: