#27-28 [305-306] от 13 июля 1999 года.">
Архивы: по дате | по разделам | по авторам

Интернет учит новый язык

Архив
автор : Александр Печерский   27.07.1999

Окончание. Начало в #27-28 [305-306] от 13 июля 1999 года.

Окончание. Начало в #27-28 [305-306] от 13 июля 1999 года.
Обработка XML-документов

В отличие от HTML, XML никак не определяет способ отображения и использования описываемых с его помощью элементов документа. Задав определение элемента Телецкое озеро, мы не включили информацию о том, как нужно отображать его содержимое. Этого требует принцип независимости определения внутренней структуры документа от способов представления информации. Поэтому на стороне клиента должна выполняться программа просмотра, осуществляющая необходимые действия по отображению нашего XML-документа. Если в качестве такой программы используется браузер, поддерживающий сценарии JavaScript и спецификацию DOM (Document Object Model - объектная модель документа), то для этих целей можно использовать XML-анализаторы в виде Java-апплета или COM-объекта, если речь идет о платформе Windows. Доступ к XML-ресурсам возможен из обычного JavaScript-сценария, включенного в HTML-страницу и генерирующего ее содержимое в соответствии с информацией, полученной из этого внешнего XML-документа. DOM в этом случае просто предоставляет универсальный интерфейс для доступа к внутренним объектам XML-документа, позволяя манипулировать его содержимым при помощи абстрактной объектной модели. На сегодняшний день единственным браузером, поддерживающий DOM-интерфейс для доступа к объектам XML-документа, является Microsoft Internet Explorer 5.

В IE 5 XML-данные могут включаться в страницу при помощи специального нового тега . Такие включения (называемые в спецификации от Microsoft областями данных - DSO) доступны для JavaScript- (или VBScript-) сценариев, так же как и любые другие объекты страницы - текст, изображения, формы и т. д. Вот пример небольшого сценария, использующего объектную модель документа в браузере IE 5:

<HTML>
<HEAD>
<!- Включение внешнего XML документа ->
<XML ID="EcologyArticles" src="/printimages/307-308/printimages/307-308/"ecology.xml">

<SCRIPT>
function ViewDocument(Doc)
{
var header_str="Озера Горного Алтая:";
var result_str=" ";
<!- Получение указателя на первый элемент документа ->
var elem = Doc.documentElement.firstChild;
while (elem != null){
result_str+= "<div style='color:blue'>" +docobj.selectSingleNode("lake").text
+"</div>";
<!- Последовательный перебор всех элементов (а можно задать и способ сортировки) ->
elem = elem.nextSibling;
}
<!- Вывод строчки на экран (используются возможности DynamicHTML) ->
List_of_lakes.innerHTML = header_str+result_str;
}
</SCRIPT>
</HEAD>
<!- Формируем строчку после загрузки всех элементов документа, но перед их отображением->
<BODY ONLOAD="ViewDocument(EcologyArticles)"><DIV ID=List_of_lakes>

</BODY>
</HTML>


Стильно!

Другим, более универсальном механизмом управления отображением XML-документов в ближайшем будущем должны стать расширяемые стилевые таблицы XSL (eXtensible Stylesheet Language).

