Часть 2 (1075658), страница 4

Файл №1075658 Часть 2 (Э.Н. Самохвалов, Г.И. Ревунков, Ю.Е. Гапанюк - Методические указания по выполнению лабораторных работ по курсу XML-технологии) 4 страницаЧасть 2 (1075658) страница 42018-01-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Значения в списке разделяются пробелами. Пример списка:<Example_List>1 2 3 4 5 11 12 13 14 15</Example_List>Объединение позволяет хранить в элементе значение одного или другоготипа. Пример объединения, позволяющего хранить в элементе действительноечисло или список целых:<Example_Union>1 2 3 4 5</Example_Union>28<Example_Union>123.123</Example_Union>Списки и объединения относятся к простым типам. К спискам иобъединениям можно применять ограничения.Пример 8.Файл XML:<?xml version="1.0" encoding="Windows-1251"?><!-- Примеры списков и объединений --><Root_Element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="list_union.xsd"><Example_List_Integer>1 2 3 4 5 11 12 13 1415</Example_List_Integer><Example_List_Integer_Length>1 2 3</Example_List_Integer_Length><Example_List_String>строка1 строка2строка3</Example_List_String><Example_List_String_Enum>AAA BBB CCC</Example_List_String_Enum><Example_Union>1 2 3 4 5</Example_Union><Example_Union>123</Example_Union><Example_Union2>333</Example_Union2><Example_Union2>3.333</Example_Union2></Root_Element>Файл XSD:<?xml version="1.0" encoding="Windows-1251"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:simpleType name="Example_List_Integer_Type"><xsd:list itemType='xsd:integer'/>29</xsd:simpleType>Элемент xsd:list определяет список, в атрибуте itemType указывается типэлемента списка.<xsd:simpleType name="Example_List_Integer_Length_Type"><xsd:restriction base="Example_List_Integer_Type"><xsd:length value='5'/></xsd:restriction></xsd:simpleType>Применяется ограничение на количество элементов в списке.<xsd:simpleType name="Example_List_String_Type"><xsd:list itemType='xsd:string'/></xsd:simpleType><xsd:simpleType name="Example_List_String_Enum_Type"><xsd:restriction base="Example_List_String_Type"><xsd:enumeration value='AAA BBB CCC'/><xsd:enumeration value='BBB'/><xsd:enumeration value='CCC'/></xsd:restriction></xsd:simpleType><xsd:simpleType name="Example_Union1_Type"><xsd:union memberTypes="xsd:integerExample_List_Integer_Type"/></xsd:simpleType>Элемент xsd:union определяет объединение.

В атрибуте memberTypesуказывается список типов, которые могут входить в объединение. В этом примерев объединение могут входить целое число или список целых.<xsd:simpleType name="Example_Union2_Type"><xsd:union memberTypes="xsd:integer xsd:double"/></xsd:simpleType>30Элемент может быть целым числом или действительным числом.<xsd:complexType name="Root_Element_Type"><xsd:sequence><xsd:element name="Example_List_Integer"type="Example_List_Integer_Type"/><xsd:element name="Example_List_Integer_Length"type="Example_List_Integer_Length_Type"/><xsd:element name="Example_List_String"type="Example_List_String_Type"/><xsd:element name="Example_List_String_Enum"type="Example_List_String_Enum_Type"/><xsd:element name="Example_Union"type="Example_Union1_Type" maxOccurs="unbounded"/><xsd:element name="Example_Union2"type="Example_Union2_Type" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType>Составной тип, в котором определяются элементы для создания списков иобъединений.<xsd:element name="Root_Element" type="Root_Element_Type"/></xsd:schema>Определение корневого элемента документа.3.2.5 Простые элементы с атрибутамиВ следующем примере создаются элемент с простым содержимым,содержащий атрибуты, и пустой элемент, содержащий атрибуты.

