Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
202
Добавлен:
17.04.2018
Размер:
333 Кб
Скачать
☆

ИП. SGML. DTD. Типы данных

МИЭТ, 2017

С точки зрения DTD, XML документ состоит из типов данных:

Элементы (<body>some text</body>)

Атрибуты (<img src="computer.gif" />)

Сущности (< &gt и т.д.)

PCDATA (анализируемый текст)

CDATA (НЕ анализируемый текст)

ИП. SGML. DTD. Описание элементов

МИЭТ, 2017

Формат описания: <!ELEMENT имя_элемента (модель_содержания) [EMPTY]>

Элементный — не может включать текст внутри тега;

<!ELEMENT project (title, authors?, img?, vuz, annotation?)>

Квантификаторы элементного типа

, - разделяет типы элементов допустимые внутри данного элемента | - разделяет альтернативные элементы + - одно или несколько вхождений ? - ноль или одно вхождение * - ноль или несколько вхождений

() - группировка, например для реализации вариантов для | - «или». Пример: (title | authors)

Текстовый — может включать только текст;

<!ELEMENT author (#PCDATA)>

Смешанный — может включать вложенные теги и текст;

<!ELEMENT projects (project | #PCDATA)>

Произвольный — может включать любое содержимое (не рекомендован).

<!ELEMENT projects ANY>

Ограничения смешанного типа:

нельзя определить порядок следования элементов

нельзя определить количество повторов элементов

одно и то же имя не может быть представлено в объявлении смешанного типа более одного раза.

ИП. SGML. DTD. Описание атрибутов

МИЭТ, 2017

Формат: <!ATTLIST имя_элемента имя_атрибута тип_атрибута применение_атрибута>

Пример: <!ATTLIST project title CDATA #REQUIRED>

 

Тип атрибута

Содержание атрибута в XML документе

 

CDATA

Любая символьная строка, не включающая символы разметки

( value1 | value2 | … )

Одно из предопределенных значений

 

ID

Значение атрибута должно быть уникальным для всего документа

IDREF

Значение атрибута элемента равно значению «ID-атрибута»

IDREFS

Значение атрибута может содержать несколько ID

 

NMTOKEN

Текст атрибута не содержит пробелов и символы разметки

 

NMTOKEN

Несколько NMTOKEN строк, разделяемых пробелами

 

ENTITY

Сущность

 

ENTITIES

Несколько сущностей

 

Применение атрибута

Действие

 

value

Это значение устанавливается по умолчанию

 

#REQUIRED

Атрибут - обязателен

 

#IMPLIED

Атрибут — не обязателен

 

#FIXED value

Установленное значение атрибута — не изменяемо

 

ИП. SGML. DTD. Примеры объявления атрибутов

МИЭТ, 2017

Валидный XML / Не валидный XML

DTD:

<!ELEMENT square EMPTY> <!ATTLIST square width CDATA "0"> <square width="100" />

<square />

DTD:

<!ATTLIST person number CDATA #REQUIRED> <person number="5677" />

<person />

DTD:

<!ATTLIST contact fax CDATA #IMPLIED> <contact fax="555-667788" /> <contact />

DTD:

<!ATTLIST sender company CDATA #FIXED "Sun Microsystems"> <sender company="Sun Microsystems" />

<sender company="Microsoft" />

ИП. «Генеалогия» XML. SGML. Введение в DTD

МИЭТ, 2017

Пример SGML-документа и его DTD-описания

<!DOCTYPE portfolio SYSTEM 'portfolio.dtd'> <projects>

<project id="000002" year="2017">

<title>Мобильное приложение “Student Assistant”</title> <authors>

<author country="RU">Илья Соловьёв</author> </authors>

<img width="185" height="46" href="https://miet.ru/bitrix/templates/.default/img/miee_logo2.png"/> <vuz>МИЭТ</vuz>

<annotation>Расписание + дополнительные опции</annotation>

<!-- объявляем элементы --> <!ELEMENT projects (project*)>

<!ELEMENT project (title, authors?, img?, vuz, annotation?)> <!ELEMENT authors (author+)>

<!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT img EMPTY> <!ELEMENT vuz (#PCDATA)> <!ELEMENT annotation (#PCDATA)>

<!-- объявляем параметрическую сущность (gjlcnfyjdre), которую используем в этом DTD --> <!ENTITY %number "NMTOKEN #REQUIRED">

<!-- объявляем атрибуты --> <!ATTLIST project

id %number #REQUIRED; year %number #REQUIRED>

<!ATTLIST img width %number; height %number;

href CDATA #REQUIRED>

ИП. XML. Разметка

Пролог

Объявление схем

DTD или XML Shema

Тело документа

элементы

комментарии

инструкции обработки

секции CDATA

МИЭТ, 2017

Формат:

<?xml version=”x.x” [encoding=”кодировка”] [standalone=(“yes” | “no”)] ?> Пример:

<?xml version="1.0" encoding="UTF-8"?>

Формат:

<!DOCTYPE имя модификатор URI > Пример:

<!DOCTYPE portfolio SYSTEM 'portfolio.dtd'> - каcтомный dtd <!DOCTYPE portfolio PUBLIC 'world/portfolio.dtd'> - общеизвестный dtd

Элементы:

<тег аттрибут1='значение' … > … </тег>

Комментарии:

<!-- текст комментария -->

Инструкции обработки: <?имя данные?>

имя — идентификатор обрабатывающего приложения данне — данные, которые передаются приложению

Секция CDATA <![CDATA[текст]]>

Определяет не обрабатываемый анализатором XML текст. Например, двоичный код картинки

ИП. XML. Пример xml-документа

МИЭТ, 2017

<?xml version="1.0" encoding="UTF-8"?>

<!-- <!DOCTYPE projects SYSTEM 'portfolio.dtd'> -->

<projects xmlns:miet="http://www.w3.org/2001/XMLSchema-instance" miet:schemaLocation="portfolio.xsd">

<project id="000001" year="2017">

<title>Мобильное приложение “Student Assistant”</title> <authors>

<author country="RU">Янис Василиадис</author> </authors>

<img width="185" height="46" href="https://miet.ru/bitrix/templates/.default/img/miee_logo2.png"/>

<vuz>МИЭТ</vuz>

<annotation>

Портал(доска) объявлений которая позволяет осуществлять информирование студентов и конечно главным плюсом является то, что информация надежно хранится и доступна откуда угодно(в отличии от “обычных” досок объявлений). К примеру, вакансии различных компаний,

</annotation>

</project>

</projects>

ИП. XML. Элементы или атрибуты

МИЭТ, 2017

Ограничения атрибутов:

атрибуты не могут содержать больше одного значения (дочерние элементы могут)

атрибуты тяжело расширяются (в случае каких-либо изменений)

структуры нельзя описать атрибутами (а дочерними элементами — можно)

программам тяжело работать с атрибутами

атрибуты не легко проконтролировать на соответствие единому определению типа документа, устанавливающему валидность того или иного XML документа.

ИП. XML. Правильность и валидность

МИЭТ, 2017

Правильный (well-formed) документ — документ, не содержащий ошибок разметки

Валидный (valid) документ — правильный документ, соответствующий опредлению типа документа (ОТД)

Виды ОДТ:

DTD

XML-sheme

ИП. XML. Правильность

МИЭТ, 2017

Элементы и атрибуты

Должен содержать хотя-бы один элемент

Если элементов несколько должен быть один корневой, включающий остальные

Запрещено перекрытие элементов (т.е. нарушение иерархии)

Начальный тег должен иметь одноименный конечный тег

Имена элементов и атрибутов:

Включают только: включать буквы, цифры, дефисы, символы подчеркивания и точки

Записаны в одном регистре

Начинаются с буквы или символа подчеркивания

Двоеточие может использоваться в имени только один раз для отделения пространства имен

Значения атрибутов заключаются в одинарные или двойные кавычки

Комментарии

Не может быть внутри тега Не может содержать «--» внутри текста

Соседние файлы в папке Интернет технологии