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

  <xs:attributeGroup name="GridSheet_Content_Attrs">    
    <xs:attribute name="caption" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Подпись элемента табличного листа.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>    
    <xs:attribute name="width" use="optional" type="xs:positiveInteger">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Ширина элемента табличного листа.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>    
    <xs:attribute name="readonly" use="optional" type="xs:boolean">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Признак "Только для чтения" элемента табличного листа.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  
  <xs:attributeGroup name="GridSheet_View_Attrs">
    
    <xs:attribute name="levelModifier" type="xs:positiveInteger" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Модификатор расчетного атрибута уровня. Воздействует в т.ч. на нижележащие элементы.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="detailKeys" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Имена полей которые будут браться из источника данных табличного листа для сопоставления с полями из атрибута masterKeys.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="masterKeys" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Имена полей из таблиц из атрибута table, которые будут браться для сопоставления с полями из атрибута detailKeys.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:attributeGroup name="GridSheet_TemplateAndView_Attrs">
    <xs:attribute name="nextViewAlwaysInsertRow" use="optional" type="xs:boolean">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Признак того, что указанное представление даже при отсутствии данных взведет флаг, 
          при котором следующее по описанию представление (в рамках этого же уровня) сгенерировать новую строку в источник данных табличного листа
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="table" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Имя таблицы представления
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:attributeGroup name="GridSheet_Template_Attrs">
    <xs:attribute name="id" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Идентификатор шаблона представления. Используется в качестве параметра в событиях.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:attributeGroup name="GridSheet_Column_Attrs">
    <xs:attribute name="columnIndex" use="optional" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Индекс графы перекрывающий присваиваемый по умолчанию по порядку описания
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="name" use="required" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Имя поля таблицы из вышележащего элемента view или template.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="columnName" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Атрибут name графы уже описанной ранее в которую будут записываться данные текущей графы, поверх уже существующих значений.
          Т.о. данная графа не образует отдельного поля в источнике данных табличного листа.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="sortIndex" type="xs:nonNegativeInteger" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Порядок применения сортировки. 0 - самая приоритетная сортировка  и т.д.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="sortOrder" use="optional" type="GridSheet_SortOrderType">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Тип сортировки.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="fixedKind" type="GridSheet_FixedKindType" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Тип фиксирования отображения графы.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="groupIndex" type="xs:nonNegativeInteger" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Индекс группировки.
          Для строк с одинаковым значением графы будет создан соответсвующая групповая строка.
          По умолчанию - -1.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="visible" use="optional" type="xs:boolean" default="false">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Признак видимости графы.
          По умолчанию - true.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="mergeCells" type="xs:boolean" use="optional" default="true">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Признак того надо ли объединять соседние ячейки с одинаковым значением.
          По умолчанию - false.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="dropDownWidth" type="xs:positiveInteger" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Ширина выпадающего списка в редакторе графы, если графа редактирует соответствующее поле.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="align" type="GridSheet_AlignType" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Тип горизонтального выравнивания.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="valign" type="GridSheet_VAlignType" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Тип вертикального выравнивания.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="columnNumber" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Подпись заголовка графы. 
          По умолчанию присваивается индекс в порядке видимости, начиная с 1.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="displayFormat" type="xs:string" use="optional" >
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Формат отображения значений графы.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="errorMessage" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Сообщение об ошибке при нарушении правил стандартной валидации.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="filterRule" type="xs:string" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Название правила осуществляющего фильтрацию связанной таблицы отображаемой в редакторе с выпадающим списком.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="isMergeCells" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Флаг, указывает объединять строки в текущей колонке или нет.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="isCustomMergeCells" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Флаг, указывает объединять строки в текущей колонке или нет, но объединение будет управляться событием в представлении OnMerge.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:attributeGroup name="GridSheet_Content_Editor_Attrs">
    <xs:attribute name="id" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Идентификатор редактора из секции editors
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="canAdd" type="xs:boolean" use="optional" default="true">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Признак того может ли редактор использоваться в списке на добавление.
          По умолчанию - false.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="isDefault" type="xs:boolean" use="optional" default="true">
      <xs:annotation>
        <xs:documentation xml:lang="ru-ru">
          Признак того используется ли редактор по умолчанию при попытке редактирования в рамках указанного элемента табличного листа.
          По умолчанию - false.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  
</xs:schema>
