
- •Лекция 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)
<e-mail>
<address name="Ivanov">ivanov@post.com</address>
<address name="Petrov">petrov@post.com</address> <address name="Sidorov">sidorov@post.com</address>
<letter from="Ivanov" to="Petrov“ subject="Поздравление">
Поздравляю с днем рождения! </letter>
<proposal from="Petrov Sidorov" to="Ivanov"> Предложение Иванову от Петрова и Сидорова
</proposal> </e-mail>
21

DTD. Определение атрибутов элемента. Маркированные атрибуты. Пример 2 (DTD)
<?xml version="1.0" encoding="Windows-1251"?> <!DOCTYPE user-list [
<!ELEMENT user-list user+> <!ELEMENT user EMPTY> <!ATTLIST user
name NMTOKENS #REQUIRED birth_date NMTOKEN #REQUIRED
address NMTOKENS #REQUIRED
>
]>
22

DTD. Определение атрибутов элемента. Маркированные атрибуты. Пример 2 (Документ XML)
<user-list>
<user name="Иванов Иван Иванович" birth_date="01:12:1979"
address="Country:Украина City:Киев
Street:Полевая Building:56 Flat:12"/>
<user name="John Smith" birth_date="24:08:1979"
address="Country:USA City:New-York
Street:1-th Avenue Building:125 Flat:84"/> </user-list>
23

DTD. Определение атрибутов элемента. Атрибуты по перечислению. Задание
Атрибуты по перечислению представляются списком значений. Атрибуты могут принимать одно значение из списка значений, предоставляемых в объявлении. Тип перечисления может задаваться:
нотациями (notation type);
собственно перечислениями (enumeration).
Перечисление – это одно или несколько имен, которые разделены пробелами и символами "|". Перечисление задает несколько возможных вариантов значения атрибута, например.
Хотя в качестве значения можно использовать ключевые слова #IMPLIED или #REQUIRED, обычно используется значение по умолчанию.
24

DTD. Определение атрибутов элемента. Атрибуты по перечислению. Пример DTD
<!ELEMENT font (#PCDATA)>
<!ATTLIST font
face (Arial|Times_New_Roman| Courier_New)"Arial"
size (10pt|12pt|14pt|18pt) "12pt" style (normal|bold|italic) "normal"
>
25

DTD. Атрибут xml:space
Специальный атрибут, называемый xml:space, может быть присоединён к элементу для того, чтобы уведомить процессор о намерении сохранить пробел в данном элементе для использования приложением. Если данный атрибут объявляется, он должен быть задан как перечислимый тип, значениями которого могут быть либо "default" или "preserve", либо одно из значений.
Значение "default" указывает, что для данного элемента принимаются режимы обработки по умолчанию пробелов в данном приложении, а значение "preserve" задает режим сохранения в приложении всех пробелов. Это определение действует для всех элементов внутри содержимого элемента, для которого оно задано, если только оно не переопределяется другим экземпляром атрибута xml:space. Обычно атрибут xml:space указывается, если необходимо сохранить исходное
<!ATTLIST poem xml:space (default|preserve) 'preserve'> <!ATTLIST pre xml:space (preserve) #FIXED 'preserve'>
Примеры: |
26 |

DTD. Атрибут xml:lang
Для определения языка содержимого элемента и языка значений атрибутов в элемент документа может быть вставлен специальный атрибут xml:lang. Значением атрибута являются коды языков, например,
"uk", "ru", "en", "en-US" или "en-GB".
Вправильных документах этот атрибут, как
инекоторые другие, обязан быть объявлен, если используется.
27

DTD. Атрибуты xml:space и xml:lang. Пример (DTD -1)
<?xml version="1.0" encoding="Windows-1251"?> <!DOCTYPE program-book [
<!ELEMENT program-book
(name, language, description, program)+> <!ATTLIST program-book
xml:space (default|preserve) 'default'
>
<!ELEMENT name (#PCDATA)> <!ATTLIST name
xml:lang (en|ru) 'en'
>
28

DTD. Атрибуты xml:space и xml:lang. Пример (DTD -2)
<!ELEMENT language (#PCDATA)> <!ATTLIST language
xml:lang (en|ru) 'ru'
>
<!ELEMENT description (#PCDATA)> <!ATTLIST description
xml:lang (en|ru) 'ru'
>
<!ELEMENT program (#PCDATA)> <!ATTLIST program
xml:space (preserve) #FIXED 'preserve'
>
]>
29

DTD. Атрибуты xml:space и xml:lang. Пример (Документ XML)
<program-book> <name>add2.c</name>
<language xml:lang="en">C</language>
<description>Сложение двух чисел</description>
<program>
int main(void)
{
int a1, a2, sum; printf("Введите слагаемые:");
scanf("%d %d", &a1, &a2); sum = a1 + a2;
printf("Сумма:", sum);
}
</program>
</program-book>
30