<?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й параметр - значение поля из таблицы-источника с совпадающим ключем.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  
</xs:schema>