- •XML DTD и Пространства имён
- •Цели занятия
- •документа – Document Type Definition
- •Зачем использовать DTD
- •Структура DTD
- •Объявление Элемента
- •Пустой элемент
- •Элементы с данными
- •Элементы
- •соответствии с частотой появления элементов
- •Объявление смешанного содержания
- •Объявление атрибутов
- •Атрибут (атрибут – типы значений)
- •Атрибут (атрибут – значение по умолчанию)
- •Внутреннее определение DTD
- •Внешнее определение DTD
- •Объявление внутреннего примитива
- •Объявление внешнего примитива
- •Пространства имён XML – 1
- •XML Namespaces - 2
- •Need of a Namespace
- •Синтаксис для пространства имён – 1
- •Атрибуты и пространства имён
- •Пространства имён в приложениях
- •использования пространства имён
- •Подведение итогов
Объявление смешанного содержания
Элемент может содержать смешанную комбинацию элементов и элементов потомков
Пример
<!ELEMENT note (to+, from, header, message*,#PCDATA)>
Подэлементы и подгруппы могут быть объявлены, как последовательности или как альтернативы
Последовательность
<!-- Элемент A состоит из единственного элемента B. -->
<!ELEMENT A (B)>
<!-- Элемент A состоит из элемента B, за которым следует элемент C . --> <!ELEMENT A (B, C)>
<!-- Элемент A состоит из последовательности, включающей подгруппу выбора . --> <!ELEMENT A (B, (C | D), E>
Выбор
<!-- Элемент A состоит либо из элемента B, либо из элемента C . -->
<!ELEMENT A (B | C)>
<!-- Элемент A состоит из подгруппы выбора, включающей последовательность . --> <!ELEMENT A (B | C | (D, E))>
Объявление атрибутов
Элементы могут иметь атрибуты
Синтаксис
<!ATTLIST element-name attribute-name attribute-type default-value>
Пример
<!DOCTYPE Book
[
<!ELEMENT Book (Title, Chapter+)> <!ATTLIST Book
Author CDATA #REQUIRED> <!ELEMENT Chapter (#PCDATA)> <!ATTLIST Chapter
id (4 | 7) #REQUIRED> <!ELEMENT Title (#PCDATA)>
]>
Атрибут (атрибут – типы значений)
|
Значение |
Описание |
|
CDATA |
Значение – символьные данные |
|
|
Значение должно быть перечисляемым типом значения |
|
|
|
|
(eval|eval|..) |
Значение – уникальный идентификатор id |
|
Значение – идентификатор id другого элемента |
|
|
ID |
|
|
Значение – список других идентификаторов id |
|
|
IDREF |
|
|
Значение – допустимое в XML имя |
|
|
IDREFS |
|
|
Значение – список имён, допустимых в XML |
|
|
NMTOKEN |
|
|
|
|
|
NMTOKENS |
Значение – примитив (entity) |
|
Значение – список примитивов |
|
|
|
|
|
ENTITY |
Значение – имя нотации (notation) |
|
ENTITIES |
|
|
Значение предопределено |
|
|
NOTATION |
|
|
|
Атрибут (атрибут – значение по умолчанию)
Значение |
Описание |
|
|
|
|
#DEFAULT |
Атрибут имеет значение по умолчанию |
|
значение |
||
|
||
|
|
|
#REQUIRED |
Значение атрибута обязательно должно быть |
|
включено в элемент |
||
|
||
|
|
|
#IMPLIED |
Атрибут не требует обязательного включения |
|
|
|
|
#FIXED значение |
Значение атрибута фиксировано (постоянно) |
|
|
|
Внутреннее определение DTD
Записано непосредственно в документе XML сразу после декларации XML
Написание DTD в определении DOCTYPE называется
"Обёртыванием" (Wrapping).
Файл с DTD и кодом XML имеет расширение .xml
<!DOCTYPE SHOWROOM
[
<!ELEMENT SHOWROOM (TV|LAPTOP)+> <!ELEMENT TV (#PCDATA)> <!ATTLIST TV
count CDATA #REQUIRED> <!ELEMENT LAPTOP(#PCDATA)>
<!ATTLIST LAPTOP
count CDATA #REQUIRED>
]
>
Внешнее определение DTD
Существует за пределами содержимого документа
Расширением файла DTD является .dtd
Ссылка на файл DTD добавляется в начало файла XML
Ссылка на DTD в файле документа XML
<!DOCTYPE SHOWROOM SYSTEM "show.dtd">
Файл show.dtd
<!ELEMENT SHOWROOM (TV|LAPTOP)+> <!ELEMENT TV (#PCDATA)>
<!ATTLIST TV |
|
||
count |
CDATA |
#REQUIRED> |
|
<!ELEMENT |
LAPTOP (#PCDATA)> |
||
<!ATTLIST |
LAPTOP |
|
|
count |
CDATA |
#REQUIRED> |
Объявление внутреннего примитива
Примитивы, которые включают своё содержимое в документ XML, называются внутренними примитивами
Синтаксис
<!ENTITY entity-name "entity-value">
Пример DTD
<!ENTITY writer "Jan Egil Refsnes."> <!ENTITY copyright "Copyright XML101.">
В документе XML ссылки на примитивы должны выполняться, как показано ниже
<author>&writer;©right;</author>
Объявление внешнего примитива
Примитивы, чьё содержимое находится за пределами документа XML, называются внешними примитивами
Они объявляются с использованием ключевого слова SYSTEM
В документе XML на эти примитивы ссылаются только как на внешние
Синтаксис
<!ENTITY entity-name SYSTEM "URI/URL">
Пример
<!ENTITY writer SYSTEM
"http://www.xml101.com/entities/entities.xml">
<!ENTITY copyright SYSTEM
"http://www.xml101.com/entities/entities.dtd">
Пространства имён XML – 1
Пространство имён – это набор имён, который может быть использован в документах XML, как имена элементов или атрибутов.
Пространства имён идентифицируют имя, как присутствующее в определённом домене
Также позволяют комбинировать документы из различных источников и обеспечивают идентификацию источника элементов и атрибутов.
Обеспечивают доступ к такой информации, как DTD или другие описания элементов и атрибутов для проверки корректности документа.
XML Namespaces - 2
В XML для идентификации пространств имён используется универсальный идентификатор ресурса URI (Uniform Resource Identifier)
В состав URI входят универсальное имя ресурса Uniform Resource Name (URN) и универсальный указатель ресурса Uniform Resource Locator (URL)
URL содержит ссылку на документ или на HTML страницу в web среде
URN – это уникальный номер, который идентифицирует ресурсы Интернет.