ComparisonCondition
Условие; сравнение значений по определенному признаку.
Описание Condition
<Condition Name="ConditionName" Type="ConditionType" Assembly="ConditionAssembly">
<!--Тэги, общие для всех условий-->
<!--Тэги, специфичные для ComparisonCondition-->
</Condition>Тэги, специфичные для ComparisonCondition
Items
Значения для сравнения.
Необязательный тэг. Значение тэга <Items>: список тэгов <Item>.
Если тэг <Items> отсутствует, то условие всегда будет иметь значение False.
<Items>
<Item>Value1</Item>
<Item>Value2</Item>
</Items>Тэг <Item>
<Item>Значение для сравнения.
Необязательный тэг. Значение тэга <Item>: любое значение.
DataType
Тип, к которому будут приводиться значения для сравнения.
Необязательный тэг. Значение тэга <DataType>: не ожидается.
Если тэг <DataType> отсутствует, то для атрибута Type используется значение StringDataType.
<DataType Type="DataTypeName" />Атрибуты тэга <DataType>
<DataType>Type
Тип данных.
Обязательный атрибут. Значение атрибута Type: название одного из типов данных.
Comparison
Настройки вычисления значения условия, если в качестве значения хотя бы одного из операндов выступает массив или матрица.
Необязательный тэг. Значение тэга <Comparison>: не ожидается.
Если тэг <Comparison> отсутствует, то для атрибута Type используется значение Inner.
Если один из операндов условия - массив или матрица, то для сравнения должен быть выбран базовый элемент из списка <Items>.
Размерность (общее количество элементов массива или матрицы) базового элемента определяет количество сравнений в рамках данного условия.
Если операнд - матрица, то она в рамках условия трансформируется по столбцам в линейный массив.
<Comparison Type="Inner" Order="1" />Пример
Если в качестве первого <Item> задан массив размерностью 3, а в качестве второго <Item> - массив размерностью 2, базовым элементом для сравнения задан первый <Item>, то в рамках данного условия будут происходить следующие внутренние сравнения:
Item1[1] = Item2[1]
Item1[2] = Item2[2]
Item1[3] = NULL
Если в качестве первого <Item> задана массив размерностью 3, а в качестве второго <Item> - матрица размерностью 2x2, базовым элементом для сравнения задан первый <Item>, то в рамках данного условия будут происходить следующие внутренние сравнения:
Item1[1] = Item2[1,1]
Item1[2] = Item2[2,1]
Item1[3] = Item2[1,2]
Атрибуты тэга <Comparison>
<Comparison>Type
Способ определения базового элемента при сравнении.
Необязательный атрибут. Значение атрибута Type: название одного из способов определения базового элемента при сравнении.
Способы определения базового элемента при сравнении
Inner
Базовым элементом является элемент с наименьшей размерностью
Outer
Базовым элементом является элемент с наибольшей размерностью
ByOrder
Базовым элементом является элемент с определенным индексом (начинается с 1), соответствующим его расположению в списке <Items>
Satisfy
Настройки вычисления значения условия, если в качестве значения хотя бы одного из операндов выступает массив или матрица.
Необязательный тэг. Значение тэга <Satisfy>: не ожидается.
Если тэг <Satisfy> отсутствует, то для атрибутов MinCount и MaxCount используются значения 1 и All соответственно.
<Satisfy MinCount="1" MaxCount="All" />Атрибуты тэга <Satisfy>
<Satisfy>MinCount
Минимальное количество сравнений, удовлетворяющих условию, в соответствии с настройками <Comparison>.
Необязательный атрибут. Ожидается целочисленное значение (от 0) или ключевое слово All.
MaxCount
Максимальное количество сравнений, удовлетворяющих условию, в соответствии с настройками <Comparison>.
Необязательный атрибут. Ожидается целочисленное значение (от 0) или ключевое слово All.
Last updated