logo
Электронный маркетинг / ux5eebnik / Учебник / GL_9

Основы xml

Формат HTML, став прорывом в области отображения содержимого Web-страниц, сегодня уже не удовлетворяет всем необходимым на данный момент требованиям. Он позволяет описать то, каким образом должны быть отображены данные на экране конечного пользователя, но не предоставляет никаких средств для эффективного описания передаваемых данных и управления ими. Решением проблем стал утвержденный в 1998 г. Международной организацией W3Cязык XML. XML (eXtensible Markup Language)это расширяемый язык разметки, предназначенный для описания в текстовой форме структурированных данных. ЯзыкXMLобеспечивает интеграцию различного содержания и повышенную гибкость его доставки индивидуальным пользователям, поскольку, в отличие от HTML, описывает не способ отображения данных в браузере, а сами данные. При этом разработчики создают теги сами, что позволяет им описывать любые типы данных.

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

Однако язык XMLне позволяет управлять отображением информации. Для отображенияXML-документов в окне браузера существует несколько способов, реализуемых с помощью специальных инструкций – таблиц каскадных стилейCSSили стилевых таблицXSL(eXstensibleStylesheetLanguage).XSLтаблицы позволяют определять оформление элемента в зависимости от его месторасположения внутри документа, то есть к двум элементам с одинаковым названием могут применяться различные правила форматирования. Кроме того, языком, лежащим в основеXSL, являетсяXML, а это означает, что таблицыXSLболее универсальны. Для контроля корректности составления таких стилевых таблиц можно использоватьDTD-описания или схемы данных.

Любой XML-документ представляет собой иерархическую структуру в виде дерева с одним корневым элементом и подчиненными элементами.

Рассмотрим пример организации каталога для представления продукции хлебобулочного комбината. Отображение информации реализуем с помощью каскадной таблицы стилей. Данный каталог содержит информацию о различных видах производимой продукции, что отображено на рис. 9.8. XML-документ рассматриваемого примера представлен в виде листинга файла bread_0.xml.

Рис. 9.8 Структура корневого элемента

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

Текст в XML-документе представляет собой перемежающиеся символьные данные и данные, относящиеся к разметке. Разметка – это текст, ограниченный разделителями и описывающий структуру документа: начальный и конечный теги элемента, теги пустого элемента, объявление типа документа, инструкции по обработке, ограничители разделаCDATA, символьные ссылки, ссылки на примитивы.

В XML-документах выделяют две части. Первая часть пролог, предназначена для описания структуры документа, а вторая собственно содержание документа.

Начинается пролог со строки XML-документа, содержащей инструкцию для XML-процессора:

<?xml version="1.0" encoding="windows-1251" standalone ="no" ?>

Эта инструкция обрамляется ограничителями, состоящими из угловой скобки и знака вопроса. Ключевым словом каждой исполняемой инструкции является сокращение xml, за которым следуют параметры инструкции и их значения. В рассматриваемом примере значение параметраversionуказывает на тот факт, что будет использоваться первая версия стандарта XML. Для указания вида кодировки используется параметрencoding. Параметрstandaloneсвязан с обработкой блоков описания структуры документа. Эти блоки называют DTD-блоком (Document Type Definition). DTD-блоки могут располагаться непосредственно в XML-документе, и тогда значение параметра определяется какstandalone ="yes", в случае, еслиDTD-блок расположен в отдельном файле, то этот параметр имеет значение"no".

Файл BREAD_0.XML

<?xml version="1.0" encoding="windows-1251" standalone ="no"?>

<?xml-stylesheet type="text/css" href="bread.css"?>

<!DOCTYPE catalogue SYSTEM "bread.dtd">

<catalogue>

<article>

<id_article>1.</id_article>

<category>Хлеб</category>

<name>Нарезной</name>

<packaging presence="Упакован"/>

<description>Вес100г.</description>

</article>

<article>

<id_article>2.</id_article>

<category>Хлеб</category>

<name>Столичный</name>

<packaging presence="Без упаковки"/>

<description>200г.</description>

</article>

</catalogue>

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

<?xml-stylesheet type="text/css" href="berad.css"?>,

где в качестве параметраhrefуказваетсяURLподключаемогоCSS-файла.CSS-файл представляет собой текстовый файл специализированного формата с расширением.css.

Таблица каскадных стилей, содержащаяся в CSS-файле, содержит набор правил, сообщающих браузеру, каким образом форматировать и отображать элементы в данномXML-документе – файла bread.css.

Файл BREAD.CSS

article

{display:block;margin-top:12pt;font-size:10pt}

name

{font-style:italic}

Непосредственно за исполняемой инструкцией в документе помещается объявление типа документа, так называемое DTD(DocumentTypeDefinition):

<!DOCTYPE catalogue SYSTEM "bread.dtd">

