Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009

.pdf
Скачиваний:
5019
Добавлен:
14.05.2016
Размер:
14.64 Mб
Скачать

14. Введение

в технологии

публикации

553

Например:

<А HREF="#Next">riepexofl на следующий фрагмент текста</А>

Для указания места перехода по внутренней ссылке используют следующий тег:

<А ЫАМЕ=Имя> Фрагмент текста, на который осуществляется переход </А>

Здесь: Имя — имя указателя, которое входит в атрибут HREF тега внутренней ссылки;

Например:

<А HREF="#Go"> Текст для перехода по внутренней ссылке </А>

<А NAME=Go> Фрагмент текста, к которому осуществляется переход по внутренней ссылке </А>

Среди технологий Интернета становится популярным расширяемый язык разметки XML. Этот язык имеет средства структурированного представления данных и доступа к ним, на основе принципов, применяемых в СУБД. Ввиду этого он может использоваться для публикации сильно структурированных данных (а именно, БД) па HTML-страницах. В следующем разделе рассмотрим особенности использования языка XML.

14.3. Особенности XML-документа

Расширяемый язык разметки ХМL (extensible Markup Language) представляет собой развитие языка HTML и по сравнению с ним обеспечивает ряд дополнительных возможностей. В их числе можно выделить следующее:

возможность подготовки и настройки XML-документов со сложной структурой;

использование информационных объектов (entity) для работы с группами данных;

описание типа документа DTD (Document Type Definition);

возможность контроля документа на предмет его правильности;

использование XML-формата для хранения структурированных однотипных данных (раннее для этой цели использовали только БД).

Отметим, что XML принадлежит подмножеству стандартного обобщенного языка разметки SGML (Standard Generalized Markup Language). Последний язык является прародителем языков разметки. Язык SGML, хотя и предоставляет более развитые возможности по сравнению с XML, но его применение требует больших затрат времени на подготовку и обработку

554 Часть 4. Публикация баз данных в Интернете

соответствующего SGML-документа. Поэтому он не получил такого широкого распространения, как XML.

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

Документы XML можно разделить на правильно построенные (wellformed) и действительные (valid). Правильно построенные документы XML удовлетворяют спецификации XML, но не имеют определения типа документа DTD (Document Type Definition). Действительные документы XML, в отличие от правильно построенных, содержат также определение типа документа DTD (определяющее типы используемых данных и возможную структуру документа) или ссылаются на него.

Спецификация XML поддерживается рядом современных программам просмотра документов Web. В частности, возможность просмотра XML-до- кументов обеспечивается Internet Explorer, начиная с версии 4.0, а также Netscape Navigator 5.0 и выше.

По сравнению с документом HTML при описании ХМL-документа накладываются следующие дополнительные ограничения:

каждый открывающий тег должен иметь закрывающий тег;

пары открывающих и закрывающих тегов могут вкладываться друг в друга, но не допускаются пересечения открывающего и закрывающего тегов;

при определении элементов и атрибутов учитывается регистр символов;

все значения атрибутов должны указываться в кавычках одинарных ('') или двойных (" ").

Рассмотрим более подробно составляющие ХМL-документа, их назначение, объявления и примеры использования.

Составляющие документа

В ХМL-документе обычно используются следующие составляющие: элементы, атрибуты, информационные объекты и комментарии. Элементы составляют части документа. Объявление элемента задается в следующем формате:

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

Объявление элементов может размещаться внутри документа или в определении типа документа DTD. В DTD можно объявить произвольное число элементов, при этом не все из них должны использоваться в документе XML. Отдельные элементы могут содержать другие элементы. Например, для указания, что элемент сотрудник (employee) содержит элементы фамилия

14. Введение

в технологии

публикации

555

(surname) и должность (post), нужно поместить в DTD определения элементов в следующем порядке:

