<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">     

  <xs:simpleType name="SourceAndDataField_Events">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OnInit">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при инициализации поля.
            Должно возвращать начальное значение поля соответствующего типа.
            Параметры:
            1й параметр - идентификатор таблицы.
            2й параметр - наименование поля.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnChange">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при изменении значения поля.
            Возвращаемое значение игнорируется.
            Параметры:
            1й параметр - идентификатор таблицы.
            2й параметр - старое значение.
            3й параметр - новое значение.
            4й параметр - имя поля.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnCheck">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при проверке значения введенного в поле.
            Должно возвращать текст сообщения об ошибке, либо пустую строку при отсутствии ошибок.
            Параметры:
            1й параметр - имя таблицы.
            2й параметр - подпись листа в котором проводится проверка.
            3й параметр - подпись поля ввода в котором проводится проверка (если лист - это лист с полями ввода).
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnGetIsReadOnly">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при получении свойства "Только для чтения".
            Параметры:
            1й параметр - идентификатор поля таблицы.
            2й параметр - значение readonly из описания (или по умолчанию если отсутствует).
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnGetIsRequired">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при получении свойства "Обязательно для заполнения".
            Параметры:
            1й параметр - идентификатор поля таблицы.
            2й параметр - значение isNull из описания (или по умолчанию если отсутствует).
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="CalcField_Events">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OnCalc">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при при расчете значения поля.
            Должно возвратить расчетное значение соответствующего типа.
            Параметры:
            1й параметр - имя таблицы.
            2й параметр - наименование поля.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="OnGetCalcSQL">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при получении скрипта для расчетного поля.
            Должно возвратить текст скрипта для расчета поля в виде Select запроса с использованием имени таблицы в БД.
            Параметры:
            1й параметр - имя таблицы.
            2й параметр - наименование поля.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>  

  <xs:simpleType name="Table_Events">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OnGetIsReadOnly">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает один раз при создании таблицы.
            Должно возвратить true (можно редактировать таблицу) или false (нельзя редактировать таблицу).
            Параметров нет.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ExtendedTable_Field_Events">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OnAggregate">
        <xs:annotation>
          <xs:documentation xml:lang="ru-ru">
            Событие наступает при попытке загрузить значения с совпадающими ключами из исходных таблиц.
            Должно вернуть новое значение для поля производной таблицы.
            При отсутствии события будет производиться простое суммирование числовых полей, для остальных полей будет взято текущее значение в таблице.
            Параметры:
            1й параметр - текущее значение в таблице.
            2й параметр - значение поля из таблицы-источника с совпадающим ключем.
            3й параметр - имя таблицы-приемника (производной).
            4й параметр - имя таблицы-источника.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  
</xs:schema>