Стилевыми таблицами (стилевыми листами) принято называть специальные инструкции, управляющие процессом отображения элемента в окне программы-клиента (например, в окне браузера) и включаемые либо в тело самого документа, либо передаваемые по сети отдельным файлом. Принцип обработки XML-документов стилевыми таблицами очень прост: при разборе XSL-документа программа-анализатор обрабатывает инструкции этого языка, в которых указываются названия XML-элементов, и отображает соответствующие элементы так, как указано в таблице. Если для показа основного текста приведенного выше XML-документа требуется использовать черный цвет шрифта, инициалов автора - красный, а для элемента Телецкое озеро - синий, то в XSL-таблицах можно задать следующие определения (подробное описание синтаксиса XSL в IE 5 можно найти на странице http://msdn.microsoft.com/xml):

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<xsl:template match="text()">
<xsl:value-of />
<HTML>
<BODY bgcolor="white">
<xsl:for-each select="documents/document/">
<div style="color: black">
<xsl:apply-templates select="author" />
<xsl:apply-templates select="text" />
</div>

</BODY>
</HTML>
</xsl:template>
<xsl:template match="author">
<span class="author" style="color: red">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="text">
<xsl:apply-templates select="lake" />
</xsl:template>
<xsl:template match="lake">
<span style="color: blue">
<xsl:value-of />
</xsl:template>
</xsl:template>
</xsl:stylesheet>


Приведенные в примере стилевые определения сегодня могут быть использованы только в браузере IE 5.

При помощи инструкций XSL можно определить точное месторасположение элемента XML в дереве, поэтому существует возможность применять различные стили оформления к одинаковым элементам в зависимости от уровня вложенности и контекста их использования. Кроме того, при помощи XSL можно изменять объем передаваемой пользователю информации - просто не указывая названия "ненужных" элементов в описаниях таблиц. Более подробную информацию об использовании XML в продуктах Microsoft можно получить по адресу http://msdn.microsoft.com/xml.

XML на сервере

XML может использоваться в качестве альтернативного HTML способа обмена информацией между сервером и клиентом, даже если браузер не поддерживает ни спецификаций XML-XSL, ни сценариев Java Script. Обработкой XML-ресурсов в таком случае может заниматься серверная сторона. Используя любой существующий обработчик XML-документов(сегодня существует довольно богатый выбор XML API для Java, Perl, C++, Python, VB, Tcl и т. д.), можно формировать необходимую информацию уже на сервере и посылать клиенту нормальную HTML-страницу. Вот пример программы на ASP, использующей стилевые таблицы для формирования готовой HTML-страницы и отправки ее клиенту:

<%@ LANGUAGE = JScript %>
<%
var xmlFile = Server.MapPath("seminar.xml");
var xslFile = Server.MapPath("seminar.xsl");
// Загрузка XML-документа
var source = Server.CreateObject("Microsoft.XMLDOM");
source.async = false;
source.load(sourceFile);
// Загрузка the XSL-таблиц
var style = Server.CreateObject("Microsoft.XMLDOM");
style.async = false;
style.load(styleFile);
Response.Write(source.transformNode(style));
%>


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

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

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

- в качестве единого формата передачи данных в сложных информационных системах и универсального промежуточного формата между сервером приложений и базой данных в трехзвенных клиент-серверных моделях;

- в обычных приложениях для организации временной или служебной информации (например, вместо использующихся сейчас log-файлов, файлов конфигурации, установки и др.).

В настоящий момент в специально созданной рабочей группе по развитию стандарта XML (XML Coordination Group) находится на рассмотрении целый ряд новых предложений, связанных с технологией XML. В первую очередь это касается новых языков разметки, расширяемых стилевых таблиц, новых механизмов гиперссылок, универсальных языков запросов к базам данных. Их появление способно сильно изменить существующие ныне способы организации информации в Интернете, и в будущем многие из них должны стать частью стандарта XML. Но несмотря на то, что процесс стандартизации XML-технологий полностью еще не завершен и в будущем возможно появление новых рекомендаций, уже сегодня существует достаточно широкий выбор программного обеспечения, необходимого для создания и анализа XML-документов. Практически полную поддержку всех разрабатываемых стандартов W3C обеспечивает браузер Amaya, предлагаемый консорциумом специально для тестовых целей (www.w3.org/Amaya/User/BinDist.html). Из наиболее популярных средств просмотра и создания информации в Web можно назвать тестируемую версию Microsoft Office 2000 и программу просмотра Microsoft Internet Explorer 5, первый браузер, поддерживающий спецификацию XML 1.0 и стилевые таблицы XSL. Поддержка XML также планируется в будущих версиях Netscape Navigator. С появлением этих новых универсальных средств просмотра Web-документов можно будет говорить о возможности использования XML в "свободном пространстве" WWW без каких-либо ограничений.

Современные языки разметки

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

А - Языки описания информационных ресурсов Сети (языки описания метаданных).

Долгое время информационное наполнение WWW строилось главным образом с расчетом на ее потребителя-человека. Сейчас при создании HTML-страницы автор описывает форматирование ее текста, но практически не указывает служебной информации, описывающей данный ресурс в удобной для машины, то есть структурированной форме. Однако в наши дни такой бессистемный подход привел к серьезным трудностям при разработке поисковых машин, рейтинговых систем, автоматических каталогизаторов. Одной из попыток создания удобного меДолгое время информационное наполнение WWW строилось главным образом с расчетом на ее потребителя-человека. Сейчас при создании HTML-страницы автор описывает форматирование ее текста, но практически не указывает служебной информации, описывающей данный ресурс в удобной для машины, то есть структурированной форме. Однако в наши дни такой бессистемный подход привел к серьезным трудностям при разработке поисковых машин, рейтинговых систем, автоматических каталогизаторов. Одной из попыток создания удобного механизма для организации таких систем стало появление целого ряда специализированных языков разметки "информации об информации" - метаданных. Совсем недавно консорциумом W3 была утверждена рекомендация по универсальному языку описания ресурсов (Resource Description Framework - RDF). Для этих же целей были созданы в свое время спецификации MCF (Meta Content Framework), PICS (Platform for Internet Content Selection), XMI (Metadata Interchange Format), P3P (Platform for Privacy Preferences) и ряд других.

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

Б - Языки, используемые в технологии принудительной доставки информации (push-каналы).

Документы, описывающие рассылаемые ресурсы и расписание их доставки, используют основанный на XML-формате язык CDF (Channel Definition Formvat; www.w3.org/TR/NOTE-CDFsubmit.html), предложенный Microsoft. Вообще, надо сказать, что популярность такого способа предоставления информации в последнее время несколько снизилась (еще год назад о push-технологии говорили как о революции в Интернете), однако поддержкой XML в браузере Internet Explorer мы обязаны именно каналам рассылки, для работы с которыми использовался XML-обработчик MSXML.

В - Языки разметки, предназначенные для обработки документов, использующих математические, химические, физические формулы, нотные записи и другие специальные символы.

Самым популярным из них на сегодняшний день является язык описания математических формул Mathematical Markup Language (MathML).

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

Поэтому в 1995 году консорциум W3 образовал рабочую группу по созданию стандарта языка разметки математических выражений, предназначенного для использования в Web. В 1997 году этой группой был подготовлен первый рабочий вариант, и в настоящий момент W3C предложил MathML в качестве рекомендации.

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

Более подробную информацию по этому языку можно найти по адресу www.w3.org/TR/1998/REC-MathML-19980407.

Г - Язык описания документов, содержащих мультимедийную информацию. Язык SMIL (Synchronized Multimedia Integration Language) - это рекомендованный консорциумом W3 механизм создания документов, содержащих синхронизированную мультимедийную информацию. Такие документы называются SMIL-презентациями и представляют собой набор инструкций, описывающих текстовые, видео- и аудиоданные и определяющих последовательность их воспроизведения. Главной сферой применения SMIL в наше время может являться сетевое телевидение, видео, дистанционное образование. Фрагменты SMIL-презентаций могут включаться в обычные HTML-странички и воспроизводиться либо специально предназначенными для этого программами просмотра, либо модулями расширения браузеров (plug in).Спецификация SMIL находится по адресу: www.w3.org/TR/1998/REC-smil-19980615.

Д - Электронная коммерция.

Для организации обмена финансовой информацией в Сети в настоящий момент предложено несколько форматов. Главная их особенность - уделяемое при их создании особое внимание вопросам защиты данных и безопасности. Наиболее известными сегодня являются следующие спецификации:

- Open Trading Protocol (OTP; http://opt.org) - универсальный протокол для организации систем электронных платежей в Интернете, поддерживающий сегодня такие известные системы, как CyberCash, DigiCash, GeldKarte и др.;

- Financial Exchange (IFX - www.bitsinfo.org/ifx/index.htm) - язык разметки, позволяющий унифицировать процесс обмена финансовой информацией между сетями различной архитектуры;

- OFX (Open Financial Exchange; www.ofx.net), предложенная еще в 1997 году компаниями CheckFree, Intuit и Microsoft спецификация, предназначенная для управления выполнением самых различных финансовых операций в Сети для клиентов самого разного уровня;

- Micropayment Markup (www.w3.org/TR/WD-Micropayment-Markup) - стандарт, создаваемый с целью автоматизации процесса электронных платежей из Web-страницы клиента за счет внедрения необходимой для этого информации непосредственно в Web-страницу и уменьшения тем самым затрат на передачу такого рода информации;

- SDML (Signed Document Markup Language; www.w3.org/TR/1998/NOTE-SDML-19980619) - находящаяся на рассмотрении в W3C спецификация языка, разработанного организацией Financial Services Technology Consortium (FSTC) в рамках Electronic Check Project - проекта автоматизации платежей по электронным чековым книжкам.

Безусловно, привести полный перечень существующих вариантов использования XML в этой статье невозможно - практически каждый день появляются новые языки и технологии, расширяющие область возможного применения XML. За рамками статьи остались вопросы интеграции XML и Java-технологий, новых форматов гиперссылок. Но если вас все-таки заинтересовал этот язык, можно всегда найти последнюю информацию о нем в Интернете: www.w3.org, www.xml.com, www.oasis-open.org/cover/xml.html, www.xmlinfo.com.



© ООО "Компьютерра-Онлайн", 1997-2021
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.