Архивы: по дате | по разделам | по авторам

MSXML3, первое знакомство

АрхивПрограммазм (архив)
автор : Дмитрий Качаев   17.03.2001

Эта статья посвящена началам работы с Microsoft XML Parser 3.0. Устанавливаем, настраиваем, пробуем...

Введение

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

Microsoft XML Parser (MSXML) - это реализация XML парсера (синтаксического анализатора) от компании Microsoft. Что же кроется за этими словами? Первая реализация MSXML была выпущена вместе с очередной версией Microsoft Internet Explorer 5.0 в 1998 году. Она поддерживала тогда еще рабочую версию (working draft) стандарта XSL, но с того времени XSL, став стандартом, достаточно сильно изменился. Тем не менее, компания Microsoft осталась верна своему слову и в сентябре 2000 года выпустила третью версию своего парсера, полностью совместимую со стандартами W3C консорциума. На текущий момент последней версией парсера является MSXML3. Он полностью поддерживает такие стандарты W3C как XML, Namespaces, XPath, XSL Transformations, а также стандарты XDR Schemas и SAX2.

Устанавливаем MSXML3

Для того, чтобы установить MSXML3, возьмите поcледнюю версию парсера (на момент написания статьи это версия от 10/27/2000) с сайта MSDN XML и запустите ее. Чтобы вместе с парсером также получить и документацию к нему, скачайте и установите MSXML SDK 3.0.

Тем не менее, даже после установки MSXML3 у вас все равно могут возникнуть проблемы при работе с XML и XSL в Internet Explorer. Причина этого в том, что вместе с Internet Explorer версий 5.0, и даже 5.5, идет старая версия парсера. Чтобы установить поддержку MSXML3 в IE, необходимо проделать следующие операции.

  1. Скачайте утилиту xmlinst.exe для установки поддержки MSXML3 в Internet Explorer.
  2. Запустите скачанный дистрибутив командой start XmlInst.exe, он предложит вам распаковать себя в одну из папок на вашем компьютере.
  3. Выполните следующие команды (файлы msxml.dll и msxml3.dll должны находиться в папке %winroot%\system32):
  xmlinst -u
  regsvr32 -u msxml.dll
  regsvr32 msxml3.dll
  xmlinst

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

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

Просмотр XML документов в Internet Explorer

Создадим простой XML документ. Для этого создадим обычный текстовый файл с именем test.xml следующего содержания:

Исходный файл (test.xml)

<?xml version="1.0"?>
<root>
  <node attr="some">
    text
  </node>
  <node/>
  <node/>
</root>

Откроем его в Internet Explorer с помощью команды меню File\Open:

Отображение XML в Internet Explorer

Рисунок 1

При отображении XML документа Internet Explorer выделяет разными цветами (syntax highlighting) тэги, атрибуты и другие синтаксические конструкции языка XML. Также он позволяет удобно просматривать древовидную структуру документа, сворачивая и разворачивая отдельные его ветви. Все это делается с помощью встроенного в Internet Explorer XSL шаблона, с помощью которого и отображается XML. Просмотреть шаблон по умолчанию можно, введя res://msxml3.dll/defaultss.xsl в строке адреса в Internet Explorer.

Работа с XSLT в Internet Explorer

XSL Transformations - это стандарт консорциума W3C, предназначенный для трансформаций XML документов из одного вида в другой. В настоящее время MSXML3 является полностью совместимым с этим стандартом. Для трансформаций XML документов можно использовать либо Document Object Model API встроенный в MSXML3, либо Internet Explorer с установленной поддержкой MSXML3. В последнем случае Internet Explorer осуществляет трансформацию XML документа и отображает полученный результат.

Рассмотрим пример:

XML документ (bookshelf.xml)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="bookshelf.xsl"?>
<bookshelf name="XML Technology">
  <book author="Michael Kay" name="XSLT Reference"/>
  <book author="Elliote Rusty Harold" name="XML Bible"/>
  <book author="Luis Ennser" name="The XML Files: Using XML for B2B and 
    B2C Applications"/>
</bookshelf>

XSL документ (bookshelf.xsl)

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
    <head>
      <title>
        <xsl:value-of select="bookshelf/@name"/>
      </title>
    </head>
    <body>
      <h1>
        <xsl:value-of select="bookshelf/@name"/>
        </h1>
        <xsl:apply-templates select="/bookshelf/book"/>
    </body>
  </html>
</xsl:template>

<xsl:template match="/bookshelf/book">
  <b>
    <xsl:value-of select="@title"/>
  </b>
  by
  <b>
    <xsl:value-of select="@author"/>
  </b>
  <br/>
  <hr/>
</xsl:template>

</xsl:stylesheet>

Для просмотра результата откройте в Internet Explorer файл bookshelf.xml и вы увидите этот XML-документ уже не в виде дерева с расцвеченными синтаксическими конструкциями, как в первом примере, а в виде HTML, полученного трансформацией из исходного XML документа в HTML документ с использованием шаблона bookshelf.xsl.

Инструкция (processing instruction) задает ссылку на шаблон, используемый для трансформации исходного XML документа.

Просмотр результатов XSL трансформации

Обычно для просмотра исходного текста в Internet Explorer мы пользуемся командой меню View\Source. При просмотре XML документов данная команда показывает нам исходный XML документ, а не HTML, полученный в результате трансформации этого документа. Для того, чтобы можно было просматривать результаты трансформации в Internet Explorer, необходимо скачать с сайта Microsoft и установить утилиту Internet Explorer Tools for Validating XML and Viewing XSLT Output . После ее установки при просмотре XML документов в контекстном меню (вызываемом, например, щелчком правой кнопки мыши) появляются две новые команды Validate XML и View XSL Output с помощью которых можно проверять правильность XML документов, а также просматривать результат XSL трансформации.

Пространства имен XSLT

При работе с XSL вы наверняка замечали определения пространств имен (namespace) xsl в XSL документах http://www.w3.org/TR/WD-xsl или http://www.w3.org/1999/XSL/Transform. Что они обозначают и какое из этих имен нужно использовать?

В то время, когда выпускался первый парсер MSXML, впоследствии встроенный в Internet Explorer 5.5, стандарт W3C консорциума XSLT все еще находился в стадии разработки. Однако компания Microsoft не стала ждать его окончательной доработки и реализовала MSXML в соответствии с положением стандарта, существовавшего в то время. Имя пространства имен, использовавшегося для этого варианта XSLT и было http://www.w3.org/TR/WD-xsl. Впоследствии, став стандартом, XSLT существенно изменился и именем пространства имен для него стало http://www.w3.org/1999/XSL/Transform. Поэтому, если вы хотите соответствовать стандарту W3C XSLT, то вам нужно использовать последнее из этих двух имен. Но если у вас нет уверенности, что в Internet Explorer у ваших клиентов включена поддержка MSXML3, то вам лучше использовать первое имя, так как данный стандарт поддерживается стандартной поставкой Internet Explorer 5.0 и выше.

Заключение

Думаю, что этой вводной статьи будет достаточно для того, чтобы разработчики, начинающие знакомиться с XML, могли приступить к освоению этой технологии, а Internet Explorer с включенной поддержкой MSXML3 может помочь им в этом. Его можно использовать как для просмотра XML документов, так и для проведения XSL трансформаций над XML документами и просмотра полученных результатов.

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

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