Смекни!
smekni.com

Методические указания к лабораторным работам для студентов III курса фпми всех направлений и специальностей новосибирск (стр. 2 из 6)

<! 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 описываются элементы, входящие в сложный тип, и/или атрибуты открывающего тега.

2. Перечень вопросов к разработке

1. Изучить конструкции языка XML, способы описания структуры документа средствами DTD, описания схемы документа на языке XSD.

2. В соответствии с вариантом задания средствами DTD описать структуру документа.

3. Описать схему документа на языке XSD.

4. В соответствии с разработанной схемой написать валидный правильно оформленный XML-документ.

5. С помощью файла Validity_test.htm проверить XML-документ на валидность.

6. Оформить отчет, включающий постановку задачи, тексты XML, DTD, XSD документов, демонстрацию работы программ.

7. Защитить лабораторную работу.

3. Варианты заданий

1. Адресная книга. В адресной книге хранятся: имя, отчество, фамилия человека, его адрес проживания, место работы, должность, домашний и рабочие телефоны. Так же у некоторых может иметься фотография. Как домашних, так и рабочих телефонов может быть несколько или не быть вообще. Человек может работать в нескольких разных фирмах. Он может занимать в одной и той же фирме несколько должностей.

2. Книжный каталог. В книжном каталоге хранятся: название книги, ее авторы, ISBN номер, цена, краткое описание, фотография обложки, количество страниц, год и место издания, язык на котором она написана. У каждой книги может быть несколько авторов. Каждая книга может иметь несколько вариантов различных изданий. Например, одна и та же книга может быть издана на русском и английском языках, или различными изданиями и, следовательно, иметь различные обложки и цену.

3. Аптечная база. В аптечной базе хранятся: наименование товара, количество, краткое описание, дата поступления товара на базу, дата выпуска, срок хранения, цена, фирма-производитель с указанием контактной информации (телефоны и адрес). Причем информация о фирме-производителе товара должна храниться в отдельном файле. Товар с одним и тем же наименованием может поступать на базу в различные периоды времени различными партиями, при этом цена, дата выпуска, фирма-производитель так же может поменяться.

4. База студентов. В базе студентов хранятся: ФИО студента, фотография, факультет, группа, дата поступления, оценки за экзамены с датой их сдачи, ФИО, должностью и кафедрой преподавателя, принявшего экзамен. Студент может пересдавать экзамен несколько раз разным преподавателям или одному и тому же, но при этом должность преподавателя может к этому времени измениться. Так же студент может сдавать экзамены преподавателю из другого института: в этом случае кроме ФИО, должности и кафедры, так же должен храниться и университет, в котором работает преподаватель и контактная информация (телефон, который может быть не один).

5. Расписание занятий. Расписание занятий у каждой группы свое. Для каждого дня недели расписание свое. При этом некоторые дни недели могут быть свободны. Кроме этого расписание на четной и нечетной неделе может отличаться. В расписании указывается название предмета, тип (лекция, практика, лабораторные работы), аудитория (корпус и номер), в которой будет проходить занятие, ссылка на информацию о преподавателе, которая хранится в отдельном файле. В информацию о преподавателе входит ФИО, должность, кафедра, университет, контактная информация (телефон рабочий, домашний, E-mail). Необходимо учесть, что рабочий телефон может быть не один, домашнего телефона может не быть или быть несколько, e-mail может не быть или быть несколько.

4. Контрольные вопросы

1. Что такое языки разметки. Стилистическая, структурная и семантическая разметки.

2. История развития языков разметки: SGML, HTML, XML.

3. Структура XML-документа. Правильно оформленные и верные документы.

4. Зачем нужно определение типа документа (DTD). Общие принципы написания определений DTD.

5. Недостатки и особенности определений DTD.

6. Примитивы. Определение. Типы примитивов и их краткая характеристика.

7. Пространство имен.


Лабораторная работа №2

Отображение XML-документа с помощью каскадной таблицы стилей

Цель работы: Изучить основы CSS. Научиться отображать XML-документы с использованием каскадной таблицы стилей.

1. Методические указания

Для того, чтобы сообщить браузеру (в частности, Microsoft Internet Explorer 5), как обрабатывать и отображать каждый из созданных вами XML-элементов, можно воспользоваться таблицей стилей [5-6]. С помощью данного метода вы связываете таблицу стилей с XML-документом. Таблица стилей представляет собой отдельный файл, содержащий инструкции для форматирования индивидуальных XML-элементов. Вы можете использовать каскадную таблицу стилей (Cascading Style Sheet – CSS), которая также применяется для HTML-страниц.

Можно выделить два основных этапа при использовании таблицы каскадных стилей для отображения XML-документа: