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>: любое значение.

DataType

Тип, к которому будут приводиться значения для сравнения.

Необязательный тэг. Значение тэга <DataType>: не ожидается.

Если тэг <DataType> отсутствует, то для атрибута Type используется значение StringDataType.

<DataType Type="DataTypeName" />

Атрибуты тэга <DataType>

Type

Тип данных.

Обязательный атрибут. Значение атрибута Type: название одного из типов данных.

Comparison

Настройки вычисления значения условия, если в качестве значения хотя бы одного из операндов выступает массив или матрица.

Необязательный тэг. Значение тэга <Comparison>: не ожидается.

Если тэг <Comparison> отсутствует, то для атрибута Type используется значение Inner.

Если один из операндов условия - массив или матрица, то для сравнения должен быть выбран базовый элемент из списка <Items>.

Размерность (общее количество элементов массива или матрицы) базового элемента определяет количество сравнений в рамках данного условия.

Если операнд - матрица, то она в рамках условия трансформируется по столбцам в линейный массив.

<Comparison Type="Inner" Order="1" />

Пример

Если в качестве первого <Item> задан массив размерностью 3, а в качестве второго <Item> - массив размерностью 2, базовым элементом для сравнения задан первый <Item>, то в рамках данного условия будут происходить следующие внутренние сравнения:

  1. Item1[1] = Item2[1]

  2. Item1[2] = Item2[2]

  3. Item1[3] = NULL

Если в качестве первого <Item> задана массив размерностью 3, а в качестве второго <Item> - матрица размерностью 2x2, базовым элементом для сравнения задан первый <Item>, то в рамках данного условия будут происходить следующие внутренние сравнения:

  1. Item1[1] = Item2[1,1]

  2. Item1[2] = Item2[2,1]

  3. Item1[3] = Item2[1,2]

Атрибуты тэга <Comparison>

Type

Способ определения базового элемента при сравнении.

Необязательный атрибут. Значение атрибута Type: название одного из способов определения базового элемента при сравнении.

Order

Индекс базового элемента в списке <Items>.

Необязательный атрибут. Ожидается целочисленное значение (от 1 и до количества элементов в списке <Items>).

Способы определения базового элемента при сравнении

Inner

Базовым элементом является элемент с наименьшей размерностью

Outer

Базовым элементом является элемент с наибольшей размерностью

ByOrder

Базовым элементом является элемент с определенным индексом (начинается с 1), соответствующим его расположению в списке <Items>

Satisfy

Настройки вычисления значения условия, если в качестве значения хотя бы одного из операндов выступает массив или матрица.

Необязательный тэг. Значение тэга <Satisfy>: не ожидается.

Если тэг <Satisfy> отсутствует, то для атрибутов MinCount и MaxCount используются значения 1 и All соответственно.

<Satisfy MinCount="1" MaxCount="All" />

Атрибуты тэга <Satisfy>

MinCount

Минимальное количество сравнений, удовлетворяющих условию, в соответствии с настройками <Comparison>.

Необязательный атрибут. Ожидается целочисленное значение (от 0) или ключевое слово All.

MaxCount

Максимальное количество сравнений, удовлетворяющих условию, в соответствии с настройками <Comparison>.

Необязательный атрибут. Ожидается целочисленное значение (от 0) или ключевое слово All.

Last updated