<! DOCTYPE root_element_name […здесь находятся декларации внутреннего подмножества ... ]>
Для внешних DTD декларация DOCTYPE состоит из обычного ключевого слова и имени корневого элемента, за которым следует еще одно ключевое слово SYSTEM либо PUBLIC, обозначающее источник внешнего определения DTD, а за ним — локализация этого определения.
Допустимое в документе XML содержание определяется с помощью четырех типов декларации разметки в DTD. В таблице 1 показаны связанные с этими декларациями ключевые слова и их значения. Первые два типа связаны с информацией, которую мы рассчитываем найти в документе XML, — элементами и атрибутами. Последние два типа используются для поддержки. Особенно облегчают жизнь разработчика словаря XML сущности. Как правило, они состоят из содержания, которое настолько часто используется в DTD или документе, что оправдывает создание специальной декларации. Нотации описывают содержание, разработанное не на языке XML. Используются они для того, чтобы объявить конкретный класс данных и связать его с внешней программой.
Таблица 1.
Конструкция DTD | Значение |
ELEMENT | Декларация типа элемента XML |
ATTLIST | Декларация атрибутов, которые могут быть назначены конкретным типам элементов, а также разрешенных значений этих атрибутов |
ENTITY | Декларация повторно используемого содержания |
NOTATION | Декларация форматирования для внешнего содержания, которое не должно быть проанализировано (например, двоичные данные), а также для внешних приложений, обрабатывающих содержание |
Описание схемы документа на языке XSD
Связать XML-документ с его XSD-схемой можно разными способами[2-5,7-8]:
1. подать файлы со схемой на вход анализатора.
2. задать файлы со схемой как свойство анализатора.
3. указать прямо в документе XML.
Рассмотрим 3 способ более подробно.
Если элементы документа не принадлежат никакому пространству имен и записаны без префикса, то в корневом элементе документа записывается атрибут noNamespaceSchemaLocation, указывающий расположение файла со схемой в форме URI:
< root_element_name xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:noNamespaceSchemaLocation="file_name.xsd">
В этом случае в схеме не должно быть целевого пространства имен.
Если же элементы документа относятся к некоторому пространству имен, то применяется атрибут schemaLocation, в котором через пробел перечисляются пространство имен и расположение файла со схемой, описывающей это пространство имен.
Элементы, из которых будет состоять документ XML, объявляются в схеме компонентом element:
<xsd:element name="имя элемента" tуре="тип элемента" minOccurs="Haменьшее число появлений элемента в документе" maxOccurs="наибольшее число появлений" />
Значение по умолчанию необязательных атрибутов minOccurs и maxOccurs равно 1. Это означает, что если эти атрибуты отсутствуют, то элемент должен появиться в документе XML ровно один раз.
Указание типа элемента в атрибуте type удобно, если это встроенный простой тип или тип, определенный заранее. Тогда в атрибуте type можно записать только имя типа.
Если же тип элемента определяется здесь же, то определение типа элемента лучше вынести:
<xsd:element name=”имя элемента”>
Определение типа элемента
</xsd:element>
Объявление атрибута элемента тоже несложно:
<xsd:attribute name=" имя атрибута" type="тип атрибута" use="обязательность атрибута" default="значение по умолчанию" />
Необязательный атрибут use принимает три значения:
-optional — описываемый атрибут необязателен (это значение по умолчанию);
-required — описываемый атрибут обязателен;
-prohibited — описываемый атрибут неприменим. Это значение полезно при определении подтипа, чтобы отменить некоторые атрибуты базового типа.
Определение типа атрибута, — а это должен быть простой тип, — можно вынести в содержимое элемента attribute:
<xsd:attribute name="имя атрибута">
Тип атрибута
</xsd:attribute>
Простой тип в схемах XML определяется компонентом схемы simpleType, имеющим вид:
<xsd:simpleType name="имя типа”> Определение типа </xsd:simpleType»
Кроме встроенных типов в схемах XML можно определить новые типы простых элементов. Они вводятся как:
1. сужение (restriction) встроенного или ранее определенного простого типа;
2. список (list) простых типов;
3. объединение (union) простых типов.
Кроме простых типов есть сложные типы. Тип элемента называется сложным, если в элемент вложены другие элементы и/или в открывающем теге элемента есть атрибуты.
Сложный тип определяется компонентом complexType, имеющим вид:
<xsd:complexType name="имя типа" >
Определение типа
</xsd:complexType>
Необязательный атрибут name задает имя типа, а в содержимом компонента complexType описываются элементы, входящие в сложный тип, и/или атрибуты открывающего тега.
1. Изучить конструкции языка XML, способы описания структуры документа средствами DTD, описания схемы документа на языке XSD.
2. В соответствии с вариантом задания средствами DTD описать структуру документа.
3. Описать схему документа на языке XSD.
4. В соответствии с разработанной схемой написать валидный правильно оформленный XML-документ.
5. С помощью файла Validity_test.htm проверить XML-документ на валидность.
6. Оформить отчет, включающий постановку задачи, тексты XML, DTD, XSD документов, демонстрацию работы программ.
7. Защитить лабораторную работу.
1. Адресная книга. В адресной книге хранятся: имя, отчество, фамилия человека, его адрес проживания, место работы, должность, домашний и рабочие телефоны. Так же у некоторых может иметься фотография. Как домашних, так и рабочих телефонов может быть несколько или не быть вообще. Человек может работать в нескольких разных фирмах. Он может занимать в одной и той же фирме несколько должностей.
2. Книжный каталог. В книжном каталоге хранятся: название книги, ее авторы, ISBN номер, цена, краткое описание, фотография обложки, количество страниц, год и место издания, язык на котором она написана. У каждой книги может быть несколько авторов. Каждая книга может иметь несколько вариантов различных изданий. Например, одна и та же книга может быть издана на русском и английском языках, или различными изданиями и, следовательно, иметь различные обложки и цену.
3. Аптечная база. В аптечной базе хранятся: наименование товара, количество, краткое описание, дата поступления товара на базу, дата выпуска, срок хранения, цена, фирма-производитель с указанием контактной информации (телефоны и адрес). Причем информация о фирме-производителе товара должна храниться в отдельном файле. Товар с одним и тем же наименованием может поступать на базу в различные периоды времени различными партиями, при этом цена, дата выпуска, фирма-производитель так же может поменяться.
4. База студентов. В базе студентов хранятся: ФИО студента, фотография, факультет, группа, дата поступления, оценки за экзамены с датой их сдачи, ФИО, должностью и кафедрой преподавателя, принявшего экзамен. Студент может пересдавать экзамен несколько раз разным преподавателям или одному и тому же, но при этом должность преподавателя может к этому времени измениться. Так же студент может сдавать экзамены преподавателю из другого института: в этом случае кроме ФИО, должности и кафедры, так же должен храниться и университет, в котором работает преподаватель и контактная информация (телефон, который может быть не один).
5. Расписание занятий. Расписание занятий у каждой группы свое. Для каждого дня недели расписание свое. При этом некоторые дни недели могут быть свободны. Кроме этого расписание на четной и нечетной неделе может отличаться. В расписании указывается название предмета, тип (лекция, практика, лабораторные работы), аудитория (корпус и номер), в которой будет проходить занятие, ссылка на информацию о преподавателе, которая хранится в отдельном файле. В информацию о преподавателе входит ФИО, должность, кафедра, университет, контактная информация (телефон рабочий, домашний, E-mail). Необходимо учесть, что рабочий телефон может быть не один, домашнего телефона может не быть или быть несколько, e-mail может не быть или быть несколько.
1. Что такое языки разметки. Стилистическая, структурная и семантическая разметки.
2. История развития языков разметки: SGML, HTML, XML.
3. Структура XML-документа. Правильно оформленные и верные документы.
4. Зачем нужно определение типа документа (DTD). Общие принципы написания определений DTD.
5. Недостатки и особенности определений DTD.
6. Примитивы. Определение. Типы примитивов и их краткая характеристика.
7. Пространство имен.
Отображение XML-документа с помощью каскадной таблицы стилей
Цель работы: Изучить основы CSS. Научиться отображать XML-документы с использованием каскадной таблицы стилей.
Для того, чтобы сообщить браузеру (в частности, Microsoft Internet Explorer 5), как обрабатывать и отображать каждый из созданных вами XML-элементов, можно воспользоваться таблицей стилей [5-6]. С помощью данного метода вы связываете таблицу стилей с XML-документом. Таблица стилей представляет собой отдельный файл, содержащий инструкции для форматирования индивидуальных XML-элементов. Вы можете использовать каскадную таблицу стилей (Cascading Style Sheet – CSS), которая также применяется для HTML-страниц.
Можно выделить два основных этапа при использовании таблицы каскадных стилей для отображения XML-документа: