40600

Формирование документа XML и его DTD

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

Информатика, кибернетика и программирование

Язык XML – это язык разметки, описывающий целый класс объектов данных, называемых документами XML. Документы XML обычно хранятся в виде текстовых файлов с расширением

Русский

2014-11-30

570.5 KB

6 чел.

Лабораторная работа 4-01

Формирование документа XML и его DTD

1. Цель работы

Целью работы приобретение навыков формирования определения типов данных (DTD) для документов XML.

  

2. Состав рабочего места

2.1. Оборудование: IBM-совместимый   персональный компьютер (ПК).

2.2. Программное обеспечение: операционная система Windows, программа XMLSpy или другая программа-анализатор DTD.

3. Краткие теоретические сведения

3.1. Компоненты документов XML 

3.1.1. Структура документа XML

Язык XML – это язык разметки, описывающий целый класс объектов данных, называемых  документами XML. Документы XML обычно хранятся в виде текстовых файлов с расширением .xml.

Каждый документ XML имеет логическую и физическую структуру.

Физически документ состоит из единиц, называемых экземплярами. Экземпляр может ссылаться на другие экземпляры, что вызывает их включение в документ. Документ начинается в "корне" – экземпляре документа, который служит корневым объектом дерева экземпляров. В  отличие от других экземпляров, экземпляр документа не имеет имени.

Документ XML содержит текст – последовательность  символов Unicode, которая может представлять символьные данные или разметку.

Имена в XML представляют собой последовательность букв, цифр, а также символов '.', '-', '_' и ':'. Первым символом имени должна быть  буква или символ '_' или символ ':'. Имена в XML являются зависящими от регистра.

Имена, начинающиеся строкой "xml" или строкой, в которой последовательность букв xml представлена в любом регистре (например, "XML" или "Xml"),  зарезервированы для целей стандартизации. 

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

Литералы  заключаются в апострофы (одинарные или двойные). Если в значениях литералов используются апострофы, для ограничения атрибутов используются другие апострофы, например:

'"scott"' или "'123'"

Литералы не должны содержать символов "<" и "&", которые используются в XML как управляющие символы.

Логически документ содержит текстовые данные и разметку. Компонентами разметки являются:

  •  объявления (declarations);
  •  элементы (elements);
  •  инструкции по обработке (processing instructions);
  •  секции CDATA;
  •  ссылки (references);
  •  комментарии (comments).

Документы XML, которые удовлетворяют требованием к формированию имен и синтаксису элементов документа, называются правильными (well-formed) документами XML.

Рассмотрим подробнее компоненты документа.

3.1.2. Объявления

Объявления в документе XML могут быть объявлением XML (XML declaration) и объявлением типа документа – DTD (Data Type Definition).

Документы XML должны начинаться объявлением XML, называемым также прологом документа. Объявление XML имеет следующий вид:

<?xml version="версия" [encoding="кодировка"] 

[standalone="yes | no"]/>

Атрибут version содержит информацию о версии XML, в соответствии с которой был создан этот документ. Текущей версией языка XML является 1.0.

Необязательный атрибут encoding сообщает, в какой кодировке создан данный документ. По умолчанию выбрана кодировка Unicode UTF-8, но если текст документа содержит русские буквы, то необходимо задавать атрибут encoding в виде encoding="windows-1251".

Атрибут standalone указывает на то, использует ли документ какие-либо внешние объявления или нет. Опция standalone, имеющая значение "yes", означает, что документ не содержит таких объявлений, и, значит, может быть обработан без обращения к внешним источникам.

3.1.3. Элемент

Дескрипторы в XML-документе не просто размечают текст, а  выделяют объект, который и называется элементом. Элементы являются основными структурными единицами XML, поскольку именно они иерархически организуют информацию, содержащуюся в документе.

Элементы могут быть пустыми, то есть не содержать ни данных, ни других конструкции, либо непустыми — включать в себя текст, другие элементы и т. п.

Пустой элемент имеет следующий вид:

<имя атрибут1="значение1" атрибут2="значение2"… />

Непустые элементы имеют вид:

<имя атрибут1="значение1" атрибут2="значение2"…  >

содержимое элемента

</имя>

Имена элементов и атрибутов в документе XML принять записывать строчными буквами.

Имена в открывающем и закрывающем дескрипторах должны совпадать.

Содержимое элемента может состоять из других элементов (elements), ссылок (references), секций символьных данных (CDSections), инструкции по обработке (PI) и комментариев (Comment), перемешанных с символьными Данными (CharData).

Допустимые атрибуты для элементов и допустимые значения для этих атрибутов для документа XML указываются в DTD (DTD будут подробно рассмотрены ниже).

В языке XML атрибуты всегда должны иметь значения.

В XML один элемент не может иметь атрибуты с одинаковыми именами.

Вместе с тем, значение атрибута может содержать ссылки на символы.

3.1.4. Инструкция по обработке

В XML-документы могут быть включены не относящиеся к содержимому документа инструкции, несущие информацию для приложения, которое будет этот документ обрабатывать. Инструкции по обработке имеют вид:

<?приложение содержимое?>

Инструкция по обработке всегда заключается в угловые скобки со знаками вопроса. Первая часть инструкции, приложение, определяет программу или систему, которой предназначена вторая часть, ее содержимое.  

Целевое приложение может иметь любое имя (кроме "xml" в любом регистре символов).

3.1.5. Секции CDATA

Секции CDATA выделяют части документа, внутри которых текст не должен восприниматься как разметка и могут задаваться в тех местах документа, в которых размещается текст. Секции CDATA задаются следующим образом:

<![CDATA[содержимое]]>

Например, если текст документа содержит  синтаксис разметки документов, для того, чтобы он воспринимался именно как текст,  можно поместить такие данные внутрь секции CDATA.

Раздел CDATA не может содержать последовательность символов "]]>", поскольку она используется для завершения раздела CDATA.

3.1.6. Ссылки

В текст документа могут вставляться ссылки на символы и ссылки на сущности.

Ссылки на символы обычно используются, когда необходимо вставить в текст документа, символы, отсутствующие на клавиатуре (например, греческие буквы или символы математических операций). Эти ссылки формируются одним из следующих способов:

  •  &#xHH; – где HH представляет   собой шестнадцатеричный код символа в кодировке, указанной в атрибуте encoding объявления документа XML (в представлении кода можно использовать буквы a-f как в нижнем, так и в верхнем регистре);
  •  &#DD; – где DD представляет   собой десятичный код символа в кодировке, указанной в атрибуте encoding объявления документа XML.  

Ссылка на сущность определяется следующим образом:

&имя; 

где имя – это имя сущности.

Встроенные сущности приведены в табл. 4.1.1.

Таблица 4.1.1. Встроенные сущности языка XML

Имя сущности

Значение

Описание

lt

<

знак "меньше"

gt

>

знак "больше"

amp

&

амперсант

apos

'

апостроф или одинарные кавычки

quot

"

двойные кавычки

Все остальные сущности должны быть определены в предложении <!ENTITY …> в DTD.

Ссылки на сущности используются, если документ XML содержит повторяющиеся части или если документ XML разбивается на отдельные модули.  

3.1.7. Комментарии

XML-документ может содержать комментарии, которые записываются так же, как и в HTML:

<!-- текст комментария -->

Текст комментария может состоять из любых символов, кроме двух минусов подряд ("--"). Кроме этого, комментарий не должен заканчиваться символом "-".

3.2. Объявление типа документа (DTD)

3.2.1. Структура DTD 

Определение типа документа DTD (Document Type Definition) является той основой, на которой создаются документы XML.

Определение DTD представляет собой набор правил, определяющий инструкции, которые могут быть переданы анализатору (parser) для обработки им этого документа. Анализатор, в свою очередь, отправляет результаты в приложение, обеспечивающее обработку данных (например, просмотр документа).

Объявление типа документа состоит из одного или нескольких правил-ограничений структуры документа. В частности, DTD позволяет задавать следующие правила:

  •  element — определение элемента;
  •  attlist — определение списка атрибутов элемента;
  •  entity — определение сущности;
  •  notation — определение нотации.

Объявление типа документа помещается в начало XML-документа (сразу после объявления документа XML) и имеет следующий  синтаксис:

<!DOCTYPE 

>

Объявление типа документа может быть внутренним и внешним. Во внутреннем DTD правила для элементов задаются следующим образом:

<!DOCTYPE имя [ 

правила структуры документа

]>

При использовании внешнего DTD предложение DOCTYPE имеет один из следующих форматов:

<!DOCTYPE имя SYSTEM "URI">

<!DOCTYPE имя PUBLIC "владелец" "URI">

Можно также дополнять внешние определения внутренними, например:

<!DOCTYPE имя PUBLIC "владелец" "URI" [ 

правила структуры документа

]>

Здесь параметр имя  определяет имя корневого элемента документа XML. Значение SYSTEM в DTD означает, что пользователь использует собственное (системное) внешнее DTD, которое загружается с помощью  URI (Universal Resource Identifier – универсальный идентификатор ресурса). Внешнее DTD – это текстовый файл с расширением .dtd, который содержит правила структуры документа XML.

Параметр PUBLIC означает, что в документе используется общедоступное DTD (например, DTD для языка HTML). В этом случае, помимо URI, указывается и объявление владельца DTD в формате, принятом в языке SGML. Если DTD является стандартом ISO (International Standard Organization – Международная организация стандартизации), то объявление начинается символами ISO. Если DTD не является стандартом ISO, но официально принято группой стандартизации, то объявление начинается с символа "+", если же DTD не принято группой стандартизации – то с символа "-". Далее обычно указывается владелец данного DTD, наименование DTD и язык DTD, разделенные символами  "//".

Документы XML, имеющие внутреннее или внешнее DTD и соответствующие требованиям этого DTD, а также являющиеся правильными документами XML, называются действительными (valid)  документами XML. 

3.2.2. Определение элемента

Определение элемента задает имя и тип содержимого элемента в следующем виде:

<!ELEMENT имя содержимое>

Параметр имя задает имя элемента.  В качестве содержимого элемента может быть указано:

  •  EMPTY, в случае, когда элемент обязан быть пустым (без содержимого);
  •  ANY, в случае, когда элемент может содержать что угодно;
  •  список, определяющий элементы-потомки и порядок их следования;
  •  смешанное содержимое.

В случае, когда содержимое элемента с помощью списка, для задания списка элементов используются следующие шаблоны:

  •  a? означает, что элемент a может быть пропущен в последовательности;
  •  a  означает, что элемент a должен присутствовать в последовательности на этом месте ровно один раз;
  •  a*  задает последовательность из нуля или более элементов a;
  •  a+  задает последовательность из одного или более элементов a.

Кроме того, содержимое может моделироваться как перечисление и выбор элементов.

Элементы перечисляются через запятую в круглых скобках, например (a, b, с) означает последовательность, состоящую из элементов a, b и c. Такая запись означает, что первым должен идти элемент a, затем сразу же за ним элемент b и элемент c.

Выбор элемента задается аналогично перечислению, но в качестве разделителя используется символ "|". При записи выбора и перечисления элементы могут также указываться с использованием модификаторов количества. Помимо этого, формальные правила могут использовать при записи другие формальные правила.

Содержимое элементов может быть смешанным, т.е. включать только символьные данные, которые обозначаются при помощи ключевого слова #PCDATA (parsable character data –  анализируемые символьные данные), либо символьные данные или элементы потомки.

3.2.3. Определение атрибутов элемента

Список атрибутов некоторого элемента задается следующим образом:

<!ATTLIST элемент

атрибут-1 тип-1 значение-1

атрибут-2 тип-2 значение-2...

>

В этом определении параметр элемент задает имя элемента, для которого определяется данный список атрибутов, атрибут-i  имя i-го атрибута, тип-i  тип i-го атрибута и значение-i  значение i-го атрибута.

Параметр значение-i определяет, как и какие значения должны быть присвоены атрибуту. Параметр может принимать одно из следующих значений:

  •  ключевое слово #REQUIRED, которое показывает, что этот атрибут должен всегда присутствовать в элементе и иметь некоторое значение;
  •  ключевое слово #IMPLIED, которое показывает, что атрибут является необязательным и может отсутствовать в элементе;
  •  ключевое слово #FIXED, за которым следует значение, заключенное в кавычки (задает атрибут, который всегда должен иметь одно и то же фиксированное значение);
  •  значение, заключенное в кавычки, которое определяет значение атрибута по умолчанию.

Параметр тип-i определяет тип атрибута. В XML существуют три различных типа атрибутов:

  •  строковые атрибуты (String Type);
  •  маркированные атрибуты (Tokenized Type);
  •  перечислимые атрибуты (Enumerated Type).

Строковые атрибуты (тип  CDATA) могут   принимать в качестве значения любые символьные строки.

Маркированные атрибуты имеют один из следующих фиксированных значений типов:

  •  ID  уникальный идентификатор для элемента в документе. Значение ID должно состоять из имени – буквы или символа подчеркивания, за которыми могут следовать другие символы;
  •  IDREF  указывает на элемент с заданным значением ID;
  •  IDREFS указывает на два и более элемента в документе при помощи списка ID, в котором элементы списка отделены друг от друга пробелами;
  •  ENTITY  указывает на внешнюю сущность (значение должно состоять из имени, а также должно соответствовать имени внешней сущности);
  •  ENTITIES  указывает на две и более внешних сущностей при помощи списка сущностей,  в котором элементы списка отделены друг от друга пробелами;
  •  NMTOKEN  принимает значение имени (в отличие от значений типа CDATA, которые могут содержать любые символы, значения NMTOKEN могут содержать только буквы, цифры, а также ".", "-", "_" и ":");
  •  NMTOKENS  принимает значение двух или более имен, разделенных пробелами.

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

Специальный атрибут, называемый xml:space, может быть присоединён к элементу для того, чтобы уведомить процессор о намерении сохранить пробел в данном элементе для использования приложением. Если данный атрибут объявляется, он должен быть задан как перечислимый тип, значениями которого могут быть либо "default" или "preserve", либо одно из значений.

