Представленная в листинге 3.1 схема WS XML — это модель данных, определяющая элементы и соответствующие атрибуты, а также связи элементов друг с другом и возможную последовательность появления элементов. Также эта схема может задавать значения атрибутов по умолчанию.
<?xml version='1.0' standalone='yes'?>
<package>
<job [id='JobID']>
<?job debug='true|false'?>
<runtime>
<named name='NamedName' helpstring='HelpString' type='string|boolean|simple' required='true|false' />
<unnamed name='UnnamedName' helpstring='HelpString' many='true|false' required='true| false' />
<description> Описание сценария </description>
<example> Пример запуска сценария </example>
</runtime>
<resource id='ResourceID'> Строка или число </resource>
<object id='ObjID' [classId='clsid:GUID'|progid='ProgID']/>
<reference [object='ProgID' | guid=''typelibGUID'] [version='version']/>
<script language='language' [src='strFileURL']>
<script language='language' >
<![CDATA[
Код сценария
]]>
</scriipt>
</job>
Другие задания
</package>
Таким образом, из листинга 3.1 видно, что:
? элемент <package>
может содержать один или несколько элементов <job>
;
? элемент <job>
может содержать один или несколько элементов <runtime>
, <resource>
, <object>
, <reference>
или <script>
;
? элемент <runtime> может содержать один или несколько элементов <named>
и <unnamed>
, а также элементы <description>
и <example>
.
Обязательными для создания корректного сценария являются только элементы <job>
и <script>
. Сам код сценария всегда располагается внутри элемента <script>
.
Опишем теперь элементы XML, использующиеся в сценариях WSH, более подробно.
Элементы WS-файла
В WS-файл можно вставлять комментарии независимо от разметки XML. Сделать это можно двумя способами: с помощью элемента <!-- -->
или элемента <comment>
. Например:
<!-- Первый комментарий -->
или
<comment>
Второй комментарий
</comment>
Элементы
Эти элементы являются стандартными для разметки W3C XML 1.0. В сценариях WSH они определяют способ обработки WS-файла. Всего существует два режима обработки сценария: нестрогий (loose) и строгий (strict).
При нестрогой обработке (элемент <?xml?>
отсутствует) не предполагается выполнение всех требований стандарта XML. Например, не требуется различать строчные и заглавные буквы и заключать значения атрибутов в двойные кавычки. Кроме этого, в процессе нестрогой обработки считается, что все содержимое между тегами <script>
и </script>
является исходным кодом сценария. Однако при таком подходе может произойти ошибочная интерпретация вложенных в сценарий зарезервированных для XML символов или слов как разметки XML. Например, имеющиеся в коде сценария знаки 'меньше' (<) и 'больше' (>) могут привести к прекращению разбора и выполнения сценария.
Для того чтобы задать режим строгой обработки сценария, нужно поместить элемент <? xml?>
в самой первой строке сценария — никаких других символов или пустых строк перед ним быть не должно. При такой обработке WS-файла нужно четко следовать всем правилам стандарта XML. Код сценария должен быть помещен в секцию CDATA
, которая начинается с символов '<![CDATA[
' и заканчивается символами ']]>
'.
В WSH 5.6 названия и значения атрибутов в элементе <?xml?>
должны быть именно такими, как в листинге 3.1 (version='1.0' и standalone='yes').
Элемент
Элемент <?job?>
задает режим отладки при выполнении WS-файла. Если значение атрибута debug
равно true
, то задание может быть выполнено во внешнем отладчикеdebug
равно false
, то отладчик для этого задания применен быть не может. По умолчанию debug
имеет значение false
.
Элемент
Этот элемент необходим в тех WS-файлах, в которых с помощью элементов <job>
определено более одного задания. В этом случае все эти задания должны находиться внутри пары тегов <package>
и </package>
(см.