
- •XML означает Extensible Markup Language, с акцентом на markup
- •Документ XML обычно содержит следующие разделы:
- •XML-декларация
- •Пролог XML-документа
- •Элементы
- •Имена XML-элементов должны
- •Создание корневого элемента
- •Атрибуты XML-документа
- •Синтаксические правила создания атрибута:
- •Правила создания XML- документа
- •Комментарии
- •Текстовые данные XML-документа
- •Если XML- документ не нарушает приведенные правила, то он называется формально-правильным и все
- •Зачем нужно использовать DTD?
- •DTD описывает:
- •Объявление типа документа (DTD)
- •В рамках DTD доступны четыре определяющих инструкций для разработки определения типа документа:
- •Инструкция ATTLIST
- •dataType - тип данных для атрибута,
- •XML-документ:
- •Инструкция ELEMENT
- •Возможные параметры:
- •Пустые элементы
- •Элементы, содержащие только символьные данные
- •Зарезервированные слова и символы
- •Инструкция ENTITY
- •DTD-схема:
- •Инструкция NOTATION
- •Корневой элемент XXX должен содержать ровно один элемент AAA, а за ним -
- •Корневой элемент XXX может, но не обязан, содержать один элемент AAA,за которым должен
- •XML-схема (XSD)
- •XML схема поддерживает типы данных
- •Простой пример схемы на XML Schema, расположенной в файле "country.xsd" и описывающей данные
- •Так как мы сделали доступным пространство имен образцов XML схемы мы можем использовать
- •Элементы XML-схемы группируются по своей функциональности:
- •Элементы верхнего уровня XML-схем представлены в таблице
- •Простые типы элементов XML-схем
- •Простые типы элементов XML-схем
- •Атрибуты xs:element
- •Простой тип можно задать одним из следующих способов: restriction
- •Можно задать список допустимых значение
- •xsd:enumerati Определяет фиксированное значение, с которым
- •simpleContent
- •Комплексные типы элементов XML-схем
- •Примитивы XML-схем
- •Атрибуты
- •Следующий пример определяет группу, содержащую последовательность из трех элементов, и использует элемент group
- •• Атрибуты XML-схем
- •pattern
- •Фрагмент XML-документа
- •Программы для проверки корректности XML

Корневой элемент XXX может, но не обязан, содержать один элемент AAA,за которым должен идти один или несколько элементов BBB. Элемент AAA в свою очередь может содержать один элемент CCC и несколько элементов DDD. Элемент BBB должен содержать ровно один элемент CCC и один элемент DDD.:
<!ELEMENT XXX (AAA? , BBB+)> <!
<!ELEMENT BBBAAA (CCC?, D, DDD*)>
<!
ELEMENT CCC (#PCDATA)> <!
ELEMENT DDD (#PCDATA)>
41

<!ELEMENT XXX (AAA+, BBB+)> <!ELEMENT AAA (#PCDATA)> <!ELEMENT BBB (#PCDATA)> <!ATTLIST AAA
true ( yes | no ) #REQUIRED> <!ATTLIST BBB
month (1|2|3|4|5|6|7|8|9|10|11| 12) #IMPLIED>
42

<!DOCTYPE XXX SYSTEM "tutorial.dtd"> <XXX>
<AAA true="yes"/> <AAA true="no"/> <AAA true="yes"/> <BBB month="8" /> <BBB month="2" /> <BBB month="12" />
</XXX>
43

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

XML схема поддерживает типы данных
Одним из мощнейших свойств XML схемы является поддержка типов данных:
Упрощается описание содержимого документа
Упрощается определение ограничений по данным
Упрощается проверка корректности данных
Упрощается преобразование данных из одного типа в другой
45

Простой пример схемы на XML Schema, расположенной в файле "country.xsd" и описывающей данные о населении страны:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="country">
<xs:complexType>
<xs:sequence>
<xs:element name="country_name" type="xs:string"/> <xs:element name="population" type="xs:decimal"/> </xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример документа, соответствующего этой схеме: <?xml version="1.0" encoding="utf-8"?>
<country> <country_name>France</country_name> <population>59.7</population> </country>
46

Элемент <schema> - это корневой элемент каждой XML схемы:
<?xml version="1.0"?>
<xs:schema>
...
...
</xs:schema>
47

Элемент <schema> может содержать некоторые атрибуты. Часто декларация схемы имеет, например, такой вид:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
...
...
</xs:schema>
xmlns:xs="http://www.w3.org/2001/XMLSchema"
указывает на то, что используемые в схеме элементы и типы данных относятся к пространству имен "http://www.w3.org/2001/XMLSchema". Также здесь указывается, что элементы и типы данных, относящиеся к пространству имен "http://www.w3.org/2001/XMLSchema", должны иметь префикс xs
48

Так как мы сделали доступным пространство имен образцов XML схемы мы можем использовать атрибут noNamespaceSchemaLocation:
< xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSc hema-instance" xsi:noNamespaceSchemaLocation=“book.x sd">
. . . . . .
</ xs:schema >
49

Элементы XML-схемы группируются по своей функциональности:
Элементы верхнего уровняПримитивы
Множественные XML-документы и пространства имен
Ограничения IDENTITYАтрибутыИменованные объекты схемы
Определения сложных типовОпределения простых типов
50