<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
  <xs:simpleType name="ExtendedTable_Events">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OnGetColumnsCount">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при попытке получения количества полей для транспонированной таблицы.
            Правило должно возвращать количество полей.
            Параметров нет.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnGetColumnIndex">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при получении индекса поля.
            Должно вернуть индекс транспонированной графы в виде целого числа на основании значений полей из атрибута columns.
            Параметры:
            Переменное число параметров. Зависит от атрибута columns транспонированной таблицы.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnGetColumnValue">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при получении значения транспонированной графы для обновления исходной таблицы.
            Должно возвращать значение поля.
            Параметры:
            1й параметр - индекс поля.
            2й параметр - наименование поля исходной таблицы для которого надо получить значение.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnLoad">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при загрузке данных из исходной таблицы. Позволяет отфильтровать записи.
            Должно возвратить true (запись надо загрузить) или false (запись загружать не надо).
            Параметры:
            1й параметр - идентификатор производной таблицы.
            2й параметр - идентификатор таблицы-источника из которой будет загружаться запись.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DataTable_Events">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OnCheck">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Не вызывается.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnAdd">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает после добавления записи в таблицу.
            Возвращаемое значение игнорируется.
            Параметры:
            1й параметр - идентификатор таблицы.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnEdit">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает после изменения записи в таблице.
            Возвращаемое значение игнорируется.
            Параметры:
            1й параметр - идентификатор таблицы.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnBeforeDelete">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает до удаления записи в таблице и позволяет отменить удаление.
            Должно вернуть true или null (можно удалять) или false (нельзя удалять).
            Параметры:
            1й параметр - идентификатор таблицы.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnDelete">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает до удаления записи в таблице.
            Возвращаемое значение игнорируется.
            Параметры:
            1й параметр - идентификатор таблицы.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnAfterDelete">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает после удаления записи в таблице.
            Возвращаемое значение игнорируется.
            Параметры:
            1й параметр - идентификатор таблицы.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnAfterDeleteChilds">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает после удаления дочерних записей удаляемой записи в таблице.
            Возвращаемое значение игнорируется.
            Параметры:
            1й параметр - идентификатор таблицы.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnSave">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при сохранении таблицы в результате нажатия кнопки "Сохранить".
            Параметры:
            1й параметр - идентификатор таблицы.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnDeleteDependedRecord">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Срабатывает при удалении записей из датасетов зависящих от датасета из которого производится первичное удаление.
            В момент срабатывания, курсор НЕ находится на удаляемых зависимых записях.
            Должно вернуть true или null (можно удалять записи) или false (нельзя удалять записи).
            Параметры:
            1й параметр - идентификатор таблицы из которой удаляется родительская запись.
            2й параметр - идентификатор таблицы из которой удаляются зависимые записи.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnInsertSQL">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при генерации триггера на вставку записи при работе в режиме БД.
            Должно вернуть текст тела триггера, без скобок BEGIN, END и имени триггера, которые генерируются клиентом.
            Параметры:
            1й параметр - идентификатор таблицы в описании.
            2й параметр - имя таблицы в БД.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnUpdateSQL">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при генерации триггера на обновление записи при работе в режиме БД.
            Должно вернуть текст тела триггера, без скобок BEGIN, END и имени триггера, которые генерируются клиентом.
            Параметры:
            1й параметр - идентификатор таблицы в описании.
            2й параметр - имя таблицы в БД.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnDeleteSQL">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при генерации триггера на удаление записи при работе в режиме БД.
            Должно вернуть текст тела триггера, без скобок BEGIN, END и имени триггера, которые генерируются клиентом.
            Параметры:
            1й параметр - идентификатор таблицы в описании.
            2й параметр - имя таблицы в БД.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  
</xs:schema>