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

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

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

Например<!ELEMENT language (name?, year*, howold+)+>означает, что элемент name должен встречаться 0 или 1 раз, за ним следуютэлементы year, которые встречаются 0 или более раз, затем следуют элементыhowold, которые встречаются один или более раз. Последовательность элементовname?, year*, howold+ может встречаться один или более раз, это указываетсимвол «+» после выражения в скобках.Символ « , » между элементами означает строгое следование элементов другза другом. Также может использоваться символ « | », который обозначает, чтоможет встречаться один или другой элемент, например:<!ELEMENT language ((name,year,howold)|(year,name,howold))>означает, что в элемент language могут быть вложены элементыname,year,howold или year,name,howold.<!ELEMENT language (((name,year)|(year,name)),howold)>означает, что в элемент language могут быть вложены элементы name,yearили year,name и элемент howold8<!ELEMENT language (name|year|howold)*>означает, что в элемент language может быть вложен элемент name или yearили howold 0 или более раз.

Фактически это означает, что элементыname,year,howold могут быть вложены в любой последовательности любоеколичество раз.<!ATTLIST languageid CDATA #REQUIRED>С помощью команды !ATTLIST определяются атрибуты элемента. Послекоманды !ATTLIST следует название элемента, далее перечисляются атрибуты.Для определения атрибута используется три идентификатора.Первый идентификатор – название атрибута, в нашем случае id.Второй идентификатор определяет тип данных. Чаще всего для обозначениятипа используется CDATA, то есть любые данные.Также может использоваться идентификатор ID, который определяетуникальное значение атрибута:<!ATTLIST language id ID #REQUIRED>В качестве типа могут быть перечислены возможные значения атрибута (1или 2 или 3):<!ATTLIST language id (1|2|3) #REQUIRED>Полный список типов данных приведен в спецификации.Третий идентификатор определяет обязательность использования атрибута.#REQUIRED означает обязательный атрибут, #IMPLIED означает необязательныйатрибут.#FIXED "значение" определяет, что значение атрибута фиксировано и неможет быть изменено: Например<!ATTLIST language id CDATA #FIXED "1"><!ELEMENT empty EMPTY><!ATTLIST emptyattr1 CDATA #REQUIREDattr2 CDATA #REQUIRED>9Если при объявлении элемента вместо выражения в скобках используетсяEMPTY, то элемент объявляется как пустой, то есть не имеющий содержимого.

Вэтом примере элемент empty объявляется как пустой элемент с двумя атрибутами:attr1и attr2.<!ELEMENT languages (language+, empty, CDATA_Example)>Элемент languages содержит один или более элементов language, элементempty и элемент CDATA_Example.3.1.2 Пример несоответствия документа XML и DTDВнесем изменения в элемент <language id="1"> исходного документа.Изменения выделены полужирным шрифтом. В элемент language добавленыновый атрибут attr и новый элемент qwerty.Пример 2.<language id="1" attr="123"><qwerty>qwerty</qwerty><name>HTML</name><year>01.01.1990</year><howold>19</howold></language>При проверке документа на соответствие DTD возникают следующиесообщения об ошибках (в панели Task List):10Рис. 2.