Значение "default" указывает, что для данного элемента принимаются режимы обработки по умолчанию пробелов в данном приложении, а значение "preserve" задает режим  сохранения в приложении всех пробелов. Это определение действует для всех элементов  внутри содержимого элемента,  для которого  оно задано, если только оно не переопределяется другим экземпляром атрибута xml:space. Обычно атрибут xml:space указывается, если необходимо сохранить исходное форматирование документа, например, при выводе программы или стихов.

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

3.2.4. Определение сущности

В документе XML можно определять свои сущности (внутренние сущности) или использовать сущности, определенные в другом файле (внешние сущности).  Ссылка на сущность имеет следующий формат

&имя;

Используемые в документе XML сущности могут быть двух типов:

  •  анализируемые внешние сущности (parsed entities) воспринимаются и обрабатываются как данные XML;
  •  неанализируемые  внешние сущности (unparsed entities) данные, не обрабатываемые XML (например, изображения или бинарные файлы, которые используются в данном документе).

Внутреннее определение сущности, задаваемое  во внутреннем DTD, может быть только анализируемой сущностью и имеет следующий формат

<!ENTITY имя "значение">

где параметр имя задает имя сущности, которое будет использоваться в ссылке на сущность в документе XML, а литерал значение – это значение сущности, на которое будет заменяться ссылка на сущность в документе XML.

Определение внешней анализируемой сущности имеет один из следующих форматов:

<! ENTITY имя SYSTEM "URI">

<! ENTITY имя PUBLIC "владелец" "URI">

В этом определении параметр имя задает имя сущности, а параметры "URI" и "владелец", также как и для определения DOCTYPE определяют местонахождение файла со значением сущности и ее владельца. Файл, содержащий значение сущности (без окаймляющих апострофов) обычно имеет расширение .ent. Если в значении сущности используются буквы не латинского алфавита, их необходимо представлять, как сущности символов Unicode.    

Для неанализируемой сущности (которая может быть только внешней сущностью) определение имеет один из следующих форматов:

<!ENTITY имя SYSTEM "URI" NDATA имя-нотации>

<!ENTITY имя PUBLIC "владелец" "URI" NDATA имя-нотации>

Здесь параметры имя, "URI" и "владелец" имеют тот же смысл, что и для анализируемой сущности, а параметр имя-нотации задает имя нотации. Нотации определяют формат неанализируемых экземпляров, формат элементов, которые породили атрибут нотации, или приложение, которому адресуется инструкция процесса.

Еще одним видом сущности являются параметрические сущности или сущности-параметры. Сущности этого типа используются только во внешних DTD для более гибкого описания логической структуры документа. Ссылки на параметрические сущности в DTD имеют следующий вид:

%имя;

Объявление параметрической сущности имеет следующий формат:

<!ENTITY % имя "значение-1 значение-2…">

Параметр имя определяет имя параметрической сущности, а параметры значение-i определяют значения сущностей. В качестве значения сущностей могут использоваться данные типа CDATA, а также параметрические сущности.

3.2.5. Определение нотации

Нотации определяют имена форматов неанализируемых экземпляров, имена форматов элементов, которые породили атрибут нотации, а также имена приложений, используемых для обработки данных формата с заданным именем.

Определение нотации может быть представлено в одном из следующих форматов:

<!NOTATION имя SYSTEM "URI">

<!NOTATION имя PUBLIC "владелец" "URI ">

<!NOTATION имя PUBLIC "владелец">

Существует два основных способа применения нотаций:

  •  объявление неанализируемых сущностей и использование их имен в атрибутах типа ENTITY или ENTITIES;
  •  указание имени нотации в атрибуте типа NOTATION.

При использовании первого способа определение неанализируемой сущности  задает имя определения нотации, в котором, в свою очередь, задается приложение обрабатывающее данную неанализируемую сущность.  

Вторым способом использования нотаций является присвоение определенного формата содержимому элемента. Один (но не более чем один) из атрибутов элемента может иметь тип NOTATION. Значением этого атрибута должно быть имя нотации, которое и будет задавать формат содержимого элемента.

3.3. Программа XMLSpy 2006 Home Edition

3.3.1. Общие сведения о XMLSpy 2006 Home Edition

Установка  выполняется при запуске файла XMLSpyHome2006.exe.

