Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лабы / Lab4-01.doc
Скачиваний:
26
Добавлен:
12.05.2015
Размер:
1.28 Mб
Скачать

3.8.3.3. Пример формирование простой схемы

Ниже следует пример схемы для простого документа XML, приведенного в п. 3.3.3.2лабораторной работы 4-01.

Формирование схемы содержит следующие этапы:

1. Создание нового файла схемы (с расширением .xsd) с помощью кнопкина панели инструментов и выбора типа файла (рис. 4.2.1).

2. Задание имени и аннотации в общем представлении схемы для корневого элемента book-description(рис. 4.2.11).

Рис. 4.2.11. Задание имени и аннотации для корневого элемента

3. Переход к модели содержимого для элемента book-description, задание для него структурного элемента типаSequenceи добавление множественного дочернего элементаbook(множественность элементаbookзадается с помощью командыUnboundedконтекстного меню) (рис. 4.2.12).

Рис. 4.2.12. Добавление множественного дочернего элемента book

для элемента book-description

4. Задание для элемента bookструктурного элемента типаSequenceи добавление дочернего элементаtitleс текстовым содержимым (текстовое содержимое элементаtitleзадается с помощью установки значения xs:stringдляатрибута type в панелиDetails) (рис. 4.2.13).

Рис. 4.2.13. Добавление дочернего элемента title

для элемента book

5. Аналогичным образом (с помощью команды Appendконтекстного меню) для элементаbookдобавляются дочерние элементыauthorиpublisher(рис. 4.2.14).

Рис. 4.2.14. Добавление дочерних элементов authorиpublisher

для элемента book

6. Добавление для элемента publisherобязательного атрибутаyearтипаxs:gYear(рис. 4.2.15).

Рис. 4.2.15. Добавление атрибута yearдля элементаpublisher

7. Добавление для элемента publisherнеобязательного атрибутаgenreтипаxs:stringсо значением по умолчанию "классика" (рис. 4.2.16).

Рис. 4.2.16. Добавление атрибута для элемента publisher

8. Задание для атрибута genreв панелиFacetsсписка допустимых значений (рис.4.2.17).

Рис. 4.2.17. Задание для атрибута genreсписка допустимых значений

9. Сохранение файла схемы с именем bookDesc.xsd.

10. Открытие документа bookDesc.xmlи назначение ему схемы с помощью диалогового окна командыAssign SchemaменюDTD/Schema (рис. 4.2.18).

Рис. 4.2.18. Присвоение схемы документу XML

11. Проверка соответствия документа XMLbookDesc.xmlсхемеbookDesc.xsd с помощью командыValidateменюXML.

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.

Создайте схему документа XMLдля газеты со следующими уточнениями:

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

  • в элементе <newspaper> значение атрибутаnameдолжно быть строковым (от 1 до 15 символов), значение атрибутаdateдолжно иметь типdate;

  • значение элементов <headline>,<resume>и<paragraph> должно представлять собой последовательность букв, цифр и знаков препинания, начинающуюся с заглавной буквы;

  • значением элемента <author> может быть либо строка со следующим шаблоном"\p{Lu} \p{L}+ (\p{Lu}\.){2}"(заглавная буква любого языка, затем последовательность строчных букв, пробел и два раза заглавная буква и точка), либо один из элементов<author1>или<author2>, а значением атрибутаstafferэтого элемента должно быть булевское значение.

Соседние файлы в папке Лабы