![](/user_photo/14845_E12Et.png)
- •Лекция 5
- •Правильные и валидные документы
- •Document type definition (DTD)
- •Пример размещения внутри документа
- •Пример размещения DTD снаружи документа
- •Назначение DTD
- •Блоки XML документа
- •Определение элемента
- •Определение элемента
- •Определение суб-элементов
- •Количество суб-элементов
- •Смешанное содержание
- •Атрибуты
- •Типы атрибутов
- •Атрибуты: значения по-умолчанию
- •Атрибуты: значение по-умолчанию
- •Атрибуты: значение по-умолчанию
- •Определение нескольких атрибутов
- •Сущности
- •Внешние сущности
- •Работа с XML на платформе Java
- •Разбор (анализ) документа
- •Разбор документа
- •Иерархия интерфейсов DOM
- •Начало анализа
- •Перечисление суб-элементов
- •Перечисление суб-элементов
- •Перечисление суб-элементов
- •Текстовое содержимое элемента
- •Перечисление атрибутов
- •Валидация документа
- •Создание XML документа
- •Сохранение XML документа
Лекция 5
XML
Правильные и валидные документы
Правильный (well-formed) документ — документ, не содержащий ошибок
Валидный (valid) документ — правильный документ, соответствующий опредлению типа документа (ОТД) (от англ DTD — document type definition)
Document type definition (DTD)
DTD определяет «правильную» струтуру документа.
Размещение внутри документа:
<!DOCTYPE root-element [element-declarations]>
Размещение во внешнем файле:
<!DOCTYPE root-element SYSTEM "filename">
Пример размещения внутри документа
<?xml version="1.0"?> <!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to |
(#PCDATA)> |
<!ELEMENT from |
(#PCDATA)> |
<!ELEMENT heading |
(#PCDATA)> |
<!ELEMENT body |
(#PCDATA)> |
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body> </note>
Пример размещения DTD снаружи документа
Файл note.xml:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body> </note>
Файл note.dtd:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
Назначение DTD
Использование DTD позволяет хранить формат документа в самом документе
Приложение, использующее «валидные» документы, может с помощью DTD контролировать целостность данных (напр. полученных через интернет)
DTD позволяет так же верифицировать сохраненные данные
Блоки XML документа
С точки зрения DTD, XML документ состоит из блоков следующих типов:
Элементы (<body>some text</body>)
Атрибуты (<img src="computer.gif" />)
Сущности (< > и т.д.)
PCDATA (анализируемый текст)
CDATA (НЕ анализируемый текст)
Определение элемента
Элемент в DTD определяется:
<!ELEMENT имя-элемента категория>
или
<!ELEMENT имя-элемента (содержимое- элемента)>
Категории: EMPTY, ANY
<!ELEMENT br EMPTY> <!ELEMENT note ANY>
Определение элемента
Элемент с текстом:
<!ELEMENT имя-элемента (#PCDATA)>
Элемент с суб-элементом:
<!ELEMENT имя-элемента (child1)>
или
<!ELEMENT имя-элемента
(child1,child2,...)>
Пример:
<!ELEMENT note (to,from,heading,body)>
Определение суб-элементов
Порядок расположения суб-элементов в XML документе соответствует порядку в определении элемента
Суб-элементы так же должны быть определены в DTD
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to |
(#PCDATA)> |
|
<!ELEMENT from |
(#PCDATA)> |
|
<!ELEMENT |
heading (#PCDATA)> |
|
<!ELEMENT |
body |
(#PCDATA)> |