Также показаноиспользование типа xsd:anyType, который позволяет объявлять элементыпроизвольного типа с произвольным содержимым.Пример 9.Файл XML:31<?xml version="1.0" encoding="Windows-1251"?><!-- Примеры сложных типов --><Root_Element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="compl_attrib.xsd"><Example_IntegerElement attr1="333"attr2="string">333</Example_IntegerElement><Example_EmptyElement attr1="333" attr2="string"/><Example_anyType1 NotDefinedAttribute="NotDefinedAttribute">123текст</Example_anyType1><Example_anyType2 NotDefinedAttribute="NotDefinedAttribute">123текст <child>123</child></Example_anyType2></Root_Element>Файл XSD:<?xml version="1.0" encoding="Windows-1251"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:complexType name="Example_IntegerElement_Type"><xsd:simpleContent><xsd:extension base="xsd:integer"><xsd:attribute name="attr1" type="xsd:integer"/><xsd:attribute name="attr2" type="xsd:string"/></xsd:extension></xsd:simpleContent></xsd:complexType>Объявление типа элемента с двумя атрибутами, который содержит целоечисло.

Этот тип объявляется как составной (xsd:complexType), но у него простоесодержимое (xsd:simpleContent). Содержимое элемента базируется на целом числе(xsd:extension base="xsd:integer"). Элемент содержит описание атрибутов.32<xsd:complexType name="Example_EmptyElement_Type"><xsd:attribute name="attr1" type="xsd:integer"/><xsd:attribute name="attr2" type="xsd:string"/></xsd:complexType>Объявление типа, соответствующего пустому элементу с двумя атрибутами.<xsd:complexType name="Root_Element_Type"><xsd:sequence><xsd:element name="Example_IntegerElement"type="Example_IntegerElement_Type"/><xsd:element name="Example_EmptyElement"type="Example_EmptyElement_Type"/><xsd:element name="Example_anyType1" type="xsd:anyType"/><xsd:element name="Example_anyType2"/>Использованиетипаxsd:anyTypeпозволяетобъявлятьэлементыпроизвольного типа с произвольным содержимым.

Если тип не указан, то поумолчанию это также xsd:anyType.</xsd:sequence></xsd:complexType><xsd:element name="Root_Element" type="Root_Element_Type"/></xsd:schema>3.2.6 Использование сложных (составных) типовСложные(составные)типыформируютсяспомощьюследующихконструкций: xsd:sequence – определяет последовательность вложенных элементов.Соответствует символу « , » в DTD. xsd:choice – определяет выбор элементов.

