Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

Знакомьтесь, XML!

Ахмед Абуалсемид

Язык XML стал восходящей звездой 2000 г., и интерес к нему до сих пор растет. Множество подававших большие надежды технологий Web пали жертвой войн стандартов и чрезмерных ожиданий, но XML (eXtensible Markup Language) продолжает оставаться на высоте.

Консорциум World Wide Web Consortium (W3C) представил XML в 1996 г., и очевидные достоинства этого стандарта -- сочетание гибкой, расширяемой и приспособляемой структуры, а также простоты и независимости от платформы - быстро завоевали симпатии Web-разработчиков.

Вслед за этим XML доказал, что может иметь кассовый успех. В конце концов, какой толк от звезды, если она не приносит дохода? На волне интереса к биржам B2B тяжеловесы ИТ-отрасли продвигают свое видение новой технологии. В этой статье мы даем всеохватывающее представление об XML, начиная с истории его зарождения и до настоящего времени, когда он стал важнейшим среди действующих стандартов. Кроме того, мы рассмотрим его в деталях, на подробных синтаксических примерах и бросим взгляд вперед, на новые технологии, такие, как MathML (Mathematical Markup Language), XForms и SOAP (Simple Object Access Protocol) фирмы Microsoft.

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

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

Разработка XML началась в середине 1996 г. и достигла кульминации в 1998 г. с выходом рекомендации XML 1.0. Обсуждения этой рекомендации и непрерывная работа над нею привели к появлению второй редакции, выпущенной в октябре 2000 г. Это была не новая версия, а просто переработка первоначального стандарта с учетом исправления опечаток и результатов обсуждений, накопленных за прошедшие годы. Поэтому стандарт сохранил прежний номер версии.

XML -- постоянно меняющийся и развивающийся стандарт, поэтому уследить за всеми изменениями основной и дополнительных спецификаций довольно трудно. К тому же некоторые первоначальные замыслы были отложены из-за отсутствия интереса к ним, в то время как другие развивались быстрыми темпами. Мы расскажем о спецификациях в том виде, в каком они пребывали на момент написания статьи, но следует помнить, что они все еще продолжают изменяться. Удобным, хотя и коммерциализированным Web-узлом, позволяющим следить за этой информацией, является www.xml.com. Web-узел консорциума W3C (www.w3c.org) обладает более полным набором информации, но она, как правило, излагается на языке, который неосведомленному читателю понять нелегко.

Станет ли XML "могильщиком" HTML?

В момент появления XML этот язык задумывался как "могильщик" HTML. Однако ему не удалось заменить HTML -- более того, XML был использован для того, чтобы переформулировать HTML 4.0 в виде стандарта, известного как XHTML (Extensible HTML). Одна из главных целей XHTML заключается в том, чтобы исключить разночтения в работе различных браузеров с HTML.

Кроме того, после появления стандарта в 1998 г. были выпущены две дополнительные рекомендации: посвященные пространствам имен в XML (www.w3.org/TR/1999/REC-xml-names-19990114/) и подключению таблиц стилей (www.w3.org/TR/ xml-stylesheet/).

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

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


<листинг 1>
<?xml version="1.0"?> 
<!-- initially, the default namespace is "books" --> 
<book xmlns='urn:loc.gov:books'   
xmlns:isbn='urn:ISBN:0-395-36341-6'>   
<title>Cheaper by the Dozen</title>   
<isbn:number>1568491379</isbn:number>   
<notes>     
<!-- make HTML the default namespace for some commentary -->     
<p xmlns='urn:w3-org-ns:HTML'>       
This is a <i>funny</i> book!     
</p>   
</notes> 
</book> 

Первая строка обязательна. Она указывает, что используется рекомендация XML 1.0. Вторая строка -- это комментарий, так же как все строки, находящиеся между знаками <!-- и -->. <book>, <title> и <notes> представляют собой определяемые нами теги. В конце концов, именно возможность определения собственных меток является главным доводом в пользу применения XML. Ключевое слово xmlns служит для задания пространства имен, которое используется в тегах <book> и <p>. В теге <isbn:number> применяется полное имя в соответствии с тем, как это было описано выше, причем isbn является префиксом пространства имен.

Другая важная рекомендация, которая была выпущена W3C в самом начале, посвящена подключению таблиц стилей. Эта короткая рекомендация имеет огромное значение. Чтобы разобраться в ней, необходимо понимание технологии каскадного стилевого макетирования (Cascading Style Sheets -- CSS).