DTD-блок является основой для структуризации содержимогоXML-документа. Он включает в себя правила, по которым производится разметка содержимого документа. Здесь определяются элементы документа, атрибуты этих элементов, сущности и комментарии.DTD-блок может содержаться внутри описания типа документа (внутреннее подмножествоDTD) или размещаться во отдельном файле (внешнее подмножествоDTD)-файлbread.dtd.

ФАЙЛ BREAD.DTD

<!ELEMENT catalogue (article)*>

<!ELEMENT article (id_article,category,name,packaging,description)>

<!ELEMENT id_article (#PCDATA)>

<!ELEMENT category (#PCDATA)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT packaging (#PCDATA)>

<!ATTLIST packaging presence CDATA "Yes">

<!ELEMENT description (#PCDATA)>

Второй частью XML-документа является единый элемент Документ или корневой элемент, который содержит иерархически связанные элементы. В рассматриваемом примере элемент Документ - catalogue, а содержимое – три вложенных элемента article. В свою очередь элемент article содержит ряд вложенных элементов в соответствии с рис. 9.8. Элемент Документ похож на элементBODYнаHTML-странице с той лишь разницей, что ему можно присвоить любой допустимое имя.

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

Если XML-документ не нарушает приведенные выше правила, то он называется формально-правильным (корректным).

Существует два способа контроля правильности XML-документа: DTD-определения (Document Type Definition) и схемы данных (Semantic Schema). Если XML-документ создается и пересылается с использованием DTD-описаний или схем (Schemas), то он называется валидным.

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

XML-документ может быть отображен в окне браузера также как иHTML-страница. ЕслиXML-документ не содержит связи с таблицей стилей, то он будет отображен в окне браузера в виде иерархического дерева с возможностью свертывания и развертывания структуры документа и просмотра его с большей или меньшей степенью детализации. При наличии связи с таблицей стилей браузер отобразит их в соответствии с правилами, установленными в таблице стилей (рис.9.9).

Рис. 9.9. Отображение XML-документа с использованием CSS-таблицы

Для отображения XML-документа наHTML-странице необходимо установить связь со страницей. Это можно осуществить размещением всего текстаXML-документа в телеHTML-страницы или указаниемURL- адреса этого документа и последующего сцепленияHTML-элементов с даннымиXML. Пример такого связывания представлен в виде листинга файлаbread_1.xml.Отображение информации в окне браузера приведено на рис. 9.10.

Рис. 9.10. Отображение документа в окне браузера

ФАЙЛ BREAD_1.XML

<HTML>

<HEAD>

<TITLE>КАТАЛОГ</TITLE>

</HEAD>

<BODY>

<XML ID="dsocatalogue" SRC="Bread_0.xml"></XML>

<H2>Каталог продукции</H2>

<TABLE DATASRC="#dsocatalogue" BORDER="1" CELLPADDING="5">

<THEAD>

<TH>№ п/п</TH>

<TH>Категория</TH>

<TH>Название</TH>

<TH>Описание</TH>

</THEAD>

<TR ALIGN="center">

<TD><SPAN DATAFLD="id_article"

STYLE="font-style:italic"></SPAN></TD>

<TD><SPAN DATAFLD="category"></SPAN></TD>

<TD><SPAN DATAFLD="name"></SPAN></TD>

<TD><SPAN DATAFLD="description"></SPAN></TD>

</TR>

</TABLE>

</BODY>

</HTML>

Многие специалисты рассматривают XML как новую технологию интеграции программных компонент, что имеет огромное значение в электронном бизнесе и его составных элементах.

Например, для электронного маркетинга, как уже было отмечено ранее, большое значение имеют средства персонализации. Например, ряд компаний предлагают персонифицированные списки рассылки рекомендованной информации, основанной на том, что интересовало пользователя в последнее время. Для определения предпочтений используются cookie-файлы, сведения из которых помещают в базу данных на сервере. Это могут быть имя пользователя и перечень материалов, которые интересовали посетителя сайта.

Сохраненный в виде документа XMLсоответствующий профиль может иметь вид, представленный в виде листинга файла profile.xml.

ФАЙЛ PROFILE.XML

<?xml version="1.0" encoding="windows-1251" ?>

-<profile>

<cookie id="123456" />

<first_name>Иван</first_name>

<last_name>Иванов</last_name>

<last_purchase date="01-01-2002" freguency="6" />

<interests>

<category>Техника</category>

<sub_category>Компьютер</sub_category>

<topic>XML</topic>

<topic>C#</topic>

<topic>e-маркетинг</topic>

</interests>

</profile>

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

Другим примером использования XMLмогут служить приложения, ориентированные на сбор и обработку данных из различных источников. Объединенные в одномXML-документе, эти данные могут быть представлены в различных форматах без нарушения целостности данных и создания нескольких источников данных.

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