Результат выполнения примера 2.3.1.3 Пример встроенного DTDDTD может быть встроен в документ XML.Пример 3.<?xml version="1.0" encoding="Windows-1251"?><!DOCTYPE languages [<!ELEMENT name (#PCDATA)><!ELEMENT year (#PCDATA)><!ELEMENT howold (#PCDATA)><!ELEMENT CDATA_Example (#PCDATA)><!ELEMENT language (name, year, howold)><!ATTLIST languageid CDATA #REQUIRED>11<!ELEMENT empty EMPTY><!ATTLIST emptyattr1 CDATA #REQUIREDattr2 CDATA #REQUIRED><!ELEMENT languages (language+, empty, CDATA_Example)>]><languages><language id="1"><name>HTML</name><year>01.01.1990</year><howold>19</howold></language><language id="2"><name>XML</name><year>01.01.1998</year><howold>11</howold></language><language id="3"><name>SGML</name><year>01.01.1986</year><howold>23</howold></language><empty attr1="1" attr2="текст"/><CDATA_Example><![CDATA[<<<<<<<<<<>>>>>>>>>]]></CDATA_Example></languages>Результат валидации документа (пункт меню «XML/Validate»):12Рис.

3. Результат выполнения примера 3.3.1.4 Графическое представление DTDРедактор XMLPad позволяет представить внешнюю DTD в графическомвиде. Для этого необходимо открыть файл DTD и выбрать вкладку «Diagram».Для DTD и XML-схем используется одинаковая графическая нотация. Такаяже графическая нотация для DTD и XML-схем используется в редакторе XMLSPY.Пример 4.13Рис. 4.

Результат выполнения примера 4.Если объявить элемент language следующим образом:<!ELEMENT language (name? | year+ | howold*)+>то вид диаграммы будет таким:Пример 5.14Рис. 5. Результат выполнения примера 4. Изменение 1.На диаграмме используются следующие обозначения:Последовательное соединение элементов, соответствует « , »Выбор элементов, соответствует « | »153.1.5 Генерация DTD и XML-схемы по XML-документуXMLPad позволяет сгенерировать DTD или схему XML по документу XML.Для этого необходимо открыть документ XML, который не связан с DTD илиXML-схемой и выбрать пункт меню «XML/Create Schema».Рис.

6. Генерация DTD и XML-схемы по XML-документу.Существует возможность автоматической генерации DTD, встроенного DTDили XML-схемы.Также предусмотрена возможность привязки созданного DTD или XMLсхемыкXML-документу,приэтомвдокументXMLвставляетсясоответствующая инструкция.Необходимо отметить, что полученный DTD или XML-схема почти всегдаявляется «полуфабрикатом», который требуется дорабатывать вручную.Это происходит по двум причинам.

Во-первых, программа генерации может«ошибиться» и сгенерировать не совсем точный результат. Но главная причина втом, что в одном документе, как правило, не присутствуют все возможныеварианты, которые должны быть учтены в DTD или XML-схеме.Например, программа генерации может создать перечисление некоторыхвариантов.

Но это перечисление не учитывает все возможные случаи, и егонеобходимо заменить на итерацию.3.1.6 Преобразование DTD в XML-схему и XML-схемы в DTDВ XMLPad существует возможность преобразования DTD в XML-схему(пункт меню «DTD/Convert to XSD»).16ВрежимеXML-схемытакжесуществуетвозможностьобратногопреобразования «XSD/Convert to DTD».Необходимо учитывать, что программа генерации может сгенерироватьрезультат, требующий корректировки.В обоих режимах существует возможность генерации примера документаXML, который соответствует DTD или XML-схеме.

Пункт меню «DTD/Generatesample XML file» или «XSD/Generate sample XML file».3.2 ИспользованиесхемXMLдляописанияструктурыдокументов XMLXML-схемы являются альтернативой DTD. Они, также как и DTD,определяют набор используемых элементов, идентифицируют элементы, которыемогут использоваться внутри других элементов, определяют возможные атрибутыдля каждого элемента. По сравнению с DTD, схемы обеспечивают болеепонятный способ описания документов.

Схемы XML, в отличие от DTD, являютсяXML – документами.Как отмечалось ранее, в DTD для описания содержимого элементаиспользуется способ, похожий на описание цепочек символов, допускаемыхавтоматом. В схемах XML используется способ, более привычный дляпрограммиста: определяются типы данных и указывается принадлежностьэлементов XML к этому типу данных.3.2.1 Пример XML-схемыПример 6.Файл XML:<?xml version="1.0" encoding="Windows-1251"?><languages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="Example_schema.xsd"><language id="1"><name>HTML</name><year>01.01.1990</year>17<howold>19</howold></language><language id="2"><name>XML</name><year>01.01.1998</year><howold>11</howold></language><language id="3"><name>SGML</name><year>01.01.1986</year><howold>23</howold></language><empty attr1="1" attr2="текст"/><CDATA_Example><![CDATA[<<<<<<<<<<>>>>>>>>>]]></CDATA_Example></languages>Файл XSD:<?xml version="1.0" encoding="utf-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><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="xsd:integer"/></xsd:sequence><xsd:attribute name="id" use="required" type="xsd:string"/></xsd:complexType><xsd:complexType name="emptyType"><xsd:attribute name="attr1" type="xsd:string" use="required"/><xsd:attribute name="attr2" type="xsd:string" use="required"/></xsd:complexType>18<xsd:element name="languages"><xsd:complexType><xsd:sequence><xsd:element name="language" type="languageType"maxOccurs="unbounded"/><xsd:element name="empty" type="emptyType"/><xsd:element name="CDATA_Example"type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element></xsd:schema>Проверить соответствие XML-документа схеме, как и в случае DTD, можно сиспользованием пункта меню «XML/Validate».Если документ действителен («валиден»), то есть соответствует схеме, товыдается сообщение об отсутствии ошибок.

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

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

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