В HTML ряд элементов может быть использован для форматирования вывода. В частности, чтобы выделить часть текста жирным шрифтом, вы должны в начале и конце его поставить теги <b> и </b>. Такой подход имеет много недостатков, один из которых состоит в том, что вы не можете задать шаблоны стилей, применяемых к Web-страницам. Если, например, ваши заголовки выводятся с помощью меток <hl> и вы решили заменить их тегами <h2>, то вам придется редактировать каждый заголовок, изменяя окружающие его теги. Отсутствие шаблонов стилей усложняет также поддержку единообразного оформления всего Web-узла.

Для решения этих проблем и была создана спецификация CSS. С ее помощью создается шаблон форматирования, который может быть применен к HTML-страницам. Хотя задание таблиц стилей может оказаться очень сложным процессом, на него стоит потратить время. Один из лучших ресурсов по таблицам стилей находится по адресу www.hotwired.lycos.com/webmonkey/authoring/stylesheets/.

Рекомендация консорциума W3C сделала концепцию таблиц стилей применимой и в XML-документах. Это важно, потому что в отличие от HTML XML не имеет никаких форматирующих элементов и без таблиц стилей все XML-документы будут выглядеть практически одинаково. Для решения этой проблемы была создана спецификация XSL (Extensible Style Language).

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

Большая часть документации XSL написана языком, который лучше всего может быть охарактеризован как криптографический. Поэтому примеры очень важны для понимания концепции. Рассмотрим приведенный фрагмент XSL-кода. Текст, заключенный в логические скобки /* */, представляет собой комментарии и не является частью кода XSL.

<листинг 2>
/* Заголовок, который должен содержать некоторую необходимую информацию */ 
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/
1999/XSL/Transform'>
/* XSL-процессор ищет в XML-документе метку <bold>. Обнаружив ее, 
XSL-процессор берет текст, находящийся между парой тегов <bold></bold>, 
и выводит его, окружив тегами <p><b> и </b></p> */
<xsl:template match="bold"> 
<P><B><xsl:value-of select="."/></B></P> 
</xsl:template> 
/* Аналогично вышеприведенному примеру с тегом <bold> выполняется 
поиск тега <red> и при обнаружении заменяется тегами <P 
style="color:red"></P> */ 

<xsl:template match="red"> 
<P style="color:red"><xsl:value-of select="."/></P> 
</xsl:template> 
/* Конец стилевой таблицы */ 
</xsl:stylesheet> 

В этом примере процессор XSL будет искать в исходном тексте на XML тег <bold>. Если он будет найден, то процессор XSL возьмет текст между парой тегов <bold> и </bold> и выведет его, окружив тегами <p><b>. Аналогичная логика применяется к тегу <red>. После применения к документу на XML вышеприведенного XSL-кода, он будет выглядеть таким образом:

<листинг 3>
<?xml version="1.0"?> 
<xslIntro> 
<bold> A Test Source XML in bold. </bold> 
<red> and some more in the red color </red> 
</xslIntro> 

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

В процессе разработки

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

Цель одной из рекомендаций, находящихся в процессе обсуждения, а именно рекомендации по XML-запросам (www.w3.org/XML/Query.html), состоит в разработке языка запросов для XML, который позволил бы программистам выполнять поиск в репозиториях XML и сохранять результаты поиска. Аналогом может служить оператор select в языке SQL. Различие заключается в том, что операторы SQL строго определены, поскольку синтаксис языка точно задан и операторы SQL применяются к базе данных.

Помимо всего прочего, XML-запросы могут применяться к самым разнообразным хранилищам информации, включая текстовые документы, документы с данными, файлы конфигурации, потоки данных XML, структуры DOM (Document Object Model), естественные репозитории XML, такие, как Web-серверы, и другие типы хранилищ.

Более того, рекомендация не определяет синтаксис для запросов на XML -- она просто предлагает описание того, как должен выглядеть язык. Мы даже не можем сказать, станет ли полезной данная рекомендация по XML-запросам, но полагаем, что эта деятельность будет продолжена поставщиками баз данных, работающими над тем, чтобы сделать свои серверы приложений способными к использованию XML. Например, Internet Information Server (IIS) 5.0 фирмы Microsoft может работать со специальными виртуальными каталогами XML-документов, содержащих код SQL. Запросы SQL выполняются на сервере базы данных Microsoft SQL Server 2000, который может возвращать результаты в формате XML. Затем с помощью таблицы стилей XSL можно получить хорошо отформатированный результат прямо в браузере.

