- •XML DTD и Пространства имён
- •Цели занятия
- •документа – Document Type Definition
- •Зачем использовать DTD
- •Структура DTD
- •Объявление Элемента
- •Пустой элемент
- •Элементы с данными
- •Элементы
- •соответствии с частотой появления элементов
- •Объявление смешанного содержания
- •Объявление атрибутов
- •Атрибут (атрибут – типы значений)
- •Атрибут (атрибут – значение по умолчанию)
- •Внутреннее определение DTD
- •Внешнее определение DTD
- •Объявление внутреннего примитива
- •Объявление внешнего примитива
- •Пространства имён XML – 1
- •XML Namespaces - 2
- •Need of a Namespace
- •Синтаксис для пространства имён – 1
- •Атрибуты и пространства имён
- •Пространства имён в приложениях
- •использования пространства имён
- •Подведение итогов
XML DTD и Пространства имён
Цели занятия
Понимание Определения типа документа (Document Type Definition)
Создание определений DTD
Объявление элемента (Element)
Объявление атрибутов (attributes)
Объяснить использование DTD
Понимание пространств имён
Использование пространств имён
Примеры использования пространств имён
документа – Document Type Definition
Это свойство языка SGML, которое унаследовал язык XML
Содержит список тэгов, допустимых в документе XML, а также определяет грамматическую структуру документа XML
Также определяет способ, которым элементы связываются друг с другом в древовидной структуре документа
Документы XML, основанные на DTD, будут содержать декларацию (объявление) <!DOCTYPE>, которая содержит объявление DTD, или определяет местонахождение внешнего DTD.
DTD бывают двух типов
Внешние DTD
Внутренние DTD
Зачем использовать DTD
DTD используются XML, чтобы предоставить приложениям независимый способ совместного использования данных
Общее DTD может быть использовано для обмена данными между независимыми группами людей
DTD может быть использовано приложением для проверки вводимых данных на корректность и допустимость
Определяет корректные структурные блоки для создания документа XML
Структура DTD
|
Объявление DOCTYPE |
|
|
|
|
|
<!DOCTYPE dtd-name |
|
|
|
|||||
|
|
|
|||||
|
|
|
|
|
|
|
[ |
|
|
|
|
|
|
||
|
Объявление ЭЛЕМЕНТА |
|
|
|
<!ELEMENT element-name |
||
|
|||||||
|
|||||||
|
|
|
|
|
|
|
(element-content type) > |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Объявление АТРИБУТА |
|
|
|
<!ATTLIST element-name |
||
|
|||||||
|
|||||||
|
|
|
|
|
|
|
attribute-name attribute-type |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
default-value> |
|
|
|
|
|
|
|
]> |
|
|
|
|
|
|
|
|
Объявление Элемента
Элементы XML объявляются посредством декларации (объявления) элемента
Синтаксис
<!ELEMENT element-name (element-content type)>
Пример
<!ELEMENT SHOWROOM
(TV|LAPTOP)+>
Пустой элемент
Пустой (EMPTY) элемент-тип содержимого определяет, что данный элемент не имеет ни элементов потомков, ни символьных данных.
Ключевое слово EMPTY задаётся в круглых скобках
Синтаксис
<!ELEMENT element-name (EMPTY)>
Пример
<!ELEMENT img (EMPTY)>
Пустые элементы могут иметь атрибуты
<img src=“Tittle.gif”></img>
Элементы с данными
Это элементы содержат данные, и эти данные также объявляются с указанием соответствующего типа
Тип данных указывается в круглых скобках
Синтаксис
<!ELEMENT element-name (#CDATA)>
или
<!ELEMENT element-name (#PCDATA)>
или
<!ELEMENT element-name (ANY)>
#CDATA означает, что этот элемент содержит символьные данные, которые не обрабатываются синтаксическим анализатором
#PCDATA означает, что элемент содержит данные, которые должны быть обработаны синтаксическим анализатором
Ключевое слово ANY объявляет элемент с произвольным содержимым
Элементы
сэлементами-потомками
Элементы с одним или несколькими элементами потомками записываются с указанием имён потомков в круглых скобках
Синтаксис
<!ELEMENT element-name (child-element-name)>
или
<!ELEMENT element-name (child-element-name, child- element-name,.....)>
Элементы потомки объявляются в последовательном списке, разделённом запятыми
Пример
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT |
to |
(#CDATA)> |
<!ELEMENT |
from |
(#CDATA)> |
<!ELEMENT |
heading (#CDATA)> |
<!ELEMENT |
body |
(#CDATA)> |
соответствии с частотой появления элементов
Единственное вхождение
<!ELEMENT element-name (child-name)>
Нуль и более вхождений
<!ELEMENT element-name (child-name*)>
Частота появления элемента
Как минимум одно вхождение
<!ELEMENT element-name (child-name+)>
Нуль или одно вхождение
<!ELEMENT element-name (child-name?)>