|
@@ -1545,9 +1545,99 @@ SEQ сам может быть элементом контейнера SWITCH.
|
|
|
|
|
|
### SWITCH
|
|
|
|
|
|
+Элемент `SWITCH` является [контейнером](#атрибут-container). Его единственная
|
|
|
+задача - это задать режим обработки вложенных элементов. `SWITCH` задает
|
|
|
+такой режим обработки вложенных элементов, когда из многих должен быть выбран
|
|
|
+только один элемент.
|
|
|
+
|
|
|
+В элементе `SWITCH` атрибут [`mode`](#атрибут-mode) принудительно выставлен в
|
|
|
+значение `switch`.
|
|
|
+
|
|
|
+Дополнительно о режимах обработки вложенных элементов можно прочитать в разделе
|
|
|
+["Атрибут `mode`"](#атрибут-mode).
|
|
|
+
|
|
|
+
|
|
|
+#### Атрибуты элемента `SWITCH`
|
|
|
+
|
|
|
+* [`name`](#атрибут-name) - идентификатор элемента.
|
|
|
+* [`help`](#атрибут-help) - описание элемента.
|
|
|
+
|
|
|
+Обычно элемент `SWITCH` используется без атрибутов.
|
|
|
+
|
|
|
+
|
|
|
+#### Примеры
|
|
|
+
|
|
|
+```
|
|
|
+<COMMAND name="cmd1" help="First command">
|
|
|
+ <SWITCH>
|
|
|
+ <COMMAND name="sub1"/>
|
|
|
+ <COMMAND name="sub2"/>
|
|
|
+ <COMMAND name="sub3"/>
|
|
|
+ </SWITCH>
|
|
|
+</COMMAND>
|
|
|
+```
|
|
|
+
|
|
|
+По умолчанию элемент `COMMAND` имеет атрибут `mode="sequence"`. Если бы в
|
|
|
+примере не было элемента `SWITCH`, то оператор должен был последовательно,
|
|
|
+одну за другой задать все подкоманды: `cmd1 sub1 sub2 sub3`. Элемент `SWITCH`
|
|
|
+изменил режим обработки вложенных элементов и в итоге оператор должен выбрать
|
|
|
+только одну подкоманду из трех. Например `cmd1 sub2`.
|
|
|
+
|
|
|
|
|
|
### SEQ
|
|
|
|
|
|
+Элемент `SEQ` является [контейнером](#атрибут-container). Его единственная
|
|
|
+задача - это задать режим обработки вложенных элементов. `SEQ` задает
|
|
|
+такой режим обработки вложенных элементов, когда все вложенные элементы должны
|
|
|
+быть заданы один за другим.
|
|
|
+
|
|
|
+В элементе `SEQ` атрибут [`mode`](#атрибут-mode) принудительно выставлен в
|
|
|
+значение `sequence`.
|
|
|
+
|
|
|
+Дополнительно о режимах обработки вложенных элементов можно прочитать в разделе
|
|
|
+["Атрибут `mode`"](#атрибут-mode).
|
|
|
+
|
|
|
+
|
|
|
+#### Атрибуты элемента `SWITCH`
|
|
|
+
|
|
|
+* [`name`](#атрибут-name) - идентификатор элемента.
|
|
|
+* [`help`](#атрибут-help) - описание элемента.
|
|
|
+
|
|
|
+Обычно элемент `SEQ` используется без атрибутов.
|
|
|
+
|
|
|
+
|
|
|
+#### Примеры
|
|
|
+
|
|
|
+```
|
|
|
+<VIEW name="view1">
|
|
|
+ <SEQ>
|
|
|
+ <PARAM name="param1" ptype="/ptype1"/>
|
|
|
+ <PARAM name="param2" ptype="/ptype1"/>
|
|
|
+ <PARAM name="param3" ptype="/ptype1"/>
|
|
|
+ </SEQ>
|
|
|
+</VIEW>
|
|
|
+
|
|
|
+<VIEW name="view2">
|
|
|
+ <COMMAND name="cmd1" help="First command">
|
|
|
+ <VIEW ref="/view1">
|
|
|
+ </COMMAND>
|
|
|
+</VIEW>
|
|
|
+```
|
|
|
+
|
|
|
+Предположим, что мы создали вспомогательный `VIEW`, содержащий список часто
|
|
|
+используемых параметров и назвали его "view1". Все параметры должны
|
|
|
+использоваться последовательно, один за другим. А затем в другом `VIEW` объявили
|
|
|
+команду, которая должна содержать все эти параметры. Для этого внутри команды
|
|
|
+создается ссылка на "view1" и все параметры "попадают" внутрь команды. Однако
|
|
|
+элемент `VIEW` по-умолчанию имеет атрибут `mode="switch"` и получается, что
|
|
|
+оператор будет вводить не все объявленные параметры, а должен выбрать только
|
|
|
+один из них. Чтобы изменить порядок разбора вложенных параметров, используется
|
|
|
+элемент `SEQ`. Он меняет порядок разбора параметров на последовательный.
|
|
|
+
|
|
|
+Того же результата можно было добиться добавлением атрибута `mode="sequence"` в
|
|
|
+объявление "view1". Использование атрибута - короче, использование элемента
|
|
|
+`SEQ` - более наглядно.
|
|
|
+
|
|
|
|
|
|
### PTYPE
|
|
|
|