Роль языка XML в Windows Scripting Host 2.057

Я тогда ответил, что XML наверняка будет играть решающую роль в приложениях для Web, но вряд ли он повлияет на создание сценариев системного администрирования. Windows Script Host (WSH) 2.0 компании Microsoft опроверг мое утверждение. В версию WSH 2.0, которую называют также Windows Script 5.1, включены мощные средства, зависящие от новых типов файлов и их форматов. Каких именно? Об этом рассказано ниже.

В WSH 2.0 появились новые возможности, такие, как поддержка вложенных файлов, поддержка нескольких обработчиков сценариев, дополнительные сервисные средства, доступ к внешним константам, новые опции выполнения и т. д. Некоторые из этих возможностей зависят от формата файла Windows Script (WS). WS-файлы не просто содержат в текстовом виде VBScript, JScript или другой ActiveX-совместимый язык сценариев. Теперь они являются XML-приложениями, имеющими структуру, соответствующую схеме WS XML. Новый тип файла и формат обеспечивают более мощную среду для написания сценариев. Рассмотрим подробнее схему WS XML и ее новые возможности.

Новые расширения файлов

WSH версии 1.0 не определял отдельного расширения для WS-файлов. Использовались расширения, которые определяли и регистрировали обработчики сценариев ActiveX. Обработчик VBScript регистрировал расширение .vbs, а обработчик JScript — расширение .js. Таким образом, WSH 1.0 выбирал тот или иной обработчик сценариев исходя только из расширения файлов.

WSH версии 2.0 регистрирует новое расширение, используемое WS-файлами на основе XML. Первоначально разработчики Microsoft планировали использовать расширение .ws, но перед самым выходом WSH 2.0 заменили его на .wsf. Из-за этого в документации по WSH 2.0 и в нескольких связанных с WSH книгах и статьях все еще можно увидеть ссылку на неверное расширение .ws. При использовании новых возможностей XML с помощью WSH 2.0 следует применять расширение .wsf, а не .ws, хотя по-прежнему можно пользоваться .vbs и .js для создания файлов VBScript и JScript.

Extensible Markup Language

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

Как и HTML, XML является независимым от платформы промышленным стандартом, который поддерживается консорциумом World Wide Web Consortium (W3C) (более подробно см. по адресу: http://www.w3c.org/xml). И HTML и XML являются теговыми языками. Однако этим сходство исчерпывается.

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

XML определяет информацию и данные для использования, а не для представления на устройстве вывода. Возможность повторного применения созданных структур данных, а также возможность расширения позволяют полнее использовать эту информацию или данные несколькими приложениями. Мощь XML демонстрируют две технологии — Windows Script Components, WSC (файлы .wsc) и WS-файлы WSH 2.0 (.wsf). Раньше разработчики Microsoft использовали XML для определения схемы информационной модели WSC. Компоненты WSC являются компонентами COM, написанными на сценариях. Расширив WSH, специалисты Microsoft использовали множество схем WSC XML для определения оптимальной грамматики WS-файлов. Теперь расширенный WSH по-новому использует существующие определения данных XML. Поскольку две технологии поддерживают множество похожих схем XML, пользователи, изучая лишь одну технологию, осваивают сразу обе.

Элементы, теги, атрибуты и содержание

РИСУНОК 1. Синтаксис типичного элемента.

Структура WS-файла напоминает структуру файла HTML. В обоих случаях содержимое представляет собой элементы, которые заключены в угловые скобки и имеют атрибуты. Типичный синтаксис элементов, составляющих структуру WS-файла, показан на Рисунке 1.

Обычно элемент представляет собой пару тегов с одинаковым названием — тег начала и тег конца элемента. Тег начала составляют открывающая угловая скобка (<), название элемента (строчными буквами, обычно имя существительное), список атрибутов (иногда можно опустить) и закрывающая угловая скобка (>). К примеру, тег начала элемента . Атрибуты являются обязательными или необязательными поименованными значениями, предоставляющими дополнительную информацию о соответствующем теге или последующем содержимом элемента. Например, является исходным кодом, и внутри блока script нет ничего похожего на XML. Однако в таком случае могут возникнуть проблемы при использовании в исходном коде зарезервированных для XML слов или символов, например знаки «меньше» (<) и «больше» (>) приведут к прекращению дальнейшего разбора и выполнения сценария. Для предотвращения таких ситуаций можно поместить определение XML в самой первой строке WS-файла, тем самым заставив сценарий выполняться в строгом режиме. При обработке в этом режиме следует четко следовать всем правилам стандарта XML, а также заключать свой собственный код в секцию CDATA. В этом случае появляется уверенность, что содержимое блока script не будет истолковано неверно, и сценарий не разорвется в самом неподходящем месте.

Грамматика файлов сценариев в Windows

Разобравшись с основными элементами сценариев в WS-файлах и с их структурой, можно приступить к рассмотрению синтаксиса, определения и использования каждого элемента в отдельности. В Таблице 1 подробно описаны элементы WS-файла, а в Таблице 2 представлено несколько хорошо известных тегов, соответствующих стандарту W3C XML 1.0. В следующий раз я расскажу о том, как новая технология XML вписывается в утилиту по анализу файлов журнала Windows Management Instrumentation.

Боб Уэллс
Консультант по программному обеспечению; специализируется на вопросах проектирования и реализации инфрастуктуры информационных систем, основанных на NT. Имеет сертификаты MCSE и MCT. С ним можно связаться по адресу bobwells@winntmag.com.