
- •Часть №1
- •Лабораторная работа №1 Структура xml документа
- •Лабораторная работа №2 Пространство имен и сущности
- •Лабораторная работа №3 Комментарии, разделы cdata,инструкции по обработке
- •Часть№2
- •Лабораторная работа №1 Синтаксис dtd
- •Лабораторная работа №2 Дочернее содержимое элемента, задание смешанного содержимого
- •Лабораторная работа №3 Атрибуты
- •Лабораторная работа №4 Подмножества dtd
- •Лабораторная работа №5 Валидность документа dtd
- •Валидность документа
- •Требования корректности формирования и валидности
- •Лабораторная работа №6 Общие внутренние и внешние примитивы dtd.
- •Xод работы:
- •Лабораторная работа №7 Параметрические внутренние и внешние примитивы
- •Xод работы:
- •Лабораторная работа №8 Ссылки на примитивы
- •Xод работы:
- •Использование предварительно определенных примитивов
- •Создайте xml-документ с использованием предварительно определенных примитивов и ссылками на примитивы на любую тематаку.
- •Отобразите документ в браузере Часть №3
- •Изучить встроенные простые типы данных xmlShema.
- •Xод работы:
- •Типы long, int, short и byte
- •Отобразите документ в браузере Лабораторная работа №2 Определение простых типов данных и пространство имен
- •Сужение
- •Не более чем из пяти целых чисел следующим образом:
- •Создайте xmlShema документ с простыми типами данных и пространством имен имен, для этого сделайте следующие:
- •Лабораторная работа №3 Объявление элементов и их атрибутов
- •Создание группы элементов и атрибутов в сложном типе
- •Лабораторная работа №5 Определение типа со сложным телом,
- •Лабораторная работа №6 Аннотирование схем, включение файлов схемы в другую схему
- •Часть №4
- •Лабораторная работа №1 Входной и выходной документы, инструкция обработки и корневой элемент
- •Лабораторная работа №2 Описание структуры с помощью шаблонов
- •Лабораторная работа №3 Встроенные шаблонные правила
- •Лабораторная работа №4 Модульная организация преобразования
- •Лабораторная работа №5 Инструкции управления
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Часть №5
- •Лабораторная работа №1 Интерфейс программы и создание xsd документа
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Xslt трансформация
- •Лабораторная работа №4 Создание документа dtd и его применение к xml.Конвертирование dtd в Shema.
- •Напечатайте следующий тест:
Часть№2
DTD
Лабораторная работа №1 Синтаксис dtd
Цель работы:
Изучить основы DTD
Ход работы:
DTD
Если синтаксис XML-документов успешно выдержал проверку, они называются
действительными; в частности, XML-документ считается действительным, если
в его состав включено определение DTD (document type definition, определение типа
документа) или XML-схема, а сам документ не противоречит схеме (определению
DTD). Отметим, что определения DTD задают структуру и синтаксис XML-документов (а не их содержание). Это все, что необходимо для создания действительного документа
Добавление DTD
Объявление типа документа представляет собой блок XML-разметки, который вы должны добавить в пролог валидного XML-документа. Он может располагаться в любом месте пролога – вне другой разметки – после XML-объявления, как показано на рисунке 2.0. (Напомним, что если вы включаете XML-объявление, оно должно располагаться в начале документа.)
Рисунок 2.0
Объявление типа документа определяет структуру документа. Если вы открываете документ, не содержащий объявления типа, в браузере, процессор браузера всего лишь осуществляет проверку документа на корректность формы составления. Если же вы открываете документ, содержащий объявление типа документа, процессор браузер будет проверять документ на валидность вместе с проверкой на корректность формы составления, так что ваш документ должен отвечать всем имеющимся декларациям в объявлении типа документа. Так, вы не сможете включить в документ какие-либо элементы или атрибуты, если вы не объявили их в объявлении типа документа. Каждый элемент и атрибут, который вы включаете, должен соответствовать спецификации (например, допустимости применения данного содержимого элемента или типа атрибута), выраженной в соответствующем объявлении.
Форма записи DTD
Объявление типа документа имеет следующую обобщенную форму записи:
<!DOCTYPE Имя DTD>
Здесь Имя указывает на имя элемента Документ. Имя действительного элемента Документ должно в точности соответствовать имени, записанному в объявлении.
Например, если вы создаете объявление типа документа для документа, рассмотренного в предыдущем разделе, вам следует использовать имя INVENTORY:
<!DOCTYPE INVENTORY DTD>
DTD состоит из символа левой квадратной скобки ([), после которой следует ряд объявлений разметки, заканчивающихся правой квадратной скобкой (]). Объявления разметки описывают логическую структуру документа; т.е. задают элементы документа, атрибуты и другие компоненты. На рисунке 2.1 приведен законченный валидный XML-документ, содержащий DTD с единственным объявлением разметки, которое определяет один тип элемента в документе, SIMPLE.
Рисунок 2.1
Типы объявляемых элементов
Существует пять различных видов моделей содержимого:
Пустые элементы
Простейшая модель, которую можно объявить, это пустой элемент, и состоит она из ключевого слова EMPTY. Например:
<!ELEMENT graphic EMPTY>
Элементы без ограничений на содержимое
Эта модель содержимого объявляет элемент, который может содержать любые другие элементы. Она использует ключевое слово ALL:
<!ELEMENT contain_anything ALL>
Элементы, содержащие только символьные данные
Элементы, содержащие только элементы
Содержимое, состоящее только из элементов, описывается с помощью формулы в особых обозначениях, приведенных в табл. 2.0.
Такая модель содержимого может выглядеть, например, следующим образом:
<!ELEMENT article (para+)>
<!ELEMENT article (title, (para | sect1)+)>
<!ELEMENT article (title, subtitle?, ((para+, sect1*) | sect1+))>
Элементы со смешанным содержимым
Смешанное содержимое (mixed content) представляет собой смесь элементов и символьных данных. Элемент с содержимым этого т па должен объявляться с помощью модели содержимого, следующей такому шаблону:
<!ELEMENT para (#PCDATA | emphasis | xref)*>
Первым идет ключевое слово ELEMENT. За ним следуют имя элемента, список допустимых элементов и #PCDATA, разделяемых вертикальной чертой (|) и заключенных в круглые скобки, и, наконец,
звездочка. Звездочка, вопросительный знак и другие символы, применяемые в моделях содержимого элементов, описаны в табл. 2.0
Таблица 2.0
Символ |
Значение |
?
+ * |
Ни одного или один из предшествующих элементов Один или более из предшествующих элементов Ни одного или более из предшествующих элементов
|
В качестве примера рассмотрим законченный XML-документ с двумя типами элементов. Объявление типа элемента COLLECTION указывает, что он может содержать один или несколько элементов CD, а объявление типа элемента CD указывает, что он может содержать только символьные данные. Заметим, что документ соответствует этим объявлениям, и, следовательно, является валидным:
<?xml version="1.0" encoding="windows-1251" ?>
<!DOCTYPE COLLECTION
[
<!ELEMENT COLLECTION (CD)+>
<!ELEMENT CD (#PCDATA)>
<!-- Вы также можете включать комментарии в DTD. -->
]
>
<COLLECTION>
<CD>Mozart Violin Concertos 1, 2, and 3</CD>
<CD>Telemann Trumpet Concertos</CD>
<CD>Handel Concerti Grossi Op. 3</CD>
</COLLECTION>
Создайте валидный XML-документ, для это сделайте следующее:
Откройте новый файл в вашем текстовом редакторе и введите текст XML-документа, листинг которого представлен ниже
Листинг 2.0
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE library
[
<!ELEMENT library (Book)+>
<!ELEMENT Book (#PCDATA)>
<!ELEMENT AUTHOR (#PCDATA)>
<!ELEMENT BINDING (#PCDATA)>
<!ELEMENT PAGES (#PCDATA)>
<!ELEMENT PRICE (#PCDATA)>
]
>
<library>
<BOOK>The Adventures of Huckleberry Finn</BOOK>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</library>
Воспользуйтесь командой Save (Сохранить) текстового редактора, для сохранения документа на вашем жестком диске, присвоив ему имя DTD.xml.
Откройте файл в вашем браузере и вас ложно получится то что представлено на
рисунке 2.2
Рисунок 2.2