
- •Лекция 402
- •Состав DTD.
- •Виды DTD
- •Внутреннее DTD
- •Внешнее системное DTD
- •Внешнее общедоступное DTD
- •Смешанное DTD
- •DTD. Определение элемента
- •DTD. Определение элемента.
- •DTD. Определение элемента.
- •DTD. Определение элемента. Список значений (перечисление и выбор)
- •DTD. Определение элемента. Смешанный тип содержимого
- •DTD. Определение элемента. Пример (DTD)
- •DTD. Определение элемента. Пример (Документ XML)
- •DTD. Определение атрибутов элемента. Запись определения
- •DTD. Определение атрибутов элемента. Задание значения атрибута
- •DTD. Определение атрибутов элемента. Задание типа атрибута
- •DTD. Определение атрибутов элемента. Строковые атрибуты
- •DTD. Определение атрибутов элемента. Маркированные атрибуты
- •DTD. Определение атрибутов элемента. Маркированные атрибуты. Пример 1 (DTD)
- •DTD. Определение атрибутов элемента. Маркированные атрибуты. Пример 1 (Документ XML)
- •DTD. Определение атрибутов элемента. Маркированные атрибуты. Пример 2 (DTD)
- •DTD. Определение атрибутов элемента. Маркированные атрибуты. Пример 2 (Документ XML)
- •DTD. Определение атрибутов элемента. Атрибуты по перечислению. Задание
- •DTD. Определение атрибутов элемента. Атрибуты по перечислению. Пример DTD
- •DTD. Атрибут xml:space
- •DTD. Атрибут xml:lang
- •DTD. Атрибуты xml:space и xml:lang. Пример (DTD -1)
- •DTD. Атрибуты xml:space и xml:lang. Пример (DTD -2)
- •DTD. Атрибуты xml:space и xml:lang. Пример (Документ XML)
- •DTD. Сущности (определение и типы)
- •DTD. Анализируемые внутренние сущности
- •DTD. Анализируемые внутренние сущности. Пример (определение сущности)
- •DTD. Анализируемые внутренние сущности. Пример (вывод документа на экране)
- •DTD. Анализируемые внешние сущности
- •DTD. Неанализируемые сущности
- •DTD. Параметрические сущности
- •DTD. Параметрические сущности (пример)
- •DTD. Нотации. Определение
- •DTD. Нотации. Пример 1 (DTD)
- •DTD. Нотации. Пример 1 (Документ XML)
- •DTD. Нотации. Пример 2 (DTD)
- •DTD. Нотации. Пример 2 (Документ XML)
- •DTD. Условные разделы. Определение
- •DTD. Условные разделы. Пример

DTD. Нотации. Пример 1 (Документ XML)
<menu>
<menuitem image="news" title="News“ href="news.htm"/>
<menuitem image="products" title="Products" href="products.htm"/>
<menuitem image="support" title="Support" href="support.htm"/>
</menu>
Определения нотации с именами gif и jpg определяют приложения для обработки изображений форматов .gif
и .jpeg, а сущности с именами определяют соответственно ссылки на нотации с именами gif и jpg.
Вэлементах menuitem значения атрибутов image являются соответственно сущностями news, products и support.
41

DTD. Нотации. Пример 2 (DTD)
Вторым способом использования нотаций является присвоение определенного формата содержимому элемента. Один (но не более чем один) из атрибутов элемента может иметь тип NOTATION. Значением этого атрибута должно быть имя нотации, которое и будет задавать формат содержимого элемента.
<!DOCTYPE root [
<!ELEMENT root (#PCDATA)> <!ATTLIST root
type NOTATION (rtf|htm|txt) #REQUIRED> <!NOTATION rtf SYSTEM "winword.exe"> <!NOTATION htm SYSTEM "iexplore.exe"> <!NOTATION txt SYSTEM "notepad.exe">
]>
42

DTD. Нотации. Пример 2 (Документ XML)
<root type="htm"> <![CDATA[
<html>
<head>
<title>Welcome Page</title> </head>
<body>
<h1>Добро пожаловать на наш сайт!</h1> </body>
</html>
]]> </root>
Вэтом документе определяется три нотации и, соответственно, три формата данных: rtf, htm и txt. Значение htm атрибута type элемента root определяет
формат данных, и, соответственно программу, которая |
41 |
будет вызываться для обработки этого документа. |

DTD. Условные разделы. Определение
Во внешнем DTD можно включать или исключать отдельные определения. Для этого используются условные разделы, которые задаются с помощью одного из определений
(INCLUDE или IGNORE):
<! [INCLUDE! [
<!ELEMENT имя (#PCDATA)>
]]>
<! [ IGNORE [
<!ELEMENT имя (#PCDATA)>
]]>
При использовании первого формата определение с
именем имя будет включено в DTD, при использовании
второго формата – исключено из DTD.
44

DTD. Условные разделы. Пример
<!ENTITY % draft 'INCLUDE' >
<!ENTITY % final 'IGNORE' >
…
<![%draft;[
<!ELEMENT book (comments*, title, body, supplements?)>
]]>
<![%final;[
<!ELEMENT book (title, body, supplements?)>
]]>
Параметрическая сущность с именем draft будет включена в DTD, а Параметрическая сущность с именем final – исключена из DTD.
45