Программа XMLSpy 2006 Home Edition (в дальнейшем XMLSpy) разработана компанией Altova (http://www.altova.com). Программа XMLSpy 2006 Home Edition является самой простой из семейства программ XMLSpy для работы с документами XML. В отличие от  других, коммерческих,  программ этого семейства,   XMLSpy 2006 Home Edition является условно-бесплатной программой, предназначенной для начального изучения технологии XML.

Программа XMLSpy 2006 Home Edition является интегрированной средой разработки (IDE) для реализации проектов на основе технологии XML.

Программа обладает следующими возможностями:

  •  просмотр и редактирование документов XML в различных форматах (текстовых и графических);
  •  встроенная проверка правильности и действительности документов XML;
  •  редактирование и управление схемой документа XML;
  •  встроенные процессоры XSLT 1.0 и XSLT 2.0, позволяющие выполнять преобразование документов XML непосредственно в IDE с выводом результатов преобразования в Web-браузер;
  •  встроенный процессор XQuery 1.0, позволяющий выполнять и отлаживать запросы к  документам XML непосредственно в IDE.

3.3.2. Установка XMLSpy 

Установка  программы XMLSpy 2006 Home Edition (в дальнейшем XMLSpy) выполняется при запуске файла XMLSpyHome2006.exe.

После запуска файла и вывода первого окна необходимо нажать на кнопку Next , а затем, после проверки компонент программы, опять нажать на кнопку Next. В следующем окне для принятия лицензионного соглашения надо нажать на первую радиокнопку (I accept the terms) и снова нажать кнопку Next. В следующем окне надо оставить включенными первые два переключателя и нажать кнопку Next. В окне выбора варианта установки оставить включенной первую радиокнопку (Complete – установка всех компонент) и нажать кнопку Next. В следующем окне нажмите кнопку Install. После окончания установки нажмите кнопку Finish.

При первом запуске программы (с помощью ярлыка ) программа запрашивает имя (Name), учреждение (Company) и ключ (Key Code). Эти поля необходимо заполнить следующим образом:

Name: Shonin

Company: Kiev Polytechnic Insitute

Key Code: J44WYM6-8UUWLB6-JSL84BD-R51M7LI

3.3.3. Работа с XMLSpy

3.3.3.1. Компоненты XMLSpy

Окно XMLSpy имеет стандартный вид: сверху панель заголовка, меню и панель инструментов, снизу строка состояния, в середине окно приложения (рис. 4.1.1).

Рис. 4.1.1. Окно XMLSpy

В середине окна приложения располагается главное окно (Main Window), в которое выводится документ или документы XML и DTD. Формат вывода документа задается в нижней строке редактора и содержит следующие виды:

  •   Text – текстовый формат документов XML с цветовым выделением тегов элементов и имен атрибутов;
  •  Schema/WSDL – графическое представление для документов XML, содержащих схемы;
  •  Authentic  – графическое представление документа XML (в Home Edition не работает);
  •  Browser – вывод документа XML или результата преобразования документа XML в окне Web-браузера.

Переключение из одного вида представления в другой можно выполнить либо с помощью закладок в нижней части окна редактора, либо с помощью первых четырех команд меню View.

Слева выводится информационное окно (Info Window), в котором выводится детальная информация об элементе или атрибуте в позиции курсора.

Справа выводится окно справочников компонент (Entry Helpers Window), состоящий для документа XML из трех панелей:

  •  панели элементов (Elements), в которой выводится список элементов документа (при двойном щелчке мышью по элементу он вставляется в текст документа в главном окне);
  •  панели атрибутов (Attributes), в которой выводится список атрибутов элемента в позиции курсора;
  •  панели сущностей (Entities), в которой выводится список сущностей документа (при двойном щелчке мышью по сущности ее имя вставляется в текст документа в главном окне в позиции курсора).

Управление окнами выполняется с помощью команд меню Window. Взаимное расположение окон документов  в главном определяется с помощью команд Cascade (перекрывающееся расположение окон), Tile horizontally (горизонтальное расположение окон), Tile vertically (вертикальное расположение окон). Вывод информационного окна и окна справочников компонент регулируется командами Info window, Entry Helpers и All on/off (последняя команда выводит или убирает оба окна). Далее в меню Window следует список открытых окон документов, из которого можно выбрать новое активное окно.

3.3.3.2. Создание DTD документа XML

Файл DTD лучше создавать до создания самого документа XML. В этом случае при создании документа XMLSpy выдает подсказки на ввод элементов и атрибутов.

Для создания DTD надо нажать кнопку на панели инструментов или выполнить команду New в меню File. В открывшемся окне выбирается тип документа (Document Type Definition) (рис. 4.1.2) и нажимается кнопка OK.

Рис. 4.1.2. Выбор типа документа для DTD

Затем в окне редактора вводится содержимое DTD. При наборе символов "<!" в начале строки появляется подсказка на вставку объявления  (ELEMENT (3.2.2), ATTLIST (3.2.3), ENTITY (3.2.4) или NOTATION (3.2.5).

На рис. 4.1.3 представлен пример простого DTD. В корневом элементе book-description (описание книги) содержится один или несколько элементов book (книга). В свою очередь, в элементе  book содержится три элемента: title (заглавие), author (автор) и publisher (издательство) с текстовым содержимым. Кроме этого, элемент publisher содержит два атрибута: текстовый атрибут year (год издания) и атрибут с выбором genre (жанр).

Рис. 4.1.3. Пример простого DTD

Для проверки правильности DTD надо нажать на кнопку , либо выполнить команду Check well-formedness в меню XML, либо нажать клавишу F7.

Для проверки действительности DTD надо нажать на кнопку , либо выполнить команду Validate в меню XML, либо нажать клавишу F8. Если в файле DTD содержится ошибка, внизу выводится сообщение об ошибке, а курсор устанавливается в то место, где произошла ошибка.

Если DTD неправильное и недействительное, перед сообщением выводится значок .  Если DTD правильное, выводится значок , а если действительное, значок .  

Если в файле нет ошибок, то помощью команды Save As меню File DTD сохраняется как файл с расширением .dtd на диске.

3.3.3.3. Создание нового документа XML

Для создания нового документа XML надо нажать кнопку на панели инструментов или выполнить команду New в меню File. В открывшемся окне выбирается тип документа (XML Document) (рис. 4.1.4) и нажимается кнопка OK.

Рис. 4.1.4. Выбор типа для документа XML

В следующем окне (рис. 4.1.5) выбирается инструмент проверки документа XML – DTD и нажимается кнопка OK.

Рис. 4.1.5. Выбор DTD для описания структуры документа

Затем в следующем окне (рис. 4.1.6) выбирается созданный для этого документа файл DTD и нажимается кнопка OK.

Рис. 4.1.6. Выбор файла DTD для документа

В открытом документе XML (рис. 4.1.7) выводится шаблон в соответствии с заданным DTD.

При редактировании документа (вставки новых элементов) используются подсказки.

Рис. 4.1.7. Вывод шаблона документа XML

После заполнения документ XML приобретает следующий вид, приведенный на рис. 4.1.8.

Рис. 4.1.8. Пример заполнения документа XML

Для проверки правильности документа XML надо нажать на кнопку , либо выполнить команду Check well-formedness в меню XML, либо нажать клавишу F7.

Для проверки действительности документа XML надо нажать на кнопку , либо выполнить команду Validate в меню XML, либо нажать клавишу F8. Элемент или атрибут, в котором произошла ошибка, выделяется темно-синей подсветкой.

Если документ неправильный и недействительный, перед сообщением выводится значок .  Если документ правильный, выводится значок , а если действительный, значок .

Затем с помощью команды Save As меню File документ XML сохраняется как файл с расширением .xml на диске.

3.3.3.4. Другие операции с документами XML и DTD

Открыть файл документа XML или DTD можно с помощью кнопки на панели инструментов, либо с помощью команды Open меню File, либо нажав клавиши Ctrl+O.

Перейти к файлу внешнего DTD активного документа XML можно, выполнив команду Go to DTD меню DTD/Schema.

Если DTD не было задано для документа при его создании, задание DTD для документа XML  можно выполнить с помощью команды  Assign DTD меню DTD/Schema.

Команда Go to Definition меню DTD/Schema позволяет перейти для элемента или атрибута в позиции курсора к его определению в файле DTD.

Кнопки выполняют вырезание, копирование и вставку фрагментов в документе XML и DTD. Эти же действия можно выполнить с помощью команд Cut, Copy и Paste меню Edit, а также клавиш Shift+Delete, Ctrl+C и Ctrl+V. Удаление выделенного фрагмента выполняется с помощью команды Delete меню Edit, а также клавиши Del (Delete).

Кнопки отменяют выполнение последнего действия и повторное выполнение последнего отмененного действия. Эти же операции выполняются с помощью команд Undo и Redo меню Edit, а также клавиш Alt+Backspace и Ctrl+Y.

Кнопки выполняют поиск первого значения, поиск следующего значения и замену на заданное значение в окне редактора. Эти же действия можно выполнить с помощью команд Find, Find next и Replace меню Edit, а также клавиш Ctrl+F, F3 и Ctrl+H.

Сохранить содержимое активного окна редактора можно, нажав кнопку , либо выполнив команду Save меню File,  либо нажав клавиши Ctrl+S.  Сохранить содержимое всех открытых окон можно либо с помощью кнопки ,  либо выполнив команду Save All меню File.

Печать содержимого активного файла выполняется либо при нажатии кнопки , либо при выборе команды Print меню File, либо при нажатии клавиш Ctrl+P.

4. Порядок выполнения работы

Создайте документ XML в соответствии с приведенными в вариантах описаниями структуры документа. Документ содержит корневой элемент, элементы второго уровня, содержащиеся в корневом элементе, элементы третьего уровня, содержащиеся в элементах второго уровня и т.д.

Создайте внешний системный DTD документа XML в соответствии с ограничениями для каждого варианта.

Создайте схему документа  XML в соответствии с приведенными ниже уточнениями и дополнениями для каждого варианта.  Измените документ XML, в соответствие со схемой и проверьте правильность схемы и документа XML.

Вариант 1-01

Составьте документ XML для четырех статей газеты, каждая из которых содержит от двух до четырех абзацев текста, со следующими элементами и атрибутами:

  •  <newspaper> (газета) – корневой элемент с атрибутами name (имя) и date (дата выпуска), а также атрибутом period (периодичность) со значением "daily" или "weekly");
  •  <article>  (статья) –  элемент второго уровня с атрибутом section (раздел), который может иметь одно из следующих значений: "politics", "culture", "science" или "sport" (по умолчанию "politics");
  •  <headline> (заголовок статьи) – элемент  третьего уровня с текстовым содержимым; 
  •  <author> (автор статьи) – элемент  третьего уровня с текстовым содержимым и атрибутом staffer (штатный сотрудник) со значением "true" или "false" (у статьи может быть несколько авторов);
  •  <resume> (резюме статьи) – элемент  третьего уровня с текстовым содержимым;
  •  <story> (содержимое статьи) – элемент  третьего уровня, содержащий несколько элементов <paragraph>; 
  •  <paragraph> (абзац статьи) – элемент  четвертого уровня с текстовым содержимым и атрибутом style (стиль вывода абзаца) с одним из следующих значений: "ordinary", "strong", "big", "small" или "selected".

Ограничения документа XML для газеты:

  •  текстовые атрибуты name  и date  в элементе <newspaper> должны быть обязательными, а атрибут period (периодичность) может иметь одно из следующих значений: "daily" или "weekly" (по умолчанию "daily");
  •  в корневом элементе может быть один или более элементов  <article>, а атрибут  section (раздел) этого элемента  может иметь одно из следующих значений: "politics", "culture", "science" или "sport" (по умолчанию "politics");
  •  в элементе <article> должен быть только один элемент <headline> с текстовым содержимым; 
  •  в элементе <article> должен быть только один элемент <resume> с текстовым содержимым и атрибутом staffer (штатный сотрудник)  который может иметь одно из следующих значений: "yes" или "no" (по умолчанию "yes");
  •  в элементе <article> должен быть только один элемент <resume> с текстовым содержимым;
  •  в элементе <article> должен быть только один элемент <story>; 
  •  в элементе <story> может быть один или более элементов <paragraph> с текстовым содержимым, а атрибут style может иметь одно из следующих значений: "ordinary", "strong", "big", "small" или "selected" (по умолчанию "ordinary").

В DTD определите сущности для нескольких авторов, например, сущность author1 со значением "Иванов И.И." и сущность author2 со значением "Петров П.П." и используйте эти сущности в документе XML.

Вариант 1-02

Составьте документ XML для описания четырех пакетов языка Java со следующими элементами и атрибутами  (пакет содержит от одного до трех интерфейсов, от двух до четырех классов, от одного до трех исключений и от 0 до 2 ошибок):

  •  <packet-list> (список пакетов) – корневой элемент  с атрибутом list-name – именем списка пакетов;
  •  <packet> (пакет) – элемент второго уровня  с атрибутом name – именем пакета;
  •  <description> (описание пакета) – элемент  третьего уровня с текстовым содержимым;
  •  <interface-list> (список интерфейсов пакета) – элемент третьего уровня, содержащий несколько элементов <interface>;
  •  <interface> (интерфейс) – элемент четвертого уровня с атрибутом name – именем  интерфейса и текстовым содержимым – описанием интерфейса;
  •  <class-list> (список классов пакета) – элемент третьего уровня, содержащий несколько элементов <class>;
  •  <class> (класс пакета) – элемент четвертого уровня с атрибутом name – именем  класса и текстовым содержимым – описанием класса;
  •  <exception-list> (список исключений пакета) – элемент третьего уровня, содержащий несколько элементов <exception>;
  •  <exception> (исключение пакета) – элемент четвертого уровня с текстовым содержимым – именем исключения;
  •  <error-list> (список ошибок пакета) – элемент третьего уровня, содержащий несколько элементов <error>;
  •  <error> (ошибка пакета) – элемент четвертого уровня с атрибутом name –именем  ошибки и текстовым содержимым – описанием ошибки.

Ограничения документа XML для описания пакетов языка Java:

  •  <packet-list> должен имеет  обязательный атрибут list-name;
  •  в корневом элементе может быть один или более элементов <packet>  с обязательным атрибутом name;
  •  в элементе <packet>  должен быть только один элемент <description> с текстовым содержимым;
  •  в элементе <packet> элемент <interface-list> может отсутствовать или встречаться только один раз;
  •  в элементе <interface-list> может быть один или более элементов <interface> с текстовым содержимым и обязательным атрибутом name;
  •  в элементе <packet> элемент <class-list> может отсутствовать или встречаться только один раз;
  •  в элементе <class-list> может быть один или более элементов <class> с текстовым содержимым и обязательным атрибутом name;
  •  в  элементе <packet> элемент <exception-list> может отсутствовать или встречаться только один раз;
  •  в элементе <exception-list> может быть один или более элементов <exception> с текстовым содержимым и обязательным атрибутом name;
  •  в  элементе <packet> элемент <error-list> может отсутствовать или встречаться только один раз;
  •  в элементе <error-list> может быть один или более элементов <error> с текстовым содержимым и обязательным атрибутом name;

В DTD определите сущности для нескольких исключений, например, сущность exception1 со значением "IOException" и сущность exception со значением "ArithmeticException" и используйте эти сущности в документе XML.

Вариант 1-03

Составьте документ XML для четырех научных статей (из них две – по одному и тому же разделу) со следующими элементами и атрибутами:

  •  <article-list> (список статей) – корневой элемент;
  •  <article> (статья) –  элемент второго уровня с текстовым содержимым – наименованием статьи и атрибутом section (раздел), который может иметь одно из следующих значений: "computers", "mathematics", "physics" или "chemistry";
  •  <author>  (автор статьи) –  элемент третьего уровня с текстовым содержимым (имя, фамилия и отчество) (у статьи может быть несколько авторов);
  •  <annotation> (аннотация) – элемент  третьего уровня с текстовым содержимым;
  •  <content> (содержимое статьи) – элемент  третьего уровня;
  •  <section> (раздел содержимого) – элемент  четвертого уровня с текстовым содержимым – именем раздела и атрибутом style (стиль вывода имени раздела), который может иметь одно из следующих значений: "ordinary", "strong", или "selected";
  •  <subsection> (подраздел раздела содержимого) – элемент  пятого уровня с текстовым содержимым – именем подраздела и атрибутом style (стиль вывода абзаца), который может иметь одно из следующих значений: "ordinary", "strong", "big", "small" или "selected";
  •  <paragraph> (абзац подраздела статьи) – элемент шестого уровня с текстовым содержимым и атрибутом style (стиль вывода абзаца), который может иметь одно из следующих значений: "ordinary", "strong", "big", "small" или "selected";
  •  <receiving-date> (дата принятия статьи) – элемент третьего уровня с текстовым содержимым.

Ограничения документа XML для научной статьи:

  •  в корневом элементе может быть один или более элементов <article> с текстовым содержимым – наименованием статьи и атрибутом section (раздел), который может иметь одно из следующих значений: "computers", "mathematics", "physics" или "chemistry" (по умолчанию "computers");
  •  в элементе <article> может быть один или более элементов <author> с текстовым содержимым;
  •  в элементе <article> должен быть только один элемент <annotation> с текстовым содержимым;
  •  в элементе <article> должен быть только один элемент <content>;
  •  в элементе <content> может быть один или более элементов <section> с текстовым содержимым и атрибутом style, который может иметь одно из следующих значений: "ordinary", "strong", или "selected" (по умолчанию "ordinary");
  •  в элементе <section>  может быть один или более элементов <subsection> с текстовым содержимым и теми же атрибутами, что и для элемента <section>;
  •  в элементе <subsection>  может быть один или более элементов <paragraph> с текстовым содержимым и атрибутом style, который может иметь одно из следующих значений: "ordinary", "strong", "big", "small" или "selected" (по умолчанию "ordinary");
  •  в элементе <article> должен быть только один элемент <receiving-date> с текстовым содержимым.

В DTD определите сущности для нескольких авторов, например, сущность author1 со значением "Иванов И.И." и  сущность author2 со значением "Петров П.П." и используйте эти сущности в документе XML.

Вариант 1-04

Составьте документ XML для характеристик четырех компьютеров (из них два – с одинаковым процессором) со следующими элементами и атрибутами:

  •  <computer-list> (список компьютеров) – корневой элемент;
  •  <computer> (компьютер) – элемент второго уровня с атрибутом trade-mark (торговая марка);
  •  <processor>  (процессор) –  элемент третьего уровня с текстовым содержимым (марка процессора);
  •  <motherboard> (материнская плата) – элемент  третьего уровня с текстовым содержимым (марка платы);
  •  <hard-drive-list> (список жестких дисков компьютера) – элемент третьего уровня;
  •  <hard-drive> (жесткий диск) – элемент  четвертого уровня с атрибутом trade-mark (торговая марка) и атрибутом capacity (емкость диска);
  •  <floppy-drive> (дисковод гибких дисков) – элемент  третьего уровня с атрибутом trade-mark (торговая марка) и атрибутом capacity (емкость дисковода);
  •  <CD-drive-list> (список дисководов компакт-дисков компьютера) – элемент  третьего уровня;
  •  <CD-drive> (дисковод компакт-дисков) – элемент  четвертого уровня с атрибутом trade-mark (торговая марка) и атрибутом speed (скорость дисковода), который имеет значение "32x", "40x" или "52x";
  •  <display> (дисплей) – элемент  третьего уровня с атрибутом trade-mark (торговая марка);
  •  <size> (размер экрана) – элемент  четвертого уровня с текстовым содержимым;
  •  <max-resolution> (максимальное разрешение экрана) – элемент  четвертого уровня с текстовым содержимым;
  •  <keyboard> (клавиатура) – элемент  третьего уровня с атрибутом trade-mark (торговая марка); 
  •  <mouse> (мышь) – элемент  третьего уровня с обязательным атрибутом trade-mark (торговая марка); 
  •   <addon-device-list> (список дополнительных устройств компьютера) – элемент  третьего уровня;
  •  <addon-device> (дополнительное устройство) – элемент  четвертого уровня с атрибутом trade-mark (торговая марка) и текстовым содержимым – описанием  устройства.

Ограничения документа XML для характеристик компьютеров:

  •  в корневом элементе может быть один или более элементов <computer> с необязательным атрибутом trade-mark;
  •  в элементе <computer>  может быть один или более элементов <processor>  с текстовым содержимым;
  •  в элементе <computer>  может быть только один элемент <motherboard> с текстовым содержимым;
  •  в элементе <computer>  может быть только один элемент <hard-drive-list>;
  •  в элементе <hard-drive-list>  может быть один или более элементов <hard-drive> (жесткий диск) с необязательным атрибутом trade-mark  и обязательным атрибутом capacity;
  •  в элементе <computer>  может быть только один элемент <floppy-drive> с необязательным атрибутом trade-mark  и обязательным атрибутом capacity;
  •  в элементе <computer>  может быть только один элемент <CD-drive-list>, либо этот элемент может отсутствовать;
  •  в элементе <CD-drive-list>  может быть один или более элементов <CD-drive> с необязательным атрибутом trade-mark  и необязательным атрибутом speed (скорость дисковода), который имеет значение "32x", "40x" или "52x" (значение по умолчанию – "40x");
  •  в элементе <computer>  может быть только один элемент <display> с необязательным атрибутом trade-mark;
  •  в элементе <display>  может быть только один элемент <size> с текстовым содержимым;
  •  в элементе <display>  может быть только один элемент <max-resolution> с текстовым содержимым;
  •  в элементе <computer>  может быть только один элемент <keyboard> с обязательным атрибутом trade-mark; 
  •  в элементе <computer>  может быть только один элемент <mouse> с обязательным атрибутом trade-mark; 
  •  в элементе <computer>  может быть только один элемент <addon-device-list>, либо этот элемент может отсутствовать;
  •  в элементе <addon-device-list>  может быть один или более элементов <addon-device> с обязательным атрибутом trade-mark (торговая марка) и текстовым содержимым.

В DTD определите сущности для нескольких марок процессоров, например, сущность processor1 со значением "Pentium" и сущность processor2 со значением "AMD" и используйте эти сущности в документе XML.

Вариант 1-05

Составьте документ XML для четырех книг (из них два – одного жанра) со следующими элементами и атрибутами (каждая книга содержит от двух до четырех глав, каждая глава содержит от двух до четырех абзацев):

  •  <book-list> (список книг) – корневой элемент;
  •  <book> (книга) – элемент второго уровня с текстовым содержимым – наименованием книги с атрибутом genre (жанр), который может иметь одно из следующих значений: "classic", "detective", "science-fiction" или "thriller", а также атрибутом edition-index (номер издания);
  •  <author>  (автор книги) –  элемент третьего уровня с текстовым содержимым (имя, фамилия отчество) и атрибутом first-book (первая книга)  который может иметь одно из следующих значений: "yes" или "no" (у книги может быть несколько авторов);
  •  <publisher> (издатель книги) – элемент  третьего уровня с текстовым содержимым – наименованием издательства и атрибутом address (адресом издательства);
  •  <publication-year> (год издания книги) – элемент  третьего уровня с текстовым содержимым;
  •  <content> (содержимое) – элемент  третьего уровня с атрибутами section-style (стиль части), chapter-style (стиль главы) и paragraph-style (стиль абзаца), которые могут  иметь одно из следующих значений: "ordinary", "strong", "big", "small" или "selected";
  •  <section> (часть содержимого) – элемент  четвертого уровня с текстовым содержимым – наименованием части;
  •  <chapter> (глава содержимого) – элемент  четвертого уровня с текстовым содержимым – наименованием главы и атрибутом style (стиль наименования главы), который имеет те же значения, что и в элементе <section>;
  •  <paragraph> (абзац содержимого) – элемент  пятого уровня с текстовым содержимым.

Ограничения документа XML для книг:

  •  <book-list> (список книг) – корневой элемент;
  •  в корневом элементе может быть один или более элементов <book> с текстовым содержимым и атрибутом genre, который может иметь одно из следующих значений: "classic", "detective", "science-fiction" или "thriller" (по умолчанию "detective"), а также атрибутом edition-index;
  •  в элементе <book>  может быть один или более элементов <author>  с текстовым содержимым  и атрибутом first-book, который может иметь одно из следующих значений: "yes" или "no" (по умолчанию "no");
  •  в элементе <book> должен быть только один элемент <publisher> с текстовым содержимым и атрибутом address;
  •  в элементе <book> должен быть только один элемент <publication-year> с текстовым содержимым;
  •  в элементе <book> должен быть только один элемент <content> с обязательными атрибутами section-style, chapter-style  и paragraph-style, которые могут  иметь одно из следующих значений: "ordinary", "strong", "big", "small" или "selected" (по умолчанию "ordinary");
  •  в элементе <content>  может быть несколько элементов <section> с текстовым содержимым, либо элемент <content> может отсутствовать;
  •  в элементе <content>  может быть несколько элементов <chapter> с текстовым содержимым;
  •  в элементе <chapter>  может быть несколько элементов <paragraph> с текстовым содержимым.

В DTD определите сущности для нескольких издательств, например, сущность publisher1 со значением "BHV" и  сущность publisher2 со значением "Pergamon Press" и используйте эти сущности в документе XML.

Вариант 1-06

Составьте документ XML для четырех учебников (из них два – по одной специальности) со следующими элементами и атрибутами (каждый учебник должен содержать от двух до четырех уроков, каждый урок должен содержать от двух до четырех разделов, каждый раздел должен содержать не менее двух абзацев, не менее двух вопросов и не менее двух упражнений):

  •  <manual-list> (список учебников) – корневой элемент;
  •  <manual> (учебник) – элемент второго уровня с текстовым содержимым – наименованием учебника и с атрибутом specialty (специальность), который может иметь одно из следующих значений: "foreign-languages", "programming", "mathematics" или "physics", а также атрибутом edition-index (номер издания);
  •  <author>  (автор учебника) –  элемент третьего уровня с текстовым содержимым (имя, фамилия и отчество) (может быть несколько авторов);
  •  <annotation> (аннотация) – элемент  третьего уровня с текстовым содержимым;
  •  <content> (содержимое учебника) – элемент  третьего уровня с атрибутами heading-style (стиль заголовков) и text-style (стиль текста), которые могут иметь одно из следующих значений: "ordinary", "strong", "big", "small" или "selected";
  •  <lesson> (урок в содержимом) – элемент  четвертого уровня с текстовым содержимым – наименованием урока;
  •  <section> (раздел урока) – элемент пятого уровня с текстовым содержимым – наименованием раздела;
  •  <paragraph> (абзац подраздела урока) – элемент шестого уровня с текстовым содержимым;
  •  <question-list> (вопросы для самопроверки) – элемент пятого уровня;
  •  <question> (вопрос для самопроверки) – элемент шестого  уровня с текстовым содержимым;
  •  <exercise-list> (упражнения) – элемент пятого уровня;
  •  <exercise> (упражнение) – элемент шестого уровня с текстовым содержимым.

Ограничения документа XML для учебников:

  •  в корневом элементе может быть один или более элементов <manual> с текстовым содержимым и с атрибутом specialty, который может иметь одно из следующих значений: "foreign-languages", "programming", "mathematics" или "physics" (по умолчанию "foreign-languages"), а также атрибутом edition-index;
  •  в элементе <manual>  может быть несколько элементов <author>  с текстовым содержимым;
  •  в элементе <manual> должен быть только один элемент <annotation> с текстовым содержимым;
  •  в элементе <manual> должен быть только один элемент <content> с атрибутами heading-style  и text-style, которые могут иметь одно из следующих значений: "ordinary", "strong", "big", "small" или "selected" (по умолчанию "ordinary");
  •  в элементе <content>  может быть несколько элементов <lesson> с текстовым содержимым;
  •  в элементе <lesson>  может быть несколько элементов <section> с текстовым содержимым;
  •  в элементе <section>  может быть несколько элементов <paragraph> с текстовым содержимым;
  •  в элементе <lesson> должен быть только один элемент <question-list>;
  •  в элементе <question-list>  может быть несколько элементов <question> с текстовым содержимым;
  •  в элементе <lesson> должен быть только один элемент <exercise-list>;
  •  в элементе <exercise-list>  может быть несколько элементов <exercise> с текстовым содержимым.

Вариант 1-07

Составьте документ XML каталога товаров (четыре товара, из них два – одного и того же производителя) со следующими элементами и атрибутами:

  •  <catalog> (каталог товаров) – корневой элемент с атрибутом title (наименование каталога);
  •  <product>  (товар) –  элемент второго уровня c текстовым содержимым – наименованием товара,  атрибутом category (категория: значения "artisan" – ручная  работа или "factory" – фабричный) и атрибутом producer (производитель);
  •  <specification> (спецификация товара) – элемент  третьего уровня с текстовым содержимым;
  •  <options> (дополнительные сведения о товаре) – элемент  третьего уровня;
  •  <price> (цена товара) – элемент  третьего уровня с атрибутами purchase (оптовая цена) и sale (розничная цена);
  •  <inventory> (сопровождение товара) – элемент третьего уровня;
  •  <sale-number> (количество проданного товара) – элемент четвертого уровня с текстовым содержимым;
  •  <store-number> (количество товара на складе) – элемент четвертого уровня с текстовым содержимым;
  •  <request-number> (количество заказанного товара) – элемент четвертого уровня с текстовым содержимым.

Ограничения документа XML для каталога товаров:

  •  элемент <catalog> должен иметь обязательный атрибут title;
  •  в корневом элементе может быть один или более элементов <product>  c текстовым содержимым,  атрибутом category (категория: значения "artisan" – ручная  работа или "factory" – фабричный, по умолчанию "factory") и обязательным атрибутом producer;
  •  в элементе <product> должен быть только один элемент <specification> с текстовым содержимым;
  •  в элементе <product> должен быть только один элемент <options>, либо элемент <product> может отсутствовать;
  •  в элементе <product> должен быть только один элемент <price> с обязательными атрибутами purchase  и sale;
  •  в элементе <product> должен быть только один элемент <inventory>;
  •  в элементе <inventory> должен быть только один элемент <sale-number> с текстовым содержимым;
  •  в элементе <inventory> должен быть только один элемент <store-number> с текстовым содержимым;
  •  в элементе <inventory> может быть 0 или более элементов <request-number> с текстовым содержимым.

В DTD определите сущности для нескольких товаров, например, сущность article1 со значением "компьютер" и сущность article2 со значением "CD-ROM" и используйте эти сущности в документе XML.

Вариант 1-08

Составьте документ XML для четырех заданий на дипломные работы с тремя входными данными, четырьмя графическими материалами, двумя консультантами и четырьмя пунктами календарного плана и со следующими элементами и атрибутами:

  •  <task-list> (список заданий) – корневой элемент;
  •  <task> (задание) – элемент второго уровня с атрибутом deadline (срок выполнения задания);
  •  <fio>  (фамилия, имя и отчество студента) –  элемент третьего уровня с текстовым содержимым;
  •  <theme> (тема) – элемент  третьего уровня с текстовым содержимым – наименованием темы;
  •  <input-data> (входные данные работы) – элемент  третьего уровня;
  •  <input-data-item> (элемент входных данных) – элемент  четвертого уровня с  текстовым содержимым – входным данным для работы (входных данных может быть несколько);
  •  <content> (содержание работы) – элемент  третьего уровня;
  •  <content-item> (элемент содержания) – элемент  четвертого уровня с  текстовым содержимым – наименованием раздела работы (в работе может быть несколько разделов);
  •  <graphics-list> (список графических материалов работы) – элемент  третьего уровня;
  •  <graphics> (графический материал) – элемент  четвертого уровня с  текстовым содержимым – наименованием плаката (в работе может быть несколько плакатов);
  •  <consulting> (консультанты) – элемент  третьего уровня с текстовым содержимым – фамилией, именем и отчеством консультанта, а также атрибутом section (номер раздела) – может быть несколько консультантов;
  •  <calendar-plan> (календарный план) – элемент  третьего уровня;
  •  <calendar-plan-item> (пункт календарного плана) – элемент  четвертого уровня с атрибутами section (имя пункта плана), begin-date (дата начала выполнения пункта) и end-date (дата окончания выполнения пункта) – должно быть несколько пунктов плана.

Ограничения документа XML для заданий на дипломные работы:

  •  в корневом элементе может быть один или более элементов <task> с обязательным атрибутом deadline;
  •  в элементе <task> должен быть только один элемент <fio>  с текстовым содержимым;
  •  в элементе <task> должен быть только один элемент <theme> с текстовым содержимым;
  •  в элементе <task> должен быть только один элемент <input-data>;
  •  в элементе <input-data> может быть один или более элементов <input-data-item> с  текстовым содержимым;
  •  в элементе <task> должен быть только один элемент <content>;
  •  в элементе <content> может быть один или более элементов <content-item>  с текстовым содержимым;
  •  в элементе <task> должен быть только один элемент <graphics-list>;
  •  в элементе <content> может быть один или более элементов <graphics> с  текстовым содержимым;
  •  в элементе <task> может быть один или более элементов <consulting> с текстовым содержимым, а также обязательным атрибутом section;
  •  в элементе <task> может быть один или более элементов <calendar-plan> с обязательными атрибутами section, begin-date  и end-date.

В DTD определите сущности для нескольких консультантов, например,  сущность adviser1 со значением "Петров И.И." и сущность adviser2 со значением "Иванов И.И." и используйте эти сущности в документе XML

Вариант 1-09

Составьте документ XML для справочника методов языка Java c четырьмя методами (из них имена двух методов начинаются на одну и ту же букву) со следующими элементами и атрибутами (каждый из методов может иметь от 0 до 4 параметров):

  •  <methods-list> (список методов) – корневой элемент с атрибутом name (наименование справочника);
  •  <letter>  (буква) –  элемент второго уровня с атрибутом value (буква, на которую начинается имя метода);
  •  <method> (метод) – элемент  третьего уровня с атрибутом name – именем метода;
  •  <description> (краткое описание метода) – элемент  четвертого уровня с текстовым содержимым;
  •  <class> (класс, в котором определен метод) – элемент  четвертого уровня с атрибутом name – именем класса;
  •  <modifiers> (модификаторы метода) – элемент  четвертого уровня с текстовым содержимым – модификатором метода, а также атрибутом static со значением "yes" или "no";
  •  <return-value-type> (тип возвращаемого значения) – элемент  четвертого уровня с текстовым содержимым – типом возвращаемого значения;
  •   <parameter-list> (список параметров метода) – элемент четвертого уровня;
  •  <parameter> (параметр метода с его описанием) – элемент пятого уровня;
  •  <parameter-type> (тип параметра) – элемент шестого уровня с текстовым содержимым – идентификатором типа параметра;
  •  <parameter-identifier> (идентификатор параметра) – элемент шестого уровня с текстовым содержимым – идентификатором параметра;
  •  <exception-list> (список исключений, бросаемых методом) – элемент четвертого уровня;
  •  <exception> (исключение метода) – элемент пятого уровня с текстовым содержимым – именем исключения;
  •  <version> (версия Java, в которой впервые появился метод) – элемент четвертого уровня с текстовым содержимым – номером версии.

Ограничения документа XML  для справочника методов языка Java:

  •  элемент <methods-list> должен иметь обязательный атрибут name;
  •  в корневом элементе может быть один или более элементов <letter>  с обязательным атрибутом value;
  •  в элементе <letter> может быть несколько элементов <method> с обязательным атрибутом name, либо элемент <method> может отсутствовать;
  •  в элементе <method> должен быть только один элемент <description> с текстовым содержимым;
  •  в элементе <method> должен быть только один элемент <class>  с обязательным атрибутом name;
  •  в элементе <method> должен быть только один элемент <modifiers> с текстовым содержимым, а также атрибутом static со значением "yes" или "no" (по умолчанию "no");
  •  в элементе <method> должен быть только один элемент <return-value-type> с текстовым содержимым;
  •   в элементе <method> должен быть только один элемент <parameter-list>;
  •  в элементе <parameter-list> может быть несколько элементов <parameter>, либо элемент <parameter> может отсутствовать;
  •  в элементе <parameter> должен быть только один элемент <parameter-type> с текстовым содержимым;
  •  в элементе <parameter> должен быть только один элемент <parameter-identifier> с текстовым содержимым;
  •  в элементе <method> должен быть только один элемент <exception-list>, либо элемент <exception-list> может отсутствовать;
  •  в элементе  <exception-list> может быть один или более элементов <exception>;
  •  в элементе <method> должен быть только один элемент <version> с текстовым содержимым.

В DTD определите сущности для нескольких исключений, например, сущность exception1 со значением "IOException" и сущность exception2 со значением "ArithmeticException" и используйте эти сущности в документе XML.

Вариант 1-10

Составьте документ XML для содержимого четырех дипломных работ со следующими элементами и атрибутами. Каждая дипломная работа содержит: список литературы от двух до четырех источников, от двух до четырех разделов, каждый из разделов содержит от двух до четырех подразделов более низких уровней   Документ должен содержать следующие элементы и атрибуты:

  •  <diploma-list> (список дипломов) – корневой элемент;
  •  <diploma> (диплом) – элемент второго уровня;
  •  <fio>  (фамилия, имя и отчество студента) –  элемент третьего уровня с текстовым содержимым – фамилией и инициалами имени и отчества студента;
  •  <theme> (тема) – элемент  третьего уровня с текстовым содержимымнаименованием темы;
  •  <specialty> (специальность) – элемент  третьего уровня с текстовым содержимымнаименованием специальности;
  •  <task> (задание на работу) – элемент  третьего уровня с текстовым содержимым – кратким изложением задач, решаемых в работе;
  •  <annotation> (аннотация работы) – элемент  третьего уровня с текстовым содержимым и атрибутами page-number (количество страниц), figure-number (количество рисунков), table-number (количество таблиц) и source-number (количество источников);
  •  <content> (содержание работы) – элемент  третьего уровня с атрибутами heading-style (стиль заголовков), который может иметь одно из значений: "ordinary" или "strong"  и text-style (стиль текста), которые могут иметь одно из значений: "big" или "small";
  •  <preface> (введение) – элемент  четвертого уровня с  текстовым содержимым;
  •  <section> (раздел) – элемент  четвертого уровня с  текстовым содержимым или разделами второго уровня, а также атрибутом name (наименованием раздела);
  •  <second-level-section> (раздел второго уровня) – элемент  пятого уровня с  текстовым содержимым, а также атрибутом name (наименованием раздела второго уровня);
  •  <conclusion> (заключение) – элемент  четвертого уровня с  текстовым содержимым – текстом заключения;
  •  <source-list> (список литературы) – элемент  третьего уровня;
  •  <source> (элемент списка литературы) – элемент  четвертого уровня с  текстовым содержимым – описанием источника;
  •  <end-date> (дата окончания выполнения работы) – элемент  третьего уровня с  текстовым содержимым.

Ограничения документа XML для  дипломных работ:

  •  в корневом элементе может быть один или более элементов <diploma>;
  •  в элементе <diploma> должен быть только один элемент <fio>  с текстовым содержимым;
  •  в элементе <diploma> должен быть только один элемент <theme> с текстовым содержимым;
  •  в элементе <diploma> должен быть только один элемент <specialty> с текстовым содержимым;
  •  в элементе <diploma> должен быть только один элемент <task> с текстовым содержимым;
  •  в элементе <diploma> должен быть только один элемент <annotation> с текстовым содержимым и обязательными атрибутами page-number, figure-number, table-number и source-number;
  •  в элементе <diploma> должен быть только один элемент <content> с атрибутами heading-style, который может иметь одно из значений: "ordinary" или "strong" (по умолчанию "ordinary") и text-style, которые могут иметь одно из значений: "big" или "small" (по умолчанию "big");
  •  в элементе <content> должен быть только один элемент <preface> с  текстовым содержимым;
  •  в элементе <content> может быть один или более элементов <section> с  текстовым содержимым или разделами второго уровня, а также обязательным атрибутом name;
  •  в элементе <section> может быть несколько элементов <second-level-section> с  текстовым содержимым, а также обязательным атрибутом name, либо элемент <second-level-section> может отсутствовать;
  •  в элементе <content> должен быть только один элемент <conclusion> с  текстовым содержимым;
  •  в элементе <content> должен быть только один элемент <source-list>;
  •  в элементе <source-list> может быть один или более элементов <source> с  текстовым содержимым;
  •  в элементе <content> должен быть только один элемент <end-date> с  текстовым содержимым.

В DTD определите сущности для нескольких специальностей, например, сущность specialty1 со значением "7.091004 – Технологии и средства телекоммуникаций" или сущность specialty2 со значением "7.080403 – Программное обеспечение автоматизированных систем" и используйте эти сущности в документе XML.

Вариант 1-11

Составьте документ XML для расписания занятий группы (четыре преподавателя, пять дисциплин на понедельник, вторник, среду и четверг) со следующими элементами и атрибутами:

  •  <study-table> (расписание занятий) – корневой элемент;
  •  <department>  (факультет) –  элемент второго уровня с текстовым содержимым – наименованием факультета;
  •  <group> (группа) – элемент  второго уровня с текстовым содержимым – наименованием группы;
  •  <teacher-list> (список преподавателей) – элемент  второго уровня;
  •  <teacher> (преподаватель) – элемент  третьего уровня с атрибутом name типа  id (идентификатор преподавателя) и текстовым содержимым – фамилией и инициалами имени и отчества преподавателя;
  •  <subject-list> (список дисциплин) – элемент  второго уровня;
  •  <subject> (дисциплина) – элемент  третьего уровня с атрибутом name типа  id   (идентификатор дисциплины) и текстовым содержимым – наименованием дисциплины;
  •  <time-slot-list> (список промежутков времени) – элемент  второго уровня;
  •  <time-slot> (промежуток времени) – элемент  третьего уровня с  атрибутом value типа  id, содержащим время начала и окончания занятия;
  •  <classroom-list> (список учебных аудиторий) – элемент  второго уровня;
  •  <classroom> (учебная аудитория) – элемент  третьего уровня с  атрибутами: room типа id (идентификатор аудитории) и index (номер аудитории);  
  •  <content> (содержание расписания) – элемент  второго уровня;
  •  <week-day> (день недели) – элемент  третьего уровня с атрибутом name, имеющим одно из следующих значений: "Понедельник", "Вторник", "Среда", "Четверг", "Пятница" или "Суббота";
  •  <study-item> (пункт расписания) – элемент  четвертого уровня;
  •  <time-slot-ref> (ссылка на промежуток времени) – элемент  пятого уровня  с атрибутом ref типа IDREF (ссылка на промежуток времени);
  •  <subject-ref> (ссылка на дисциплину) – элемент  пятого уровня  с атрибутом ref типа IDREF (ссылка на дисциплину);
  •  <teacher-ref> (ссылка на преподавателя) – элемент  пятого уровня  с атрибутом ref типа IDREF (ссылка на преподавателя);
  •  <classroom-ref> (ссылка на учебную аудиторию) – элемент  пятого уровня  с атрибутом ref типа IDREF (ссылка на аудиторию).

Ограничения документа XML для расписания занятий:

  •  в корневом элементе должен быть только один элемент <department>  с текстовым содержимым;
  •  в корневом элементе должен быть только один элемент <group> с текстовым содержимым;
  •  в корневом элементе должен быть только один элемент <teacher-list>;
  •  в элементе <teacher-list> может быть один или более элементов <teacher> с обязательным атрибутом name типа  id и текстовым содержимым;
  •  в корневом элементе должен быть только один элемент <subject-list>;
  •  в элементе <subject-list> может быть один или более элементов <subject> с обязательным атрибутом name типа  id  и текстовым содержимым;
  •  в корневом элементе должен быть только один элемент <time-slot-list>;
  •  в элементе <time-slot-list> может быть один или более элементов <time-slot> с  обязательным атрибутом value типа  id;
  •  в корневом элементе должен быть только один элемент <classroom-list>;
  •  в элементе <classroom-list> может быть один или более элементов <classroom> с  обязательными атрибутами: room типа id и index;  
  •  в корневом элементе должен быть только один элемент <content>;
  •  в элементе <content> может быть один или более элементов <week-day> с атрибутом name, имеющим одно из следующих значений: "Понедельник", "Вторник", "Среда", "Четверг", "Пятница" или "Суббота" (значение по умолчанию – "Понедельник");
  •  в элементе <week-day> может быть один или более элементов <study-item>;
  •  в элементе <study-item> должен быть только один элемент <time-slot-ref> с обязательным атрибутом ref типа IDREF;
  •  в элементе <study-item> должен быть только один элемент <subject-ref> с обязательным атрибутом ref типа IDREF;
  •  в элементе <study-item> должен быть только один элемент <teacher-ref> с обязательным атрибутом ref типа IDREF;
  •  в элементе <study-item> должен быть только один элемент <classroom-ref>  с обязательным атрибутом типа IDREF.

В DTD определите сущности для нескольких дисциплин, например,  сущность subject1 со значением "Математика" и сущность subject2 со значением "Физика" и используйте эти сущности в документе XML.

Вариант 1-12

Составьте документ XML для четырех рабочих программ учебных дисциплин (из них две – по одной и той же специальности) со следующими элементами и атрибутами (от трех до пяти лекций, одна-три практики, 0-2 семинара, 2-4 лабораторных работы, 2-4 источника):

  •  <study-subject-list> (список дисциплин) – корневой элемент;
  •  <study-subject> (дисциплина) – элемент  второго уровня с обязательным атрибутом name (наименование дисциплины);
  •  <specialty> (специальность, по которой проходит дисциплина) – элемент  третьего уровня с текстовым содержимым;
  •  <general-information> (общие сведения) – элемент  третьего уровня с текстовым содержимым – кратким описанием дисциплины;
  •  <aims-and-goals> (цели и задачи дисциплины) – элемент  третьего уровня с текстовым содержимым – кратким описанием целей и задач дисциплины;
  •  <plan> (план занятий) – элемент  третьего уровня;
  •  <study-list> (список занятий) – элемент  четвертого уровня;
  •  <lecture> (лекция) – элемент  пятого уровня с  атрибутом theme (тема лекции);
  •  <lecture-question> (вопрос, рассматриваемый в лекции) – элемент  шестого уровня с  текстовым содержимым – кратким описанием вопроса, рассматриваемого в лекции;
  •  <practice> (практическое занятие) – элемент  пятого уровня с  обязательным атрибутом theme (тема практического занятия);
  •  <practice-question> (вопрос, рассматриваемый в практическом занятии) – элемент  шестого уровня с  текстовым содержимым – кратким описанием вопроса, рассматриваемого в практическом занятии;
  •  <seminar> (семинарское занятие) – элемент  пятого уровня с  обязательным атрибутом theme (тема семинарского занятия);
  •  <seminar-question> (вопрос, рассматриваемый в семинарском занятии) – элемент  шестого уровня с  текстовым содержимым – кратким описанием вопроса, рассматриваемого в семинарском занятии;
  •  <lab> (лабораторная работа) – элемент  пятого уровня с  обязательным атрибутом theme (тема лабораторной работы);
  •  <methodic> (методические указания) – элемент  третьего уровня с текстовым содержимым – кратким методическим описанием дисциплины;
  •  <source-list> (список литературы) – элемент  третьего уровня;
  •  <source> (элемент списка литературы) – элемент  четвертого уровня с  текстовым содержимым;
  •  <fio>  (фамилия, имя, отчество преподавателя) –  элемент третьего уровня с текстовым содержимым – фамилией и инициалами преподавателя;
  •  <end-date> (дата окончания составления программы) – элемент  третьего уровня с  текстовым содержимым.

Ограничения документа XML для рабочих программ учебных дисциплин:

  •  в корневом элементе может быть один или более элементов <study-subject> с обязательным атрибутом name;
  •  в элементе <study-subject> должен быть только один элемент <specialty> с текстовым содержимым;
  •  в элементе <study-subject> должен быть только один элемент <general-information> с текстовым содержимым;
  •  в элементе <study-subject> должен быть только один элемент <aims-and-goals> с текстовым содержимым;
  •  в элементе <study-subject> должен быть только один элемент <plan>;
  •  в элементе <plan> должен быть только один элемент <study-list>;
  •  в элементе <study-list>  может быть один или более элементов <lecture> с  обязательным атрибутом theme;
  •  в элементе <lecture> может быть один или более элементов <lecture-question> с  текстовым содержимым;
  •  в элементе <study-list> может быть несколько элементов <practice> с  обязательным атрибутом theme, либо элемент <practice> может отсутствовать;
  •  в элементе <practice> может быть один или более элементов <practice-question> с  текстовым содержимым;
  •  в элементе <study-list> может быть несколько элементов <seminar> с  обязательным атрибутом theme, либо элемент <seminar> может отсутствовать;
  •  в элементе <seminar> может быть один или более элементов <seminar-question> с  текстовым содержимым;
  •  в элементе <study-list> может быть несколько элементов <lab> с  обязательным атрибутом theme, либо элемент <lab> может отсутствовать;
  •  в элементе <plan> должен быть только один элемент <methodic> с текстовым содержимым;
  •  в элементе <plan> должен быть только один элемент <source-list>;
  •  в элементе <source-list> может быть один или более элементов <source> с  текстовым содержимым;
  •  в элементе <plan> должен быть только один элемент <fio>  с текстовым содержимым;
  •  в элементе <plan> должен быть только один элемент <end-date> с  текстовым содержимым.

В DTD определите сущности для нескольких специальностей, например, сущность specialty1 со значением "7.091004 – Технологии и средства телекоммуникаций" и сущность specialty со значением "7.080403 – Программное обеспечение автоматизированных систем" и используйте эти сущности в документе XML.

Вариант 1-13

Составьте документ XML для справочника полей языка Java (четыре поля, из них два начинаются на одну и ту же букву) со следующими элементами и атрибутами:

  •  <field-list> (список полей) – корневой элемент с атрибутом name (наименование справочника);
  •  <letter>  (буква) –  элемент второго уровня с атрибутом value (буква, на которую начинается имя поля);
  •  <field> (поле) – элемент  третьего уровня с атрибутом name – именем поля;
  •  <description> (описание поля) – элемент  четвертого уровня с текстовым содержимым – кратким описанием поля; 
  •  <class> (класс, в котором определено поле) – элемент  четвертого уровня с атрибутом name – именем класса;
  •  <type> (тип поля) – элемент  четвертого уровня с текстовым содержимым – типом данных для поля и атрибутом static, который имеет либо значение "yes", либо значение "no" (по умолчанию "no"), а также атрибутом protected, который имеет те же значения, что и атрибут  static;
  •  <value> (значение поля) – элемент  четвертого уровня с текстовым содержимым – значением поля;
  •  <version> (версия Java, в которой впервые появилось поле) – элемент четвертого уровня с текстовым содержимым.

Ограничения документа XML для справочника полей языка Java:

  •  корневой элемент <field-list> должен иметь обязательный атрибут  name;
  •  в корневом элементе может быть один или более элементов <letter>  с обязательным атрибутом value;
  •  в элементе <letter> может быть несколько элементов <field> с обязательным  атрибутом name, либо элемент <field> может отсутствовать;
  •  в элементе <field> должен быть только один элемент <description> с текстовым содержимым; 
  •  в элементе <field> должен быть только один элемент <class> с обязательным атрибутом name;
  •  в элементе <field> должен быть только один элемент <type> с текстовым содержимым и атрибутом static, который имеет либо значение "yes", либо значение "no" (по умолчанию "no"), а также атрибутом protected, который имеет те же значения, что и атрибут  static;
  •  в элементе <field> должен быть только один элемент <value> с текстовым содержимым, либо элемент <value> может отсутствовать;
  •  в элементе <field> должен быть только один элемент <version> с текстовым содержимым.

В DTD определите сущности для нескольких модификаторов, например, сущность modifier1 со значением "static" и сущность modifier2 со значением "public", а также типов,  например, сущность type1 со значением "int" , сущность type2 со значением "void"  и сущность type3 со значением "String" и используйте эти сущности в документе XML.

Вариант 1-14

Составьте документ XML для расписания полетов самолетов на четыре даты полетов (от двух до пяти рейсов в день, из них два – в один и тот же  аэропорт назначения) со следующими элементами и атрибутами:

  •  <airport-table> (расписание полетов) – корневой элемент;
  •  <airport-list> (список аэропортов назначения) – элемент  второго уровня;
  •  <airport> (аэропорт назначения) – элемент  третьего уровня с атрибутом name  (наименование аэропорта) типа ID;
  •  <airplane-type-list> (список типов самолетов) – элемент  второго уровня;
  •  <airplane-type> (тип самолета) – элемент  третьего уровня с атрибутом name  (тип самолета) типа ID;
  •  <current-airport>  (наименование аэропорта) –  элемент второго уровня с атрибутом  ref  типа IDREF (наименованием аэропорта, для которого составлено расписание);
  •  <date> (дата полета) – элемент  второго уровня с текстовым содержимым;
  •  <airplane-table> (строка расписания для самолета) – элемент  третьего уровня с атрибутом  departure-airport  типа IDREF (ссылка на идентификатор аэропорта вылета) и destination-airport типа IDREF (ссылка на идентификатор аэропорта назначения);
  •  <number> (номер рейса) – элемент  четвертого уровня с текстовым содержимым;
  •  <departure-time> (время вылета) – элемент  четвертого уровня с текстовым содержимым;
  •  <arrival-time> (время прилета в аэропорт назначения) – элемент  четвертого уровня с текстовым содержимым;
  •  <airplane-ref> (ссылка на тип самолета) – элемент  четвертого уровня с атрибутом  ref типа IDREF.

Ограничения документа XML для расписания полетов самолетов:

  •  <airport-table> (расписание полетов) – корневой элемент;
  •  в корневом элементе должен быть только один элемент <airport-list>;
  •  в элементе <airport-list> может быть один или более элементов <airport> с обязательным атрибутом name  типа ID;
  •  в корневом элементе должен быть только один элемент <airplane-type-list>;
  •  в элементе <airplane-type-list> может быть один или более элементов <airplane-type> с обязательным атрибутом name   типа ID;
  •  в корневом элементе должен быть только один элемент <current-airport>  с обязательным атрибутом  ref  типа IDREF;
  •  в корневом элементе может быть один или более элементов <date> с текстовым содержимым;
  •  в элементе <date> может быть один или более элементов <airplane-table> с обязательным атрибутом  departure-airport  типа IDREF  и обязательным атрибутом destination-airport типа IDREF;
  •  в элементе <airplane-table> должен быть только один элемент <number> с текстовым содержимым;
  •  в элементе <airplane-table> должен быть только один элемент <departure-time> с текстовым содержимым;
  •  в элементе <airplane-table> должен быть только один элемент <arrival-time> с текстовым содержимым;
  •  в элементе <airplane-table> должен быть только один элемент <airplane-ref> (ссылка на тип самолета) с обязательным атрибутом  ref типа IDREF.

В DTD определите сущности для нескольких аэропортов, например, сущность city1 со значением "Киев" и сущность city2 со значением "Днепропетровск", и используйте эти сущности в документе XML.

Вариант 1-15

Составьте документ XML для научного отчета по теме со следующими элементами и атрибутами:

  •  <report> (отчет) – корневой элемент;
  •  <theme> (тема) – элемент  второго уровня с текстовым содержимым – наименованием темы; 
  •  <author-list> (список исполнителей отчета) – элемент второго уровня;
  •  <author> (исполнитель отчета) – элемент  третьего уровня с текстовым содержимым – фамилией и инициалами исполнителя и обязательным атрибутом status (должность), имеющим одно из следующих значений: "с.н.с", "м.н.с", "техник"и "лаборант", а также атрибутом sections (разделы со значением типа IDREFS, содержащим список идентификаторов разделов, в написании которых   принимал участие исполнитель);
  •  <annotation> (аннотация работы) – элемент  второго уровня с текстовым содержимым и обязательными атрибутами page-number (количество страниц), figure-number (количество рисунков), table-number (количество таблиц) и source-number (количество источников);
  •  <content> (содержание работы) – элемент  второго уровня;
  •  <preface> (введение) – элемент  третьего уровня с  текстовым содержимым и обязательным атрибутом id, имеющим значение  "Введение";
  •  <section> (раздел) – элемент  третьего уровня с обязательным атрибутом id (идентификатором раздела) и текстовым содержимым – наименованием раздела;
  •  <paragraph> (абзац) – элемент  четвертого уровня с  текстовым содержимым;
  •  <table> (таблица) – элемент  четвертого уровня – ссылка на неанализируемую сущность;
  •  <figure> (рисунок) – элемент  четвертого уровня – ссылка на неанализируемую сущность;
  •  <conclusion> (заключение) – элемент  третьего уровня с  текстовым содержимым и обязательным атрибутом id, имеющим значение "Заключение";
  •  <source-list> (список литературы) – элемент  второго уровня;
  •  <source> (элемент списка литературы) – элемент  третьего уровня с  текстовым содержимым;
  •  <end-date> (дата окончания выполнения отчета) – элемент второго уровня с  текстовым содержимым.

Ограничения документа XML для научного отчета по теме:

  •  в корневом элементе должен быть только один элемент <theme> с текстовым содержимым; 
  •  в корневом элементе должен быть только один элемент <author-list>;
  •  в элементе <author-list> может быть один или более элементов <author> с текстовым содержимым и обязательным атрибутом status (должность), имеющим одно из следующих значений: "с.н.с", "м.н.с", "техник"и "лаборант" (по умолчанию "с.н.с"), а также атрибутом sections со значением типа IDREFS, содержащим список идентификаторов разделов, в написании которых   принимал участие исполнитель;
  •  в корневом элементе должен быть только один элемент <annotation> с текстовым содержимым и обязательными атрибутами page-number, figure-number, table-number  и source-number;
  •  в корневом элементе должен быть только один элемент <content>;
  •  в элементе <content> должен быть только один элемент <preface> с  текстовым содержимым и обязательным атрибутом id типа ID;
  •  в элементе <content> может быть один или более элементов <section> с  текстовым содержимым;
  •  в элементе <section> может быть один или более элементов <paragraph> с  текстовым содержимым;
  •  в элементе <section> может быть несколько элементов <table>, либо элемент <table> может отсутствовать;
  •  в элементе <section> может быть несколько элементов <figure>, либо элемент <figure> может отсутствовать;
  •  в элементе <content> должен быть только один элемент <conclusion> (заключение) с  текстовым содержимым и обязательным атрибутом id типа ID;
  •  в корневом элементе должен быть только один элемент <source-list>;
  •  в элементе <source-list> может быть один или более элементов <source> с  текстовым содержимым;
  •  в корневом элементе должен быть только один элемент <end-date> с  текстовым содержимым.

В DTD определите сущности для нескольких авторов, например,  сущность author1 со значением "П.П. Петров" и сущность author2 со значением "И.И. Иванов", а также определите неанализируемую сущность для рисунков (ограничиться форматом gif и программой mspaint.exe в Windows)  и таблиц (формат doc и Word) и используйте эти сущности в документе XML.

Вариант 1-16

Составьте документ XML для справочника классов языка Java (четыре класса, из них два начинаются на одну и ту же букву) со следующими элементами и атрибутами:

  •  <class-list> (список классов) – корневой элемент с атрибутом name  (наименование справочника);
  •  <letter>  (буква) –  элемент второго уровня с атрибутом value (буква, на которую начинается имя класса);
  •  <class> (класс) – элемент  третьего уровня с текстовым содержимым – именем класса;
  •  <description> (краткое описание класса) – элемент  четвертого уровня с текстовым содержимым;
  •  <modifiers> (модификаторы класса) – элемент  четвертого уровня с атрибутами static, final и abstract, которые имеют либо значение "yes", либо значение "no";
  •  <superclass> (класс-родитель) – элемент  четвертого уровня с атрибутом name – именем класса-родителя;
  •   <subclass-list> (список прямых классов-потомков) – элемент четвертого уровня;
  •  <subclass> (подкласс) – элемент пятого уровня с атрибутом name – именем подкласса;
  •  <interface-list> (список интерфейсов, реализуемых классом) – элемент четвертого уровня;
  •  <interface> (интерфейс) – элемент пятого уровня с атрибутом name – именем реализуемого интерфейса;
  •  <fields-list> (список полей класса) – элемент четвертого уровня;
  •  <field> (поле) – элемент пятого уровня с атрибутом name – именем поля в классе;
  •  <methods-list> (список методов класса) – элемент четвертого уровня;
  •  <method> (метод) – элемент пятого уровня с атрибутом name – именем метода в классе и текстовым содержимым – типом возвращаемого значения;
  •  <version> (версия Java, в которой впервые появился класс) – элемент четвертого уровня с текстовым содержимым.

Ограничения документа XML для справочника классов языка Java:

  •  корневой элемент <class-list> должен иметь обязательный атрибут name;
  •  в корневом элементе может быть один или более элементов <letter>  с обязательным атрибутом value;
  •  в элементе <letter> может быть несколько элементов <class> с обязательным  атрибутом name, либо элемент <class> может отсутствовать;
  •  в элементе <class> должен быть только один элемент <description> с текстовым содержимым;
  •  в элементе <class> должен быть только один элемент <modifiers> с атрибутами static, final и abstract, которые имеют либо значение "yes", либо значение "no" (по умолчанию "no");
  •  в элементе <class> должен быть только один элемент <superclass> с обязательным атрибутом name;
  •  в элементе <class> может быть один элемент <subclass-list>, либо элемент <subclass-list> может отсутствовать;
  •  в элементе <subclass-list> может быть один или более элементов <subclass> с обязательным атрибутом name;
  •  в элементе <class> может быть один элемент <interface-list>, либо элемент <interface-list> может отсутствовать;
  •  в элементе <interface-list> может быть один или более элементов <interface> с обязательным атрибутом name;
  •  в элементе <class> может быть один элемент <fields-list>, либо элемент <fields-list> может отсутствовать;
  •  в элементе <fields-list> может быть один или более элементов <field> с обязательным атрибутом name;
  •  в элементе <class> может быть один элемент <methods-list>, либо элемент <methods-list> может отсутствовать;
  •  в элементе <methods-list> может быть один или более элементов <method> с обязательным атрибутом name и текстовым содержимым;
  •  в элементе <class> должен быть только один элемент <version> с текстовым содержимым.

Вариант 1-17

Составьте документ XML для содержимого четырех учебных программ дисциплин со следующими элементами и атрибутами (каждая программа с четырьмя разделами, в каждом разделе – от 1 до 3 тем, в документе от 2 до 4 лекций, от 2 до 4 практических занятий и от 1 до 3 лабораторных работ):

  •  <study-subject-list> (список дисциплин) – корневой элемент;
  •  <study-subject> (дисциплина) – элемент  второго уровня с атрибутом name (наименование дисциплины);
  •  <specialty> (специальность, по которой проходит дисциплина) – элемент  третьего уровня с текстовым содержимым;
  •  <general-information> (общие сведения) – элемент  третьего уровня с текстовым содержимым – краткими сведениями о дисциплине;
  •  <aims-and-goals> (цели и задачи дисциплины) – элемент  третьего уровня с текстовым содержимым – кратким описанием целей и задач дисциплины;
  •  <content> (содержание учебного материала) – элемент  третьего уровня;
  •  <section> (раздел учебной дисциплины) – элемент  четвертого уровня с атрибутом name (наименование раздела);
  •  <theme> (тема) – элемент  пятого уровня с атрибутом name (наименование темы) и  текстовым содержимым – описанием темы;
  •  <practice> (практическое занятие) – элемент  четвертого уровня, содержащий один или более элементов <theme> пятого уровня, аналогично элементу <section>;
  •  <seminar> (семинарское занятие) – элемент  четвертого уровня, содержащий один и более элементов <theme> пятого уровня, аналогично элементу <section>;
  •  <lab-list> (список лабораторных работ) – элемент  четвертого уровня;
  •  <lab> (лабораторная работа) – элемент  пятого уровня с текстовым содержимым – темой лабораторной работы;
  •  <methodic> (методические указания) – элемент  третьего уровня с текстовым содержимым;
  •  <source-list> (список литературы) – элемент  третьего уровня;
  •  <source> (элемент списка литературы) – элемент  четвертого уровня с  текстовым содержимым;
  •  <fio>  (фамилия, имя и отчество преподавателя) –  элемент третьего уровня с текстовым содержимым;
  •  <end-date> (дата окончания составления программы) – элемент  третьего уровня с  текстовым содержимым.

Ограничения документа XML для содержимого учебных программ дисциплин:

  •  в корневом элементе может быть один или более элементов <study-subject> с обязательным атрибутом name;
  •  в элементе <study-subject> должен быть только один элемент <specialty> с текстовым содержимым;
  •  в элементе <study-subject> должен быть только один элемент <general-information> с текстовым содержимым;
  •  в элементе <study-subject> должен быть только один элемент <aims-and-goals> с текстовым содержимым;
  •  в элементе <study-subject> должен быть только один элемент <content>;
  •  в элементе <content> может быть один или более элементов <section> с обязательным атрибутом name;
  •  в элементе <section> может быть один или более элементов <theme> с обязательным атрибутом name  и  текстовым содержимым;
  •  в элементе <content> может быть несколько элементов <practice>,  либо элемент <practice> может отсутствовать;
  •  в элементе <practice> может быть один или более элементов <theme> с обязательным атрибутом name  и  текстовым содержимым;
  •  в элементе <content> может быть несколько элементов <seminar>,  либо элемент <seminar> может отсутствовать;
  •  в элементе <seminar> может быть один или более элементов <theme> с обязательным атрибутом name  и  текстовым содержимым;
  •  в элементе <content> может быть несколько элементов <lab-list>,  либо элемент <lab-list> может отсутствовать;
  •  в элементе <lab-list> может быть один или более элементов <lab> с текстовым содержимым;
  •  в элементе <content> должен быть только один элемент <methodic> с текстовым содержимым;
  •  в элементе <study-subject> должен быть только один элемент <source-list>;
  •  в элементе <source-list> может быть один или более элементов <source> с  текстовым содержимым;
  •  в элементе <study-subject> может быть один или более элементов <fio>  с текстовым содержимым;
  •  в элементе <study-subject> должен быть только один элемент <end-date> с  текстовым содержимым.

В DTD определите сущности для нескольких специальностей, например, сущность specialty1 со значением "7.091004 – Технологии и средства телекоммуникаций" и сущность specialty2 со значением "7.080403 – Программное обеспечение автоматизированных систем" и используйте эти сущности в документе XML.

Вариант 1-18

Составьте документ XML для четырех контрактов на выполнение работ (из них два контракта – с одним и тем же заказчиком) со следующими элементами и атрибутами (в каждом контракте 2-4 задания и 1-3 условия):

  •  <contract-list> (список контрактов) – корневой элемент;
  •  <contract> (контракт) – элемент второго уровня с атрибутом title (заголовок контракта);
  •  <preamble>  (преамбула контракта) –  элемент третьего уровня с атрибутом city (место заключения контракта), который может иметь одно из следующих значений: "Киев",  "Днепропетровск", "Донецк" или "Харьков", а также  атрибутом date;
  •  <director> (заказчик) – элемент  третьего уровня;
  •  <organization> (организация) – элемент  четвертого уровня с текстовым содержимым;
  •  <fio> (фамилия, имя и отчество заказчика) – элемент  четвертого уровня с текстовым содержимым;
  •  <contractor> (контрактант) – элемент  третьего уровня; 
  •  <fio> (фамилия, имя и отчество контрактанта) – элемент  четвертого уровня с текстовым содержимым;
  •  <status> (должность, на которую принимают контрактанта) – элемент  четвертого уровня с текстовым содержимым;
  •  <task-content-list> (список заданий) – элемент  третьего уровня; 
  •  <task-item> (задание) – элемент  четвертого уровня с текстовым содержимым;
  •  <time-begin> (дата начала выполнения задания) – элемент  четвертого уровня с текстовым содержимым;
  •  <time-end> (дата окончания выполнения задания) – элемент  четвертого уровня с текстовым содержимым;
  •  <duration> (сроки выполнения работ по контракту) – элемент третьего уровня с атрибутами time-begin (время начала действия контракта) и time-end (время окончания действия контракта);
  •  <month-salary> (месячная зарплата) – элемент третьего уровня с текстовым содержимым;
  •  <conditions> (условия контракта) – элемент третьего уровня с текстовым содержимым;
  •  <results-proprietor> (собственник результатов работы) – элемент третьего уровня с атрибутом value (значения "Контрактант" или "Заказчик").

Ограничения документа XML для контрактов на выполнение работ:

  •  в корневом элементе может быть один или более элементов <contract> с обязательным атрибутом title;
  •  в элементе <contract> должен быть только один элемент <preamble>  с обязательным атрибутом city, который может иметь одно из следующих значений: "Киев",  "Днепропетровск", "Донецк" или "Харьков"  (по умолчанию "Киев"), а также  обязательным атрибутом date;
  •  в элементе <contract> должен быть только один элемент <director>;
  •  в элементе <director> должен быть только один элемент <organization> с текстовым содержимым;
  •  в элементе <director> должен быть только один элемент <fio> с текстовым содержимым;
  •  в элементе <contract> должен быть только один элемент <contractor>; 
  •  в элементе <contractor> должен быть только один элемент <fio> с текстовым содержимым;
  •  в элементе <contractor> должен быть только один элемент <status> с текстовым содержимым;
  •  в элементе <contract> может быть один или более элементов <task-content-list>; 
  •  в элементе <task-content-list> должен быть только один элемент <task-item> с текстовым содержимым;
  •  в элементе <task-content-list> должен быть только один элемент <time-begin> с текстовым содержимым;
  •  в элементе <task-content-list> должен быть только один элемент <time-end> с текстовым содержимым;
  •  в элементе <contract> должен быть только один элемент <duration> с обязательными атрибутами time-begin  и time-end;
  •  в элементе <contract> должен быть только один элемент <month-salary> с текстовым содержимым;
  •  в элементе <contract> может быть один или более элементов <conditions> с текстовым содержимым;
  •  в элементе <contract> должен быть только один элемент <results-proprietor> с атрибутом value перечислимого типа (значения "Контрактант" и "Заказчик", значение по умолчанию – "Заказчик").

В DTD определите сущности для фамилии, имени, отчества заказчика, например, сущность customer1 со значением "Иванов И.И" и сущность customer2 со значением "Петров П.П." и используйте эти сущности в документе XML.

 

Вариант 1-19

Составьте документ XML для справочника интерфейсов языка Java (четыре интерфейса, из них два начинаются на одну и ту же букву, для каждого интерфейса – от 0 до 3 суперинтерфейсов, от 0 до трех интерфейсов-потомков и от 1 до 4 методов) со следующими элементами и атрибутами:

  •  <interface-list> (список интерфейсов) – корневой элемент с атрибутом name  (наименование справочника);
  •  <letter>  (буква) –  элемент второго уровня с обязательным атрибутом value (буква, на которую начинается имя метода);
  •  <interface> (интерфейс) – элемент  третьего уровня с обязательным атрибутом name – именем интерфейса;
  •  <description> (краткое описание интерфейса) – элемент  четвертого уровня с текстовым содержимым;
  •  <modifier> (модификатор интерфейса) – элемент  четвертого уровня с текстовым содержимым – модификатором интерфейса (текстовое содержимое может иметь значение "protected" или "private");
  •  <superinterfaces-list> (список интерфейсов – родителей данного интерфейса) – элемент четвертого уровня;
  •  <superinterface> (интерфейс-родитель) – элемент пятого уровня с текстовым содержимым – именем интерфейса-родителя;
  •   <subinterface-list> (список прямых интерфейсов-потомков) – элемент четвертого уровня;
  •  <subinterface> (интерфейс-потомок) – элемент пятого уровня с текстовым содержимым – именем интерфейса-потомка;
  •  <fields-list> (список полей интерфейса) – элемент четвертого уровня;
  •  <field> (поле) – элемент пятого уровня с атрибутом name (именем поля) и текстовым содержимым – описанием поля;
  •  <methods-list> (список методов интерфейса) – элемент четвертого уровня;
  •  <method> (поле) – элемент пятого уровня с атрибутом name (именем метода) и текстовым содержимым – типом данных, который возвращает метод;
  •  <version> (версия Java, в которой впервые появился интерфейс) – элемент четвертого уровня с текстовым содержимым.

Ограничения документа XML для справочника интерфейсов языка Java:

  •  корневой элемент <interface-list> должен иметь обязательный атрибутом name;
  •  в корневом элементе может быть один или более элементов <letter>  с обязательным атрибутом value;
  •  в элементе <letter> может быть несколько элементов <interface> с обязательным  атрибутом name, либо элемент <interface> может отсутствовать;
  •  в элементе <interface> должен быть только один элемент <description> с текстовым содержимым;
  •  в элементе <interface> должен быть только один элемент <modifier> с текстовым содержимым;
  •  в элементе <interface> может быть один элемент <superinterfaces-list>, либо элемент <superinterfaces-list> может отсутствовать;
  •  в элементе <superinterfaces-list> может быть один или более элементов <superinterface> с текстовым содержимым;
  •  в элементе <interface> может быть один элемент <subinterface-list>, либо элемент <subinterface-list> может отсутствовать;
  •  в элементе <subinterface-list> может быть один или более элементов <subinterface> с текстовым содержимым;
  •  в элементе <interface> может быть один элемент <fields-list>, либо элемент <fields-list> может отсутствовать;
  •  в элементе <fields-list> может быть один или более элементов <field> с обязательным атрибутом name и текстовым содержимым; 
  •  в элементе <interface> должен быть только один элемент <methods-list>;
  •  в элементе <methods-list> может быть один или более элементов <method> с обязательным атрибутом name и текстовым содержимым;
  •  в элементе <interface> должен быть только один элемент <version> с текстовым содержимым.

В DTD определите сущности для модификаторов интерфейсов, например, сущность mofifier1 со значением "protected" и сущность modifier2 со значением "private" и используйте эти сущности в документе XML в качестве значения элемента <modifier>. Определите также сущности для нескольких типов,  например, сущность type1 со значением "int" , сущность type2 со значением "void"  и сущность type3 со значением "String" и используйте эти сущности в документе XML в качестве значения элемента <method>.

Вариант 1-20

Составьте документ XML для четырех пакетов по протоколу TCP в Internet (из них два пакета – с одним и тем же портом назначения) со следующими элементами и атрибутами:

  •  <TCP-packet-list> (набор пакетов TCP) – корневой элемент;
  •  <TCP-packet> (пакет TCP) – элемент  второго уровня;
  •  <header> (заголовок пакета) – элемент  третьего уровня;
  •  <source-port> (порт источника) – элемент четвертого уровня с текстовым содержимым;
  •  <destination-port> (порт назначения) – элемент четвертого уровня с текстовым содержимым;
  •  <sequence-number> (порядковый номер пакета) – элемент  четвертого уровня с текстовым содержимым;
  •  <acknowledgment-number> (номер подтверждения пакета) – элемент  четвертого уровня с текстовым содержимым;
  •  <data-offset> (смещение данных) – элемент  четвертого уровня с текстовым содержимым;
  •  <reserved-field> (зарезервированное поле) – элемент  четвертого уровня с текстовым содержимым;
  •  <flags> (флажки) – элемент четвертого уровня;
  •  <URG-flag> (флажок срочности) – элемент  пятого уровня с атрибутом по перечислению value (значение) со значениями "0" или "1";
  •  <ACK-flag> (флажок пакета подтверждения) – элемент  пятого уровня с атрибутом по перечислению value (значение) со значениями "0" или "1"; 
  •  <PSH-flag> (флажок фиксированной отправки) – элемент  пятого уровня с атрибутом по перечислению value (значение) со значениями "0" или "1";
  •  <RST-flag> (флажок переустановки соединения) – элемент  пятого уровня с атрибутом по перечислению value (значение) со значениями "0" или "1";
  •  <SYN-flag> (флажок синхронизации) – элемент  пятого уровня с атрибутом по перечислению value (значение) со значениями "0" или "1";
  •  <FIN-flag> (флажок окончания передачи) – элемент  пятого уровня с атрибутом по перечислению value (значение) со значениями "0" или "1";
  •  <window> (размер окна передачи) – элемент четвертого уровня с текстовым содержимым;
  •  <checksum> (контрольная сумма заголовка) – элемент четвертого уровня с текстовым содержимым;
  •  <urgent-pointer> (указатель срочных данных) – элемент четвертого уровня с текстовым содержимым;
  •  <option-list> (список опций заголовка) – элемент четвертого уровня;
  •  <option> (опция заголовка) – элемент  пятого уровня с текстовым содержимым;
  •  <padding> (выравнивание размера заголовка) – элемент пятого уровня с текстовым содержимым;
  •  <data> (данные пакета) – элемент  третьего уровня с текстовым содержимым.

Ограничения документа XML для пакетов по протоколу TCP в Internet:

  •  в корневом элементе может быть один или более элементов <TCP-packet>;
  •  в элементе <TCP-packet> должен быть только один элемент <header>;
  •  в элементе <header> должен быть только один элемент <source-port> с текстовым содержимым;
  •  в элементе <header> должен быть только один элемент <destination-port> с текстовым содержимым;
  •  в элементе <header> должен быть только один элемент <sequence-number> с текстовым содержимым;
  •  в элементе <header> должен быть только один элемент <acknowledgment-number> с текстовым содержимым;
  •  в элементе <header> должен быть только один элемент <data-offset> с текстовым содержимым;
  •  в элементе <header> должен быть только один элемент <reserved-field> с текстовым содержимым;
  •  в элементе <header> должен быть только один элемент <flags>;
  •  в элементе <flags> должен быть только один элемент <URG-flag> с атрибутом по перечислению value  со значениями "0" или "1",  по умолчанию –  "0";
  •  в элементе <flags> должен быть только один элемент <ACK-flag> с атрибутом по перечислению value  со значениями "0" или "1",  по умолчанию –  "0"; 
  •  в элементе <flags> должен быть только один элемент <PSH-flag> с атрибутом по перечислению value  со значениями "0" или "1",  по умолчанию –  "0";
  •  в элементе <flags> должен быть только один элемент <RST-flag> с атрибутом по перечислению value  со значениями "0" или "1",  по умолчанию –  "0";
  •  в элементе <flags> должен быть только один элемент <SYN-flag> с атрибутом по перечислению value  со значениями "0" или "1",  по умолчанию –  "0";
  •  в элементе <flags> должен быть только один элемент <FIN-flag> с атрибутом по перечислению value  со значениями "0" или "1",  по умолчанию –  "0";
  •  в элементе <header> должен быть только один элемент <window> с текстовым содержимым;
  •  в элементе <header> должен быть только один элемент <checksum> с текстовым содержимым;
  •  в элементе <header> должен быть только один элемент <urgent-pointer> с текстовым содержимым;
  •  в элементе <TCP-packet> может быть один элемент <option-list>, либо элемент <option-list> может отсутствовать;
  •  в элементе <option-list> может быть один или более элементов <option> с текстовым содержимым;
  •  в элементе <option-list> должен быть только один элемент <padding> с текстовым содержимым;
  •  в элементе <TCP-packet> должен быть только один элемент <data> с текстовым содержимым.

Создайте схему документа XML для пакетов по протоколу TCP в Internet со следующими уточнениями:

  •  элементы  <source-port> и  <destination-port> должны содержать десятичные числа (от двух до четырех цифр);
  •  содержимое элементов <sequence-number>, <acknowledgment-number>,  <data-offset>, <window> и <padding> должны быть представлено в виде неотрицательных целых чисел;
  •  элемент <reserved-field> должен последовательность из четырех нулей.

Вариант 1-21

Составьте документ XML для четырех регистрационных карт научно-исследовательских тем (из них две прикладных и две – фундаментальных в 1-3 этапа) со следующими элементами и атрибутами:

  •  <registry-card-list> (список регистрационных карт) – корневой элемент;
  •  <registry-card> (регистрационная карта) – элемент  второго уровня с атрибутом index (номер регистрации);
  •  <preamble> (преамбула карты) – элемент   третьего уровня;
  •  <base>  (основания проведения работы) –  элемент четвертого уровня с атрибутом type (тип основания) со значениями "госзаказ", "министерство", "организация" или "личная";
  •  <research-type> (вид работы) – элемент  четвертого уровня с атрибутом value (значение вида) со значениями "фундаментальная" или "прикладная";
  •  <requestor> (сведения о заказчике работы) – элемент  третьего уровня;
  •  <name> (наименование организации) – элемент  четвертого уровня с текстовым содержимым;
  •  <address> (адрес организации) – элемент  четвертого уровня с текстовым содержимым;
  •  <research-name> (наименование работы) – элемент  третьего уровня с текстовым содержимым;
  •  <annotation> (аннотация работы) – элемент  третьего уровня с текстовым содержимым; 
  •  <section-list> (список этапов работы) – элемент  третьего уровня;
  •  <section> (этап работ) – элемент  четвертого уровня с атрибутами name (наименование этапа), date-begin (дата начала этапа) и date-end (дата окончания этапа);
  •  <contractor> (сведения об исполнителе работы) – элемент  третьего уровня, содержащий элементы <name> и  <address>.

Ограничения документа XML для регистрационных карт научно-исследовательских тем:

  •  в корневом элементе может быть один или более элементов <registry-card> с обязательным атрибутом index;
  •  в элементе <registry-card> должен быть только один элемент <preamble>;
  •  в элементе <preamble> должен быть только один элемент <base>  с атрибутом по перечислению type  со значениями "госзаказ", "министерство", "организация" или "личная", по умолчанию –  "госзаказ";
  •  в элементе <preamble> должен быть только один элемент <research-type> с атрибутом по перечислению value  со значениями "фундаментальная" или "прикладная",  по умолчанию –  "прикладная";
  •  в элементе <registry-card> должен быть только один элемент <requestor>;
  •  в элементе <requestor> должен быть только один элемент <name> с текстовым содержимым;
  •  в элементе <requestor> должен быть только один элемент <address> с текстовым содержимым;
  •  в элементе <registry-card> должен быть только один элемент <research-name> с текстовым содержимым;
  •  в элементе <registry-card> должен быть только один элемент <annotation> с текстовым содержимым; 
  •  в элементе <registry-card> должен быть только один элемент <section-list>;
  •  в элементе <section-list> может быть один или более элементов <section> с обязательными атрибутами name, date-begin  и date-end;
  •  в элементе <registry-card> должен быть только один элемент <contractor>;
  •  в элементе <contractor> должен быть только один элемент <name> с текстовым содержимым;
  •  в элементе <contractor> должен быть только один элемент <address> с текстовым содержимым.

В DTD определите сущности для наименований организаций заказчиков, например, например, сущность requestor1 со значением "Минобразования" и сущность requestor2 со значением "Минэкономики" и используйте эти сущности в документе XML.

Вариант 1-22

Составьте документ XML для описания стандартной библиотеки функций языка C (четыре раздела, в каждом разделе – от 1 до 3 именованных констант, от 1 до 3 функций, от 1 до 4 параметров) со следующими элементами и атрибутами:

  •  <C-standard-library> (стандартная библиотека C) – корневой элемент;
  •  <partition> (раздел библиотеки) – элемент  второго уровня с атрибутом name (наименованием раздела); 
  •  <partition-description> (описание раздела) – элемент  третьего уровня с текстовым содержимым;
  •  <constant-list> (список именованных констант раздела) – элемент третьего уровня;
  •  <constant> (именованная константа раздела) – элемент четвертого уровня с атрибутом name (именем константы) и текстовым содержимым – описанием константы;
  •  <function-list> (список функций раздела) – элемент третьего уровня;
  •  <function> (функция) – элемент  четвертого уровня с обязательным атрибутом name (именем функции);
  •  <function-description> (описание функции) – элемент  четвертого уровня с текстовым содержимым;
  •  <return-value-type> (тип возвращаемого значения) – элемент  четвертого уровня с текстовым содержимым;
  •   <parameter-list> (список параметров функции) – элемент четвертого уровня, содержит одну или несколько последовательностей элементов <parameter-type> и <parameter-description>;
  •  <parameter-type> (тип параметра функции) – элемент пятого уровня с текстовым содержимым;
  •  <parameter-description> (описание параметра функции) – элемент пятого уровня с текстовым содержимым.

Ограничения документа XML для описания стандартной библиотеки функций языка C:

  •  в корневом элементе может быть один или более элементов <partition> с обязательным атрибутом name; 
  •  в элементе <partition> должен быть только один элемент <partition-description> с текстовым содержимым;
  •  в элементе <partition> может быть один элемент <constant-list>, либо элемент <constant-list> может отсутствовать;
  •  в элементе <option-list> может быть один или более элементов <constant> с обязательным атрибутом name  и текстовым содержимым;
  •  в элементе <partition> может быть один элемент <function-list>, либо элемент <function-list> может отсутствовать;
  •  в элементе  <function-list> может быть один или более элементов <function> с обязательным атрибутом name;
  •  в элементе <function-list> должен быть только один элемент <function-description> с текстовым содержимым;
  •  в элементе <function-list> должен быть только один элемент <return-value-type> с текстовым содержимым;
  •  в элементе <function-list> может быть один элемент <parameter-list>, либо элемент <parameter-list> может отсутствовать;
  •  в элементе <parameter-list> может быть одна или более последовательностей элементов, состоящих из одного элемента <parameter-type> и одного элемента <parameter-description>.

В DTD определите сущности для нескольких типов,  например, сущность type1 со значением "int" , сущность type2 со значением "void"  и сущность type3 со значением "double" и используйте эти сущности в документе XML.

Вариант 1-23

Составьте документ XML для описания четырех классов языка Java (из них два класса – с одним и тем же классом-родителем) со следующими элементами и атрибутами:

  •  <class-list> (список классов) – корневой элемент;
  •  <class> (класс) – элемент  второго уровня с атрибутом name – именем класса;
  •  <description> (описание класса) – элемент  третьего уровня с текстовым содержимым – описанием класса;
  •  <modifiers> (модификаторы класса) – элемент  третьего уровня с текстовым содержимым – модификаторами класса, имеющим одно из значений: "static", "public" или "protected";
  •  <superclass> (класс-родитель) – элемент  третьего уровня с текстовым содержимым – именем  класса-родителя;
  •   <subclass-list> (список прямых классов-потомков) – элемент третьего уровня;
  •  <subclass> (подкласс) – элемент четвертого уровня с текстовым содержимым – именем подкласса;
  •  <interface-list> (список интерфейсов, реализуемых классом) – элемент третьего уровня;
  •  <interface> (интерфейс) – элемент четвертого уровня с текстовым содержимым – именем интерфейса;
  •  <fields-list> (список полей класса) – элемент третьего уровня;
  •  <field> (поле класса) – элемент четвертого уровня с атрибутом name (именем поля) и с текстовым содержимым – описанием поля;
  •  <constructor-list> (список конструкторов класса) – элемент третьего уровня с текстовым содержимым;
  •  <constructor-parameter> (параметр конструктора) – элемент четвертого уровня с текстовым содержимым – описанием параметра, а также  атрибутом  name (имя параметра) и атрибутом type (тип параметра), который может иметь одно из следующих значений: "int" , "float"  и "String";
  •  <method-list> (список методов класса) – элемент третьего уровня с текстовым содержимым;
  •  <method> (метод класса) – элемент четвертого уровня с обязательным атрибутом name (именем метода) и текстовым значением – модификатором метода; 
  •  <method-parameter> (параметр метода) – элемент пятого уровня с текстовым содержимым – описанием параметра, а также  атрибутом  name (имя параметра) и атрибутом type (тип параметра), который может иметь одно из следующих значений: "int" , "float"  и "String";
  •  <return-value-type> (тип возвращаемого значения) – элемент  четвертого уровня с текстовым содержимым – типом возвращаемого методом значения;
  •  <version> (версия Java, в которой впервые появился класс) – элемент третьего уровня с текстовым содержимым.

Ограничения документа XML для описания классов языка Java:

  •  в корневом элементе может быть один или более элементов <class> (класс) с обязательным атрибутом name;
  •  в элементе <class> должен быть только один элемент <description> с текстовым содержимым;
  •  в элементе <class> должен быть только один элемент <modifiers> с текстовым содержимым;
  •  в элементе <class> должен быть только один элемент <superclass> с текстовым содержимым;
  •  в элементе <class> может быть один элемент <subclass-list>, либо элемент <subclass-list> может отсутствовать;
  •  в элементе  <subclass-list> может быть один или более элементов <subclass> с текстовым содержимым;
  •  в элементе <class> может быть один элемент <interface-list>, либо элемент <interface-list> может отсутствовать;
  •  в элементе  <interface-list> может быть один или более элементов <interface> с текстовым содержимым;
  •  в элементе <class> может быть один элемент <fields-list>, либо элемент <fields-list> может отсутствовать;
  •  в элементе  <fields-list> может быть один или более элементов <field> с обязательным атрибутом name  и с текстовым содержимым;
  •  в элементе <class> может быть один элемент <constructor-list>, либо элемент <constructor-list> может отсутствовать;
  •  в элементе  <constructor-list> может быть один или более элементов <constructor-parameter> с текстовым содержимым, а также обязательным атрибутом  name  и атрибутом type, который может иметь одно из следующих значений: "int" , "float"  и "String" (по умолчанию "int");
  •  в элементе <class> может быть один элемент <method-list>, либо элемент <method-list> может отсутствовать;
  •  в элементе  <method-list> может быть один или более элементов <method> с обязательным атрибутом name и текстовым значением; 
  •  в элементе  <method> может быть один или более элементов <method-parameter> с текстовым содержимым, а также  обязательным атрибутом  name  и атрибутом type, который может иметь одно из следующих значений: "int" , "float"  и "String" (по умолчанию "int");
  •  в элементе  <method> должен быть только один элемент <return-value-type> с текстовым содержимым;
  •  в элементе <class> должен быть только один элемент <version> с текстовым содержимым.

В DTD определите сущности для нескольких модификаторов, например, сущность modifier1 со значением "static" и сущность modifier2 со значением "public", а также типов,  например, сущность type1 со значением "int" , сущность type2 со значением "void"  и сущность type3 со значением "String" (в полях и методах) и используйте эти сущности в документе XML.

Вариант 1-24

Составьте документ XML для четырех дейтаграмм протокола IP в Internet (из них две дейтаграммы – одним и тем же адресом источника) со следующими элементами и атрибутами:

  •  <IP-datagram-list> (список дайтаграмм IP) – корневой элемент;
  •  <IP-datagram> (дайтаграмма IP) – элемент  второго уровня;
  •  <header> (заголовок дейтаграммы) – элемент  третьего уровня;
  •  <version> (версия протокола) – элемент  четвертого уровня с перечислимым атрибутом value (значения "4" или "6", по умолчанию "4");
  •  <header-length> (длина заголовка в 32-битовых словах) – элемент  четвертого уровня с текстовым содержимым;
  •  <type-of-service> (характеристики обработки дейтаграммы) – элемент  четвертого уровня;
  •  <precedence>  (относительная значимость дейтаграммы) –  элемент пятого уровня с атрибутом по перечислению value (значение) со значениями "0", "1"  ,"2" , "3", "4", "5", "6" или "7";
  •  <delay> (задержка) – элемент  пятого уровня с атрибутом по перечислению value (значение) со значениями "0" или "1";
  •  <throughput> (показатель скорости передачи) – элемент  пятого уровня с атрибутом по перечислению value (значение) со значениями "0" или "1";
  •  <reliability> (показатель надежности) – элемент  пятого уровня с атрибутом по перечислению value (значение) со значениями "0" или "1";
  •  <reserved> (зарезервированные поля) – элемент  пятого уровня со значеним "0";
  •  <