Стремясь не отстать, Oracle выпускает свой сервер приложений Oracle9, снабженный специализированной версией популярного Web-сервера Apache. Этот специальным образом настроенный Web-сервер дает возможность разработчикам создавать XML-документы, которые могут выполнять SQL-запросы к серверу базы данных Oracle во многом так же, как это делают IIS 5.0 и SQL Server 2000. Выход генерируется в формате XML и отправляется обратно на браузер. XML в разной степени поддерживается также и некоторыми другими поставщикам СУБД и серверных приложений.

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

Определение языка

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

Спецификация XML 1.0 исходно обеспечивала механизм для деклараций синтаксических ограничений на использование тегов разметки. Этот механизм был назван DTD (Document Type Definition) и основывался на введенном в действие много лет назад стандарте SGML (Standard Generalized Markup Language). Вскоре его разработчики осознали недостатки механизма DTD при автоматической обработке XML-документов. Кроме того, спецификация DTD не удовлетворяет все требования разработчиков из-за ограничений на теги разметки. Часто требуются более жесткие или более свободные ограничения по сравнению с теми, которые обеспечиваются DTD.

Конечно, эти факторы сами по себе еще не требуют полностью нового метода описания тегов разметки, для них было бы достаточно улучшения DTD. Однако большинство разработчиков XML хотели бы пользоваться при задании ограничений на теги разметки синтаксисом XML. Это позволило бы им применить множество имеющихся на рынке инструментальных средств XML. DTD не соответствует этому требованию. Поэтому была сформирована новая рабочая группа для разработки замены DTD под названием XML Schema (www.w3.org/TR/NOTE-xml-schema-req).

Как и в случае с большинством стандартов, было разработано несколько альтернативных вариантов того, как должен выглядеть язык XML Schema. В течение последних двух лет рабочая группа рассмотрела такие предложения фирм-поставщиков и заинтересованных разработчиков, как XML-Data, DCD (Document Control Description), SOX (Schema for Object-Oriented XML) и DDML (Document Definition Markup Language).

К октябрю результаты работы группы XML Schema достигли статуса кандидата на принятие в качестве рекомендации. Эта рекомендация касается трех важных областей: структуры, типизации данных и согласованности. Структура определяет взаимоотношения между различными тегами разметки в XML-документе. Типизация данных вводит в язык XML концепцию типов данных, которая будет очень полезна при извлечении информации из баз данных или при использовании XML в EDI (Electronic Data Interchange). Согласованность в соответствии с названием обеспечивает механизм правильного формирования документа и его соответствие связанной с ним схеме.

Гибкость XML-документов в среде Web в значительной степени обеспечивается независимым от платформы и языка программирования интерфейсом DOM, который представляет разные части XML как объекты, к которым могут обращаться программисты и файлы сценариев. Спецификация DOM состоит из нескольких частей. Это DOM Core, DOM Views, DOM Events, DOM Style и DOM Traversal and Range. Они находятся на так называемом уровне Level 2.

Ирония состоит в том, что одной из наиболее важных причин создания спецификации DOM является необходимость обеспечить стандартный программный интерфейс, в то время как реализации DOM для разных браузеров сильно различаются. Полный список всех последних рекомендаций консорциума W3C, включая документы по DOM, можно найти по адресу www.w3.org/TR/.

Приложения:

***

Язык XML: информация для руководителей

XML -- развивающийся стандарт. С одной стороны, это хорошо, потому что Интернет тоже растет и изменяется. Но, с другой стороны, это делает стандарт трудным для изучения. Web-узел W3C насчитывает 67 рабочих проектов и 40 рекомендаций, находящихся на разных стадиях утверждения. Большинство из них относятся к XML или к связанным с ним спецификациям. В этой статье мы рассмотрели несколько ключевых рекомендаций W3C, одновременно касающихся истории и будущего XML. Кроме того, мы постарались дать представление о захватывающих перспективах доставки динамического информационного наполнения в Web, предлагаемых XML.

Когда XML впервые появился в 1996 г., он был окрещен "могильщиком" HTML. Однако вместо погребения HTML язык XML стал просто выполнять ряд параллельных задач в системах управления информационным наполнением, в средах EDI и SOAP, а также стал главным двигателем электронного бизнеса. Мало того, с помощью XML язык разметки HTML 4.0 превратился в то, что сегодня известно как XHTML. XHTML привлекателен тем, что он не допускает использования некорректного кода HTML, которым сейчас изобилует Интернет, -- никаких неправильно размещенных, неправильно вложенных или пропущенных закрывающих тегов. Кроме того, с помощью DOM обеспечивается программный доступ к элементам HTML и XML, что позволяет оживить Web-узлы. Не надо забывать и о стилях -- XML предоставляет нам язык XSL, обеспечивающий постпроцессорную обработку элементов XML, генерируя, таким образом, переносимый и функциональный код HTML.

