Интернет учит новый язык
АрхивОкончание. Начало в #27-28 [305-306] от 13 июля 1999 года.
Окончание. Начало в #27-28 [305-306] от 13 июля 1999 года.
Обработка XML-документовВ отличие от HTML, XML никак не определяет способ отображения и использования описываемых с его помощью элементов документа. Задав определение элемента
В IE 5 XML-данные могут включаться в страницу при помощи специального нового тега
<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: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.