Соответствует символу « | » вDTD.33 xsd:all – определяет следование всех элементов в любом порядке.Каждый элемент может содержаться ноль или один раз. xsd:allиспользуется редко.Эти конструкции формируют «модель содержимого» элемента XMLдокумента.Элементы xsd:sequence и xsd:choice могут быть вложены друг в друга, чтосоответствует комбинации « , » и « | » в DTD.Аналогом символов «?», «*» и «+» из DTD в схемах XML являются атрибутыminOccurs и maxOccurs, которые определяют минимальное и максимальноеколичество вхождений элемента.Каждый из атрибутов может содержать непосредственное число вхождений("0", "1" и т.д.) или значение "unbounded" (неограниченное количествовхождений).Пример 10.Файл XML:<?xml version="1.0" encoding="Windows-1251"?><!-- Языки разметки --><languages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="compl_content_sc1.xsd"><language1><name>HTML</name><name1>HTML</name1></language1><language1><year>01.01.1990</year><howold1>14</howold1></language1><!-- +++++++++++++++++++++++++++++++++++++++++++++++++ --><language2><name>SGML</name><year>01.01.1986</year>34<howold>18</howold></language2><language2><name1>SGML</name1><year1>01.01.1986</year1><howold1>18</howold1></language2><!-- +++++++++++++++++++++++++++++++++++++++++++++++++ --><language3><NAME>SGML</NAME><year>01.01.1986</year><NAME1>SGML</NAME1><year1>01.01.1986</year1></language3><language3><name>SGML</name><howold>18</howold><name1>SGML</name1><howold1>18</howold1></language3></languages>Файл XSD:<?xml version="1.0" encoding="Windows-1251"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><!-- Последовательность выборов --><xsd:complexType name="languageType_1"><xsd:sequence><xsd:choice><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/>35<xsd:element name="howold" type="xsd:integer"/></xsd:choice><xsd:choice><xsd:element name="name1" type="xsd:string"/><xsd:element name="year1" type="xsd:string"/><xsd:element name="howold1" type="xsd:integer"/></xsd:choice></xsd:sequence></xsd:complexType><!-- Выбор последовательностей --><xsd:complexType name="languageType_2"><xsd:choice><xsd:sequence><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><xsd:element name="howold" type="xsd:integer"/></xsd:sequence><xsd:sequence><xsd:element name="name1" type="xsd:string"/><xsd:element name="year1" type="xsd:string"/><xsd:element name="howold1" type="xsd:integer"/></xsd:sequence></xsd:choice></xsd:complexType><!-- Последовательность выборов последовательностей --><!-- Возможно определить также выбор последовательностей выборов --><xsd:complexType name="languageType_3"><xsd:sequence><xsd:choice>36<xsd:sequence><xsd:element name="NAME" type="xsd:string"/><xsd:element name="year" type="xsd:string"/></xsd:sequence><xsd:sequence><xsd:element name="name" type="xsd:string"/><xsd:element name="howold" type="xsd:integer"/></xsd:sequence></xsd:choice><xsd:choice><xsd:sequence><xsd:element name="NAME1" type="xsd:string"/><xsd:element name="year1" type="xsd:string"/></xsd:sequence><xsd:sequence><xsd:element name="name1" type="xsd:string"/><xsd:element name="howold1" type="xsd:integer"/></xsd:sequence></xsd:choice></xsd:sequence></xsd:complexType><xsd:element name="languages"><xsd:complexType><xsd:sequence><xsd:element name="language1"type="languageType_1" maxOccurs="unbounded"/><xsd:element name="language2"type="languageType_2" maxOccurs="unbounded"/><xsd:element name="language3"type="languageType_3" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType>37</xsd:element></xsd:schema>Более сложный пример, в котором используются атрибуты minOccurs иmaxOccurs.Пример 11.Файл XML:<?xml version="1.0" encoding="Windows-1251"?><!-- Языки разметки --><languages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="compl_content_sc2.xsd"><language_1_1><name>HTML</name><year>01.01.1986</year><howold>18</howold><name>HTML</name><year>01.01.1986</year><howold>18</howold></language_1_1><language_1_2><name>HTML</name><name>HTML</name><year>01.01.1986</year><year>01.01.1986</year><howold>10</howold><howold>10</howold></language_1_2><language_1_3><name>HTML</name><name>HTML</name><year>01.01.1986</year><year>01.01.1986</year>38<howold>10</howold><howold>10</howold><name>HTML</name><name>HTML</name></language_1_3><!-- ++++++++++++++++++++++++++++++++++++++++ --><language_2_1><name1>HTML</name1><name>HTML</name><year>01.01.1986</year><year>01.01.1986</year><howold>10</howold><howold>10</howold><name>HTML</name><year>01.01.1986</year><howold>10</howold><year>01.01.1986</year><howold>10</howold><name>HTML</name></language_2_1><language_2_2><name>HTML</name><name>HTML</name></language_2_2><language_2_3><name>HTML</name><name>HTML</name><year>01.01.1986</year><year>01.01.1986</year>39<howold>10</howold><howold>10</howold><name>HTML</name><year>01.01.1986</year><howold>10</howold><year>01.01.1986</year><howold>10</howold><name>HTML</name></language_2_3><!-- ++++++++++++++++++++++++++++++++++++++++ --><language_3_1><name1>HTML</name1><name>HTML</name><year>01.01.1986</year><year>01.01.1986</year><howold>10</howold><howold>10</howold><name>HTML</name><year>01.01.1986</year><howold>10</howold><year>01.01.1986</year><howold>10</howold><name>HTML</name></language_3_1><language_3_2><name1>HTML</name1><name>HTML</name><year>01.01.1986</year><year>01.01.1986</year>40<howold>10</howold><howold>10</howold><name>HTML</name><year>01.01.1986</year><howold>10</howold><year>01.01.1986</year><howold>10</howold><name>HTML</name></language_3_2></languages>Файл XSD:<?xml version="1.0" encoding="Windows-1251"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><!-- Может повторяться вся последовательность --><xsd:complexType name="languageType_1_1"><xsd:sequence minOccurs="1" maxOccurs="unbounded"><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><xsd:element name="howold" type="xsd:integer"/></xsd:sequence></xsd:complexType><!-- Может повторяться элемент в последовательности --><xsd:complexType name="languageType_1_2"><xsd:sequence><xsd:element name="name" type="xsd:string"minOccurs="1" maxOccurs="unbounded"/><xsd:element name="year" type="xsd:string"minOccurs="1" maxOccurs="unbounded"/><xsd:element name="howold" type="xsd:integer"minOccurs="1" maxOccurs="unbounded"/>41</xsd:sequence></xsd:complexType><!-- Может повторяться вся последовательность и элемент впоследовательности --><xsd:complexType name="languageType_1_3"><xsd:sequence minOccurs="1" maxOccurs="unbounded"><xsd:element name="name" type="xsd:string"minOccurs="1" maxOccurs="unbounded"/><xsd:element name="year" type="xsd:string"minOccurs="0" maxOccurs="unbounded"/><xsd:element name="howold" type="xsd:integer"minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType><!-- ++++++++++++++++++++++++++++++++++++++++++++++++++ --><!-- Любой элемент может повторяться произвольное количество раз --><xsd:complexType name="languageType_2_1"><xsd:choice minOccurs="1" maxOccurs="unbounded"><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><xsd:element name="howold" type="xsd:integer"/></xsd:choice></xsd:complexType><!-- Выбор одного элемента из группы, элемент может повторятьсяпроизвольное количество раз --><xsd:complexType name="languageType_2_2"><xsd:choice><xsd:element name="name" type="xsd:string"minOccurs="1" maxOccurs="unbounded"/><xsd:element name="year" type="xsd:string"minOccurs="1" maxOccurs="unbounded"/><xsd:element name="howold" type="xsd:integer"minOccurs="1" maxOccurs="unbounded"/></xsd:choice>42</xsd:complexType><!-- Любой элемент может повторяться произвольное количество раз --><xsd:complexType name="languageType_2_3"><xsd:choice minOccurs="1" maxOccurs="unbounded"><xsd:element name="name" type="xsd:string"minOccurs="1" maxOccurs="unbounded"/><xsd:element name="year" type="xsd:string"minOccurs="1" maxOccurs="unbounded"/><xsd:element name="howold" type="xsd:integer"minOccurs="1" maxOccurs="unbounded"/></xsd:choice></xsd:complexType><!-- ++++++++++++++++++++++++++++++++++++++++++++++ --><!-- Избыточное описание --><xsd:complexType name="languageType_3_1"><xsd:sequence minOccurs="1" maxOccurs="unbounded"><xsd:choice><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><xsd:element name="howold" type="xsd:integer"/></xsd:choice></xsd:sequence></xsd:complexType><xsd:complexType name="languageType_3_2"><xsd:sequence><xsd:choice minOccurs="1" maxOccurs="unbounded"><xsd:element name="name" type="xsd:string"/><xsd:element name="year" type="xsd:string"/><xsd:element name="howold" type="xsd:integer"/></xsd:choice></xsd:sequence></xsd:complexType><xsd:element name="languages">43<xsd:complexType><xsd:sequence><xsd:element name="language_1_1" type="languageType_1_1"maxOccurs="unbounded"/><xsd:element name="language_1_2" type="languageType_1_2"maxOccurs="unbounded"/><xsd:element name="language_1_3" type="languageType_1_3"maxOccurs="unbounded"/><xsd:element name="language_2_1" type="languageType_2_1"maxOccurs="unbounded"/><xsd:element name="language_2_2" type="languageType_2_2"maxOccurs="unbounded"/><xsd:element name="language_2_3" type="languageType_2_3"maxOccurs="unbounded"/><xsd:element name="language_3_1" type="languageType_3_1"maxOccurs="unbounded"/><xsd:element name="language_3_2" type="languageType_3_2"maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element></xsd:schema>3.2.7 Шаблоны проектирования схемТак как в XML-схемах существуют различные варианты совместногоиспользования составных типов и элементов, то появилось понятие «шаблон(паттерн) проектирования схем».Существует четыре наиболее распространенных шаблона проектированиясхем: Venetian Blind (венецианская штора). Russian Doll (матрешка). Salami Slice (ломтики салями). Garden of Eden (Райский Сад, идеальный шаблон).44Некоторыесредстваразработки(вчастностиNetBeans)умеютпреобразовывать схемы из одного шаблона в другой.Рассмотрим шаблоны более подробно.В шаблоне Venetian Blind (венецианская штора) определен один глобальныйэлемент.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6547
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее