Часть 2 (1075658), страница 5
Текст из файла (страница 5)
Остальные вложены в глобальный с использованием именованныхсоставных типов и групп. Составные типы и группы могут быть использованынесколько раз.То есть в схеме определены глобальные типы xsd:complexType иxsd:simpleType с атрибутом name. Определен единственный глобальный элементxsd:element, который ссылается на глобальные типы с помощью атрибута type.Данный шаблон является наиболее распространенным.
Все предыдущиепримеры в этой главе (за исключением примера на ключи) разработаны именнопо этому шаблону.Пример 12.Файл XSD:<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><!-- Определение типа для атрибута --><xsd:simpleType name="howoldType"><xsd:restriction base="xsd:integer"><xsd:enumeration value='10'/><xsd:enumeration value='15'/><xsd:enumeration value='20'/></xsd:restriction></xsd:simpleType><xsd:complexType name="languageType"><xsd:sequence><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><xsd:element name="howold" type="howoldType"/></xsd:sequence>45<xsd:attribute name="id" use="required" type="xsd:string"/></xsd:complexType><xsd:element name="languages"><xsd:complexType><xsd:sequence><xsd:element name="language" type="languageType"maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element></xsd:schema>Форма преобразования шаблона в NetBeans:Рис.
10. Преобразование XML-схемы в шаблон «венецианская штора».46В шаблоне Russian Doll (матрешка) определен один глобальный элемент.Остальные вложены в глобальный с использованием неименованных составныхтипов. Составные типы могут быть использованы только один раз.Пример 13.Файл XSD:<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><!-- Определение типа для атрибута --><xsd:element name="languages"><xsd:complexType><xsd:sequence><xsd:element name="language" maxOccurs="unbounded"><xsd:complexType><xsd:sequence><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><xsd:element name="howold"><xsd:simpleType><xsd:restriction base="xsd:integer"><xsd:enumeration value="10"/><xsd:enumeration value="15"/><xsd:enumeration value="20"/></xsd:restriction></xsd:simpleType></xsd:element></xsd:sequence><xsd:attribute name="id" use="required" type="xsd:string"/></xsd:complexType></xsd:element></xsd:sequence></xsd:complexType></xsd:element></xsd:schema>Форма преобразования шаблона в NetBeans:47Рис.
11. Преобразование XML-схемы в шаблон «матрешка».В шаблоне Salami Slice (ломтики салями) все элементы объявленыглобальными. Типы вложены в элементы. Используются ссылки на элементы(атрибут ref).Пример 14.Файл XSD:<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:element name="languages"><xsd:complexType><xsd:sequence><xsd:element ref="language" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="language"><xsd:complexType>48<xsd:sequence><xsd:element ref="name"/><xsd:element ref="year"/><xsd:element ref="howold"/></xsd:sequence><xsd:attribute name="id" use="required"type="xsd:string"/></xsd:complexType></xsd:element><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><xsd:element name="howold"><xsd:simpleType><xsd:restriction base="xsd:integer"><xsd:enumeration value="10"/><xsd:enumeration value="15"/><xsd:enumeration value="20"/></xsd:restriction></xsd:simpleType></xsd:element></xsd:schema>Форма преобразования шаблона в NetBeans:49Рис.
12. Преобразование XML-схемы в шаблон «ломтики салями».Шаблон Garden of Eden (Райский Сад, оптимальный шаблон) являетсякомбинацией шаблонов Venetian Blind и Salami Slice. Элементы и типыобъявляются глобальными, ссылки создаются по мере необходимости.Пример 15.Файл XSD:<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:element name="languages" type="languagesType"/><xsd:complexType name="languagesType"><xsd:sequence><xsd:element ref="language" maxOccurs="unbounded"/></xsd:sequence>50</xsd:complexType><xsd:element name="language" type="languageType"/><xsd:complexType name="languageType"><xsd:sequence><xsd:element ref="name"/><xsd:element ref="year"/><xsd:element ref="howold"/></xsd:sequence><xsd:attribute name="id" use="required" type="xsd:string"/></xsd:complexType><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><xsd:element name="howold" type="NewHowoldTypeType"/><xsd:simpleType name="NewHowoldTypeType"><xsd:restriction base="xsd:integer"><xsd:enumeration value="10"/><xsd:enumeration value="15"/><xsd:enumeration value="20"/></xsd:restriction></xsd:simpleType></xsd:schema>Форма преобразования шаблона в NetBeans:51Рис.
13. Преобразование XML-схемы в оптимальный шаблон.4 Схема и описание лабораторной установкиВ качестве лабораторной установки используется компьютер со следующимпрограммным обеспечением: операционная система Windows 7 и выше (лицензионное ПО,предоставляетсякомпаниейMicrosoftврамкахакадемическойпрограммы сотрудничества с МГТУ им. Н.Э. Баумана); XML-редактор XMLPad (свободно-распространяемое ПО).5 Содержание отчета по лабораторным работамОтчеты разрабатываются отдельно по каждой лабораторной работе. Отчет покаждой лабораторной работе должен включать: титульный лист;52 тексты XML-документов, DTD-описаний, XML-схем; результаты валидации.6 Задачи и порядок выполнения работ6.1 Лабораторная работа 5Использование DTD для описания структуры документов XML.Разработайте пример описания выбранной Вами предметной области в видедокумента XML.
Документ должен содержать 5-7 различных типов XMLэлементов.Для разработанного документа создайте DTD-описание.ДляразработанногодокументасгенерируйтеDTD-описаниесиспользованием средств XMLPad.Сравните созданное Вами и сгенерированное DTD-описания.6.2 Лабораторная работа 6Основы разработки схем XML.Для документа, разработанного в предыдущей лабораторной работе,сгенерируйте XML-схему с использованием средств XMLPad.Внесите изменения в документ и схему для реализации следующихконструкций: списки; объединения; простые элементы с атрибутами; ограничения числовых типов данных; ограничения строковых типов данных.6.3 Лабораторная работа 7Разработка схем XML.
Использование составных типов.53Основываясь на результатах предыдущей лабораторной работы, внеситеизменения в документ и схему для реализации следующих конструкций: элемент «all»; элемент «sequence»; элемент «choice»; элемент «sequence», вложенный в элемент «choice»; элемент «choice», вложенный в элемент «sequence».6.4 Лабораторная работа 8Разработка схем XML.
Шаблоны проектирования схем.Модифицируйте схему, разработанную в предыдущей лабораторной работе,для реализации следующих шаблонов проектирования схем: венецианская штора; матрешка; ломтики салями; Райский Сад.7 Контрольные вопросы7.1 Лабораторная работа 51. Что такое DTD и для чего используется эта технология?2. Как в DTD объявляются элементы XML-документа?3. Как в DTD объявляется последовательность и выбор элементов?4. Как в DTD объявляются атрибуты элементов XML-документа?5.
В чем разница между встроенными и внешними DTD?7.2 Лабораторная работа 61. В чем основное отличие в способах описания содержимого элементов вDTD и XML-схемах?2. Как присоединить XML-схему к документу XML?543. Как используются простые типы и ограничения (фасеты) в XMLсхемах?4. Как объявляются списки в XML-схемах?5. Как объявляются объединения в XML-схемах?7.3 Лабораторная работа 71.
Как объявляются сложные (составные) типы в XML-схемах? В чемотличие от DTD?2. Как объявляется количество вхождений элемента в XML-схемах? Вчем отличие от DTD?3. Приведите пример XML-схемы, содержащей элемент sequence.4. Приведите пример XML-схемы, содержащей элемент choice.5. Приведите пример XML-схемы, содержащей элемент all.7.4 Лабораторная работа 81. Что такое шаблоны проектирования XML-схем?2. Каковы особенности шаблона проектирования «венецианская штора»?3. Каковы особенности шаблона проектирования «матрешка»?4.
Каковы особенности шаблона проектирования «ломтики салями»?5. Каковы особенности шаблона проектирования «Райский Сад»?8 Литература1. Расширяемый язык разметки (XML) 1.0 (вторая редакция), 2000.[электронныйресурс]–Режимдоступа:http://www.rol.ru/news/it/helpdesk/xml01.htm – Загл. с экрана.2. XML Schema Part 0: Primer Second Edition, 2004. [электронный ресурс]– Режим доступа: http://www.w3.org/TR/xmlschema-0/ – Загл. с экрана.3. XML Schema Part 1: Structures Second Edition, 2004.
[электронныйресурс] – Режим доступа: http://www.w3.org/TR/xmlschema-1/ – Загл. сэкрана.554. XML Schema Part 2: Datatypes Second Edition, 2004. [электронныйресурс] – Режим доступа: http://www.w3.org/TR/xmlschema-2/ – Загл. сэкрана.56.