
- •Интернет-программирование
- •ИП. XML. Введение
- •ИП. «Генеалогия» XML
- •ИП. SGML
- •ИП. SGML-декларация
- •ИП. SGML-декларация для HTML4
- •ИП. SGML-декларация для XML
- •ИП. SGML. Введение в DTD
- •ИП. SGML. DTD. Типы данных
- •ИП. SGML. DTD. Описание элементов
- •ИП. SGML. DTD. Описание атрибутов
- •ИП. SGML. DTD. Примеры объявления атрибутов
- •ИП. «Генеалогия» XML. SGML. Введение в DTD
- •ИП. XML. Разметка
- •ИП. XML. Пример xml-документа
- •ИП. XML. Элементы или атрибуты
- •ИП. XML. Правильность и валидность
- •ИП. XML. Правильность
- •ИП. XML. Корректность
- •ИП. XML. Пространство имен
- •ИП. XML. XML-схема
- •ИП. XML. XML-схема
- •ИП. XML. XML-схема. Простые элементы
- •ИП. XML. XML-схема. Атрибуты
- •ИП. XML. XML-схема. Составные элементы
- •ИП. XML. XML-схема. Составные элементы
- •ИП. XML. XML-схема. Составные элементы
- •ИП. XML. XML-схема. Индикаторы
- •ИП. XML. XML-схема. Ссылка ref
- •ИП. XML. XML-схема. Ссылка ref
- •ИП. XML. XML-схема. Пример XML-документа и его схемы
- •ИП. Работа с XML
- •ИП. Работа с XML. PHP. Валидация
- •ИП. Работа с XML. PHP.
- •ИП. Работа с XML. JavaScript
- •ИП. Работа с XML. Java

ИП. XML. Корректность |
МИЭТ, 2017 |
Поскольку в XML некоторые символы имеют специальное значения, в текстах тегов и атрибутов такие символы должны быть заменены на специальные последовательности:
Символ |
Заменяющая последовательность |
< |
< |
& |
& |
> |
> |
` (амперсанд) |
' |
'' (двойная кавычка) |
" |
В XML определены два метода записи специальных символов: ссылка на сущность (entity) и ссылка по номеру символа.
Задание символа кодом: код: AT&T

ИП. XML. Пространство имен |
МИЭТ, 2017 |
При использовании XML документов возможны ситуации конфликтор имен т. е. ситуации когда одно и то-же имя элемента определяет элемент с разным содержанием. Например, это может быть при объединении больших XML документов.
Решение - определение пространств имен вида:
xmlns[:prefix]="пространство имен"
Пример использования пространства имен:
<?xml version="1.0" encoding="utf-8"?> <vuz:document xmlns:vuz="http://www.miet.ru"
xmlns:="http://www.w3.org/2001/XMLSchema">
<vuz:kafedra>
<title>ИПОВС</title>
<authors>
<author>Гагарина Л.Г.</author> <author>Илюшечкин В.М.</author>
<authors>
</vuz:section>
</vuz:document>

ИП. XML. XML-схема |
МИЭТ, 2017 |
XML схема описывает структуру XML документа в виде подобном самому XML документу. Это позволяет получить функциональность DTD не запоминая синтаксис DTD.
XML-схема |
DTD |
Определение модели содержания (т.е. правила вхождения элементов друг в друга и порядок следования друг за другом и допустимое количество одних элементов в других)
Определение состава атрибутов и правил применимости их в элементах
Определение значений по умолчанию |
|
Поддерживают типы данных |
Определение сущностей (подстановок) |
Расширяются (наследованием) |
|
Поддерживают пространства имен |
|

ИП. XML. XML-схема |
МИЭТ, 2017 |
Каждая XML-схема содержит корневой элемент <shema>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
// элементы с префиксом xs будут относиться к пространству имен www.w3.org
xmlns="http://miet.ru"
// элементы без префикса будут относиться к пространству имен miet.ru
targetNamespace="http://miet.ru"
// элементы определяемые этой схемой будут относиться к пространству имен miet.ru
>
// определения элементов
</xs:schema>
Подключение схемы к XML документу. Схема подключается к элементу
<projects xmlns:miet="http://www.w3.org/2001/XMLSchema-instance" miet:schemaLocation="portfolio.xsd">
// содержание: xml-теги и т.д
</projects>

ИП. XML. XML-схема. Простые элементы |
МИЭТ, 2017 |
Простые элементы не имеют ни атрибутов ни вложенных элементов
Формат: <xs:element name="name" type="date_type"/>
Наиболее часто используемые типы данных (date_type):
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
<!-- определение простых элементов --> <xs:element name="title" type="xs:string"/>
<!-- элемент в XML -->
<title>Мобильное приложение “Student Assistant”</title>

ИП. XML. XML-схема. Атрибуты |
МИЭТ, 2017 |
Формат: <xs:attribute name="name" type="date_type"/>
Наиболее часто используемые типы данных (date_type):
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
<!-- определение атрибутов -->
<xs:attribute name="year" type="xs:integer" default="2017"/>
<!-- элемент в XML -->
<project id="000001" year="2017">

ИП. XML. XML-схема. Составные элементы |
МИЭТ, 2017 |
Существует четыре вида составных элементов:
элементы, которые содержать только другие элементы
элементы, которые содержать как другие элементы, так и текст
элементы, которые содержать только текст
пустые элементы при этом все они могут содержать атрибуты
Описание элемента, который может содержать только другие элементы
<!-- определение составных элементов -->
<xs:element name="projects">
<xs:complexType>
<xs:sequence>
<xs:element ref="project" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

ИП. XML. XML-схема. Составные элементы |
МИЭТ, 2017 |
Описание элемента, который может содержать только текст
<!-- определение составных элементов -->
<xs:element name="author">
<xs:complexType>
<xs:simpleContent> <xs:extension base="xs:string">
<xs:attribute ref="country"/>
</xs:extension>
</xs:simpleContent> </xs:complexType>
</xs:element>
Описание пустого элемента. Например: <product articul="1345" />
<!-- определение составных элементов -->
<xs:element name="product">
<xs:complexType>
<xs:attribute name="articul" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>

ИП. XML. XML-схема. Составные элементы |
МИЭТ, 2017 |
Описание элемента, который может содержать текст и элементы
<!-- определение составных элементов -->
<xs:element name="projects"> <xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="project" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence>
</xs:complexType>
</xs:element>

ИП. XML. XML-схема. Индикаторы |
МИЭТ, 2017 |
Индикаторы очередности:
all |
- |
любой порядок элементов |
choice |
- либо один элемент, либо другой |
|
sequence |
- |
точный порядок элементов |
Индикаторы частотности:
minOccurs |
- |
минимальное число вхождений (0-отсутствие) |
MaxOccurs |
- |
максимальное число вхождений |
<!-- определение составных элементов --> <xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10" minOccurs="1"/>
</xs:choice>
</xs:complexType>
</xs:element>