CIELEMENT surname(#PCDATA)> <!ELEMENT post(#PCDATA)> <!ELEMENT employee(surname, post)>

Здесь строка #PCDATA является атрибутом и указывает, что содержание соответствующего элемента могут составлять символьные данные.

При необходимости можно указать, что элемент в содержании документа необязателен или может использоваться несколько раз. Основные символы, используемые при описании элемента, приведены в таб. 14.1.

 

 

Таблица 14.1.

 

Основные символы для описания элемента

Символ

Имя символа

Назначение

 

0

Круглые скобки

Содержит альтернативные элементы или элементы

 

 

списка

1

Вертикальная линия

Разделение альтернативных элементов

?

Знак вопроса

Элемент может отсутствовать или использоваться

 

 

один раз

 

Запятая

Разделение элементов в списке

*

Звездочка

Элемент может отсутствовать или использоваться

 

 

любое число раз

+

Плюс

Элемент должен использоваться не менее одного раза

Например, в строке

CIELEMENT employee(surname, post+)>

знак "+" указывает на то, что в составе элемента employee элемент post должен присутствовать не менее одного раза.

Атрибуты служат для уточнения характеристик элементов, вида содержащейся в них информации и порядка ее размещения в них. Атрибуты можно указывать в строке объявления элемента (как показано выше) или в DTD в задаваемом с помощью тега <!ATTLIST> списке атрибутов. Для действительного документа XML объявление атрибута в DTD задается в следующем формате:

<!ATTLIST имя_элемента имя_атрибута тип значение_по_умолчанию>

Здесь имя_элемента указывает элемент, для которого задается атрибут; имя_атрибута определяет имя атрибута; тип указывает один из 10 возмож-

556

Часть 4. Публикация

баз данных в Интернете

ных типов атрибутов; значение_по_умолчанию определяет значение атрибута элемента, используемое по умолчанию.

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

CDATA — символьные данные;

Enumerated — набор возможных значений;

Ю — уникальный идентификационный номер;

IDREF — указатель на элемент с заданным значением ID;

IDREFS — указатель на несколько элементов в документе с помощью списка ID, разделенного пробелами;

ENTITY — имя внешнего информационного объекта;

ENTITIES — указатель на несколько внешних информационных объектов с помощью множества имен, разделенных пробелами;

NMTOKEN — имя XML;

NOTATION — имя в обозначении, объявленном в DTD;

NMTOKENS — множество имен XML, разделенных пробелами. Например, предположим, что в документе содержится тег вида:

<greeting language="Russia">

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

<!ELEMENT greeting #PCDATA>

<!ATTLIST greeting language CDATA "English">

Здесь в первой строке указывается, что элемент greeting может содержать контролируемые символьные данные; во второй строке для этого элемента задается атрибут language типа CDATA и для атрибута устанавливается значение "English", используемое по умолчанию.

Комментарии в XML, как и в HTML, задаются между открывающим <! — и закрывающим --> тегами.

Информационные объекты

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

Всвою очередь, пролог включает объявление XML и описание типа документа DTD, данные представляют собой размеченный текст. В общем случае документ XML может содержать данные и объявления из различных источников: баз данных, сценариев и других источников данных. Таким образом, можно сказать, что документ XML состоит из пролога, за которым следуют информационные объекты (entity — сущности или объекты).

Вкачестве информационного объекта может быть файл, запись базы данных или другой элемент с данными.

Информационные объекты позволяют задавать имена для наборов символьных данных или файлов, так чтобы их можно было включать в состав

14. Введение

в технологии

публикации

557

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

<!ENTITY redBHV "СПб.: BHV — Санкт-Петербург">

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

&redBHV

При обработке документа синтаксическим анализатором каждая такая ссылка будет заменена строкой

"СПб.: BHV — Санкт-Петербург"

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

<!ENTITY name (PUBLIC| SYSTEM) "content">

Здесь строка name задает имя информационного объекта, ключевые слова PUBLIC и SYSTEM указывают на доступность информационного объекта в документах.

В XML имеется 5 предопределенных общих ссылок: <, >, ', &quote; и &, которые ссылаются на текстовые информационные объекты (символы): <, > , " и & соответственно. Они используются в документах XML, чтобы избежать неправильной интерпретации соответствующих символов как части разметки документа. К примеру, символы < и > при их непосредственном использовании могут интерпретироваться как начальный и конечный теги.

Определение типа документа

Создание отдельного определения типа документа DTD (Data Туре Definition) для каждого документа XML обеспечивает следующее:

возможность аналитическому анализатору проверять корректность документа;

удобство задания и изучения структуры документа определенного типа;

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

В составе DTD имеются пять частей:

типы документов;

элементы;

558

Часть 4. Публикация

баз данных в Интернете

•атрибуты;

информационные объекты;

комментарии.

Определение типа документа может размещаться внутри документа XML, в этом случае имеем внутреннее DTD, или задано во внешнем файле — внешнее DTD. Применительно к внешним DTD различают системное (SYSTEM) и общее (PUBLIC) определения типа документа. Системное DTD может использоваться одним или несколькими документами XML, общее DTD может использоваться в любом документе XML.

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

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book [

<!ENTITY % phras "PCDATA | emphasis">

<!ELEMENT book (title_page, content)>

CIELEMENT title_page (author, title)> <!ELEMENT author (#PCDATA)> CIELEMENT title (#PCDATA)> <!ELEMENT content (part, chapter+)>

<!ELEMENT part (#PCDATA)>

CIELEMENT chapter (#PCDATA)>

]>

<book>

<title_page>

<author> Ivanov Dm. </author> <title> Name of book </title> </title_page>

<content>

<part> Name of Part </part> <chapter> Text of Chapterl </chapter>

<chapter> Text of Chapter2 </chapter>

<chapter> Text of Chapter3 </chapter>

</content>

</book>

Здесь первая строка кода указывает, что это ХМ L-документ, и определяет используемую систему кодирования — 8-битовую кодировку Unicode, соответствующую символам ASCII. Тег <!DOCTYPE book [ указывает на начало

14. Введение в технологии

публикации

559

D TD — описания типа документа с именем book, а тег ]> указывает на окончание DTD. В строке

CIELEMENT content (part, chapter+)>

знак "+" указывает на то, что элементов chapter (глава) в родительском элементе content (содержание) книги может быть несколько.

При обнаружении ошибок в исходном коде документа XML обозреватель выдает сообщение о характере и местоположении первой из них, как показано на рис. 14.5. Отметим, что при подготовке документов H T M L возможность контроля синтаксических ошибок просто отсутствует.

3

D: \П уб ликация Б Л в И нтернет\Гофман\В ook_xml_D Т D. х... ЩОЮ ЕЗ

j

File Edit View Favorites Jools Help

Back

-"orward

Stop

UiJ

 

 

 

 

Refresh

Home

Search

Favorites

 

j Address

ликация БД E; ИнтернетЛВоок

>:ml DTD.>:m" 3

^ G o

Links

The XML page cannot be displayed

Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.

E l e m e n t c o n t e n t is i n v a l i d a c c o r d i n g t o t h e D T D / S c h e m a .

E x p e c t i n g : c o n t e n t . L i n e 1 8 , P o s i t i o n 1 1

i l

;

_ J j L l

Done

My Computer

 

 

Рис. 14.5. Сообщение об ошибке в окне обозревателя

 

Для приведенного документа XML и его описания DTD в окне обозревателя Microsoft Internet Explorer 5.0 будет отображаться следующая структура (рис. 14.6):

Для создания внешнего D T D следует поместить объявления всех размещаемых в нем элементов, атрибутов и информационных объектов в отдельном файле с расширением DTD, например book.did. В состав внешнего D T D нужно поместить также инструкцию по обработке кода XML, включив строку

<?xml version="1.0" encoding="UTF-8" ?>

560

 

 

Часть 4. Публикация баз данных в Интернете

л

C:\WIND0WS\TEMPV11.Kml - Micro,. № Е З

 

Файл

Правка Вид

Избранное Се|

b i

 

,

.

&

»

 

 

]

Назад

Вперед

 

Остановить

 

J Адрес g ]

C:\WINDOWjJ

Переход

Ссылки

 

 

 

 

 

' А

 

<?xml

version="1.0"

 

 

 

encoding="UTF-8"

?>

 

 

 

<!DOCTYPE book (View Source

 

 

for full doc type. ..)>

 

 

-

<book>

 

 

 

 

- <title_page>

 

 

 

 

< a u t h o r > I v a n o v

 

 

Dm . </author> < t i t l e > N a m e of

b o o k < / t i t l e > </title_page>

-<content>

< p a r t > N a m e of P a r t < / p a r t >

<chapter >Text of

C h a p t e r l < / c h a p t e r >

<chapter >Text

of

C h a p t e r 2 < / c h a p t e r >

<chapter >Text

of

C h a p t e r 3 < / c h a p t e r >

< / c o n t e n t >

</book>

 

 

 

zi

^Tj ГОТОВО

J p МОЙ компьютер

А

Рис. 14.6. Вид структуры в окне обозревателя

 

Чтобы получить доступ к внешнему DTD, размещенному в сети, в XML-

документ нужно включить следующую строку

 

<!DOCTYPE book SYSTEM

"http://www.xom.com/dtds/book.dtd">

Здесь "http://www.xom.com/dtds/book.dtd" — адрес размещения файла DTD в сети. Если D T D является общим, в приведенной строке вместо слова SYSTEM требуется указать PUBLIC.

14. Введение в технологии публикации

561

Стилевое оформление

ХМL-документа

Для стилевого оформления ХМL-документов служит расширяемый язык стиля XSL (extensible Style Language). Этот язык специально предназначен для стилевого форматирования XML-докуменгов. По своим возможностям

и целевому назначению язык XSL занимает промежуточное положение меж-

ду каскадными таблицами стилей CSS (Cascading Style Sheets) и языком описания и семантики стиля документов DSSSL (Document Style Semantics and Specification Language). Последние два средства были созданы для работы с HTML- и SGML-документами соответственно.

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

По существу XSL-документ одновременно является X ML-доку ментом и для проверки его правильности можно использовать те же анализаторы XMLдокументов. Как и вся технология XML, язык XSL находится в стадии активного развития и уточнения.

Основным вариантом практического применения XSL является преобразование XML-документов в формат HTML, хотя существуют и другие возможные способы его применения. При таком преобразовании на вход процессора таблицы стилей (процессора XSL) поступает XML-документ и соответствующая таблица стилей XSL этого документа. На первом этапе преобразования получается документ XML в новом формате, на втором этапе выполняется форматирование и отображение этого документа в формате HTML.

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

вHTML-документ с использованием таблицы стилей XSL при помощи XSLпроцессора MSXSL фирмы Microsoft, требуется задать соответствующую командную строку в окне DOS. Например:

C:\XML>msxml -i test.xml -stest.xsl -о res.html

В приведенной командной строке выполняется вызов программы msxml как XSL-процессора с подачей на вход XML-документа test.xml и таблицы стилей test.xsl, в качестве выходного HTML-доку мента указывается файл res.html.

Здесь ключи -s и -i указываются обязательно в том случае, если имя таблицы стилей и выходного документа не совпадают с именем входного ХМL-до- кумента. Поэтому приведенная командная строка может быть записана в виде

C:\XML>msxml -i test.xml -о res.html

Применительно к таблице стилей XSL элемент документа определяется с помощью пары тегов <XSL> ... </XSL>. Каждая таблица стилей

562

Часть 4. Публикация баз данных в Интернете

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

<IMPORT> — импорт таблиц стилей в XSL-документ;

<DEFINE-MACRO> — формирование исполняемого макроса;

<DEFINE-SCRIPT> — определение исполняемого в документе сценария;

<ID> — связь исходного элемента с идентификационной меткой;

<CLASS> — связь исходного элемента с классом.

При необходимости можно импортировать в текущий XSL-документ таблицу стилей из другого XSL-атрибута. Для этого в начале XSL-документа нужно поместить следующий код:

<XSL>

CIMPORT HREF="nyTb_K_Ta6nnue_CTnneii/d0C_styles.xsl"/>

</XSL>

Здесь выполнено подключение таблицы стилей из файла docstyles.xsl, предполагается, что остальная часть документа описывает правила стилей для элементов в данном документе.

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

<?ХМL-STYLESНЕЕТ HREF="nyTb_K_Ta6nnue_CTnnePi/d0C_styles.xsl TYPE="TEXT/XSL" ?>

Здесь параметр TYPE="TEXT/XSL" указывает на то, что подключается XSLдокумент.

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

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

из объектов потока, предопределенных заранее.

Вкачестве объектов потока XSL могут быть использованы объекты DSSL

иHTML. К примеру, к числу основных объектов потока DSSL, применяемых в XSL, относятся такие объекты, как:

• paragraph — абзац;

• character — символ;

• box — граница вокруг элемента;

• link — гиперссылка;

• score — линия подчеркивания или перечеркивания текста;

• table — таблица;