Что касается будущего спецификации XML, то мы рассмотрим вкратце MathML 2.0, XForms и Microsoft SOAP. MathML облегчает обработку пользовательского ввода в программных пакетах, SOAP предоставляет разработчикам впечатляющие новые средства для обмена данными между хранилищами информации, а XForms олицетворяет новое поколение Web-форм, обеспечивающее усовершенствованный механизм для сбора и передачи данных на ваш сервер.

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

Microsoft, Oracle, а также группа Apache, разрабатывающая проект с открытым исходным кодом Cocoon Project, создают впечатляющие средства публикации на базе XML. С этими средствами разработчики Web-узлов смогут использовать XML для запросов к реляционным базам данных и предоставления клиенту свежей информации в нужной ему форме.

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

Новые технологии XML

Доказательством гибкости и мощности XML служат множество основанных на нем новых технологий. Вот некоторые из них:

· MathML 2.0 . Язык разметки Mathematical Markup Language (www.w3.org/TR/MathML2/) не только предоставляет средства для записи математических выражений -- он охватывает как структуру, так и содержание математического представления. В принципе на нем можно писать и вручную, но его реальное предназначение -- использование в программных пакетах. Такие средства, как, например, редакторы уравнений, могут создавать MathML-документы на основе того, что пользователь ввел через графический интерфейс.

· SOAP -- Simple Object Access Protocol фирмы Microsoft представляет собой облегченный протокол, предназначенный для обмена информацией в децентрализованных средах (msdn.microsoft.com/xml/general/soapspec.asp). Если вы знакомы с протоколами EDI, такими, как HL7 (Health Level 7), вы сразу обнаружите их сходство с SOAP. Главное отличие SOAP от протоколов EDI заключается в том, что SOAP основывается на XML. Эта спецификация состоит из трех частей: оболочки, которая определяет содержание сообщения; правила кодирования для различных типов данных и соглашения для представления удаленных вызовов процедур и возврата результатов. Как и MathML, этот протокол не предназначен для использования непрограммистами. Сейчас единственным протоколом, который может применяться с SOAP, является HTTP. Однако это непременно изменится, когда SOAP станет использоваться шире.

· XForms. Рекомендация XForms была создана совсем недавно (www.w3.org/TR/xforms/). Многие разработчики страдают от ограниченности возможностей HTML-форм, поэтому данный стандарт встречает большое одобрение. Спецификация XForms не только смягчает многие недостатки существующих HTML-форм, но и отделяет суть формы от ее представления и пользовательского интерфейса. Это важно, поскольку сейчас приложения разрабатываются не только для знакомых всем настольных браузеров, но и для других программных клиентов, например для беспроводных устройств и браузеров, управляемых голосом. Новая спецификация XForms определяет составные части модели, такие, как управляющие элементы форм, а также их взаимосвязи, позволяя задавать пределы и ограничения на содержимое управляющих элементов. Теперь появилось также автоматическое и предварительное заполнение содержимого управляющих элементов. Спецификация даже предлагает возможность временно прекратить и возобновить заполнение формы.





  
8 '2001
СОДЕРЖАНИЕ

колонка редактора

• Старые фокусы новой экономики

бизнес

• Сеть современных викингов

локальные сети

• Сетевые адаптеры Ethernet/Fast Ethernet

• На пути к контролю физического уровня сети

• Стандарты на кабельные системы: в ожидании формального принятия

корпоративные сети

• Лучшие продукты 2001 года

• Комплексные решения от одной фирмы. Плюсы и минусы

• Одна сеть - один выбор

• Телекомпьютинг, или как повысить производительность труда работающих дома?

услуги сетей связи

• От 2G к 3G. Проблемы миграции и пути их решения

• Карманные WAP-устройства. Руководство для покупателя

• День переезда

• Создание отечественных универсальных средств мультисервисной связи. Проблемы и решения

• Оптическая коммутация блоков

новые продукты

• Высокоскоростная связь между сетями; Новинки от Кроникс; АО "Радиус" расширяет диапазон производимого оборудования

только на сервере

• Оптимизация производительности баз данных для Web

• Знакомьтесь, XML!

• Технологии доставки динамического контента

• Тестируем серверы высотой 1U



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх