
- •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

Можно задать список допустимых значение
<xs:element name="color">
<xs:simpleType>
<xs:restriction base="xs:string"> <xs:enumeration value="RED"/>
<xs:enumeration value="GREEN"/> <xs:enumeration value="BLUE"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
62

xsd:enumerati Определяет фиксированное значение, с которым |
|
on |
должен совпадать тип. |
xsd:fractionDi |
Определяет максимальное количество десятичных |
gits |
знаков справа от десятичной точки. |
xsd:length |
Определяет количество символов в строковом типе, |
количество байтов в двоичном типе или количество |
|
|
элементов в списочном типе. |
xsd:maxExclu |
Определяет исключающую верхнюю границу области |
sive |
значений типа. |
xsd:maxInclus Определяет включающую верхнюю границу области |
|
ive |
значений типа. |
|
Определяет максимальное количество символов в |
xsd:maxLengt строковом типе, максимальное количество байтов в |
|
h |
двоичном типе или максимальное количество |
|
элементов в списочном типе. |
xsd:minExclus Определяет исключающую нижнюю границу области |
||
ive |
значений типа. |
|
xsd:minInclusi Определяет включающую нижнюю границу области |
||
ve |
значений типа. |
|
xsd:minLengt |
Определяет минимальное количество символов в |
|
строковом типе, минимальное количество байтов в |
|
|
h |
двоичном типе или минимальное количество элементов |
|
|
в списочном типе. |
63 |
|
|

simpleContent
Элемент simpleContent позволяет задать элемент, как если бы он содержал тип simpleType без элементов, но позволяет ограничить значение содержимого элемента или дополнить этот элемент атрибутами.
Следующее объявление элемента с помощью элемента simpleContent содержит элемент complexType, задающий содержимое элемента как тип decimal с одним атрибутом (sizing).
64

<xs:element name="shoeSize"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="sizing">
<xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="US"/>
<xs:enumeration value="European"/> <xs:enumeration value="UK"/> <xs:enumeration value="Japan"/> </xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
65

Элемент <xsd:annotation>
Определяет заметку.
Аннотация может содержать элементы appinfo (информацию, которая будет использована приложениями) и элементы documentation (комментарии или текст для чтения или использования пользователями).
66

<xsd:documentation>
Задает сведения, которые читают или используют пользователи в элементе annotation.
Атрибуты
•source Источник сведений о приложении. Источник должен быть URI- идентификатором. Необязательный.
•xml:lang Индикатор языка, используемого в содержимом.
•Необязательный аргумент.
67

Элемент <xsd:appinfo>
Задает сведения, используемые приложениями в элементе annotation.
Атрибут
source Источник сведений о приложении. Источник должен быть URI-идентификатором. Необязательный аргумент.
68

<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="State">
<xs:annotation> <xs:documentation>State Name </xs:documentation>
<xs:appinfo>Application Information</xs:appinfo> </xs:annotation>
</xs:element>
</xs:schema>
69

Комплексные типы элементов XML-схем
Комплексные (сложные) типы элементов XML-схем – это элементы, содержащие вложенные элементы или атрибуты. Синтаксис сложных элементов:
<xs:element name="name"> <xs:complexType>
…
</xs:complexType>
</xs:element>
70

Например, для XML-документа вида: <note>
<to>Anny</to>
<from>Mama</from>
<title>Hello</title>
<mess>This is a good day!</mess> </note>
XML-схема будет следующего вида: <xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="title" type="xs:string"/> <xs:element name="mess" type="xs:string"/> </xs:sequence>
</xs:complexType>
</xs:element>
71

<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="книга" type="Книга" />
<xs:complexType name="Книга"> <xs:sequence>
<xs:element name="название" type="xs:string" />
<xs:element name="цена" type="xs:decimal" /> </xs:sequence>
</xs:complexType>
</xs:schema>
72

<книга
xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:noNamespaceSchemaLocation = "book.xsd">
<название>Основы
XML</название>
<цена>300</цена>
</книга>
73