ГОСТ Р ИСО/МЭК 26300—2010/Раздел 11

Материал из Викитеки — свободной библиотеки
ГОСТ Р ИСО/МЭК 26300—2010 «Информационная технология. Формат Open Document для офисных приложений (OpenDocument) v1.0» — Раздел 11


11 Содержимое форм[править]

Форма — это контейнер для элементов управления пользовательского интерфейса, с которыми взаимодействует пользователь. Например, кнопки, текстовые поля, переключатели, выпадающие списки — элементы управления, которые могут содержаться в форме. В XML существуют следующие основные правила для элементов управления и форм:

  • все элементы управления должны быть расположены в форме;
  • все нескрытые элементы управления должны быть связаны с абсолютной или относительной позицией, этот визуальный аспект элементов управления представлен графическими фигурами, связанными с элементом управления (см. раздел 9.2.12 для получения дополнительной информации);
  • формы могут быть вложенными;
  • формы не связаны с текстовым потоком и разметкой документа, это не распространяется на элементы управления;
  • формы могут быть привязанными к данным, элементы управления отражают содержимое базы данных.

Формы определяют следующие правила поведения:

  • передача форм подобна использующейся в [HTML4];

Примечание — Передача поддерживается только для невложенных форм, которые содержат только элементы управления, которые могут быть преобразованы в HTML.

  • соединение с источником данных, когда это происходит, элементы управления в форме становятся привязанными к данным;
  • передача и привязка согласно модели данных [XForms].

Формы содержатся в секции <office:forms> XML-документа. Этот элемент может содержать произвольную последовательность элементов <form:form> или <xforms:model>. Обратите внимание на то, что элементы управления всегда объявляются внутри элемента <form:form>, в то время как элемент <xforms:model> содержит только XForms модели данных. Таким образом, элемент <office:forms> может содержать только элементы <form:form>, но не элементы <xforms:model>, в то время как <xforms:model> обычно сопровождается дополнительным элементом <form:form>.

<define name="office-forms">
    <optional>
        <element name="office:forms">
            <ref name="office-forms-attlist"/>
            <zeroOrMore>
                <choice>
                    <ref name="form-form"/>
                    <ref name="xforms-model"/>
                </choice>
            </zeroOrMore>
        </element>
    </optional>
</define>

Для простоты использования (заполнения) форм приложения могут фокусироваться на элементах управления, чтобы пользователь мог немедленно напечатать, внести данные в первый элемент управления. Чтобы достичь такого поведения, флаг form:automatic-focus может иметь значение true.

<define name="office-forms-attlist" combine="interleave">
    <optional>
        <attribute name="form:automatic-focus" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

В приложениях, поддерживающих создание и использование (заполнение) форм, атрибут form:apply-design-mode определяет, предоставляет ли приложение формы в данном документе в доступном для редактирования или заполнения виде.

<define name="office-forms-attlist" combine="interleave">
    <optional>
        <attribute name="form:apply-design-mode" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.1 Форма[править]

Элемент <form:form> представляет форму пользовательского интерфейса и определяет содержание и свойства форм.

Этот элемент содержится или в элементе <office:forms> или в элементе <form:form>. Он также содержит элементы управления, субформы, элемент <form:properties>, который определяет свойства формы, и элемент <office:events-listeners>, содержащий события формы.

<define name="form-form">
    <element name="form:form">
        <ref name="common-form-control-attlist"/>
        <ref name="form-form-attlist"/>
        <optional>
            <ref name="form-properties"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <choice>
                <ref name="controls"/>
                <ref name="form-form"/>
            </choice>
        </zeroOrMore>
        <optional>
            <ref name="form-connection-resource"/>
        </optional>
    </element>
</define>

С элементом <form:form> могут быть связаны следующие атрибуты:

  • имя (см. раздел 11.4);
  • имя службы (см. раздел 11.4);
  • действие;
  • целевой фрейм;
  • метод;
  • тип кодировки;
  • разрешение удаления;
  • разрешение вставки;
  • разрешение обновления;
  • применение фильтра;
  • тип команды;
  • команда;
  • источник данных;
  • мастер-поля;
  • поля деталей;
  • избежать обработку команды;
  • фильтр;
  • игнорирование результата;
  • режим навигации;
  • порядок;
  • циклы табуляции.

11.1.1 Действие[править]

Атрибут xlink:href представляет IRI агента обработки формы.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <value>simple</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate" a:defaultValue="onRequest">
                <value>onRequest</value>
            </attribute>
        </optional>
    </optional>
</define>

11.1.2 Целевой фрейм[править]

Атрибут office:target-frame определяет целевой фрейм формы.

Этот атрибут может иметь одно из следующих значений:

  • _self — форма заменяет содержимое текущего фрейма;
  • _blank — форма открывается в новом фрейме;
  • _parent — форма открывается в родительском фрейме текущего фрейма;
  • _top — форма отображается в самом верхнем фрейме, это фрейм, который содержит текущей фрейм в качестве дочернего, но который не содержится внутри никакого другого фрейма;
  • название фрейма — форма отображается в заданном фрейме, если фрейм с таким именем отсутствует, будет создан новый фрейм с заданным именем.
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="office:target-frame" a:defaultValue="_blank">
            <ref name="targetFrameName"/>
        </attribute>
    </optional>
</define>

11.1.3 Метод[править]

Атрибут form:method определяет HTTP-метод для передачи данных из формы на сервер. Значения этого атрибута могут быть get или post. Значение по умолчанию равно get. Эти значения нечувствительны к регистру.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:method" a:defaultValue="get">
            <choice>
                <value>get</value>
                <value>post</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>

11.1.4 Тип кодировки[править]

Если значение атрибута form:method равно post, то атрибут form:enctype определяет тип содержимого, используемого для отправки содержимого формы на сервер. По умолчанию значение этого атрибута равно application/x-www-form-urlencoded. Другие подходящие MIME-типы также разрешаются.

Для получения дополнительной информации см. § 17.3 [HTML4].

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:enctype"
                    a:defaultValue="application/x-www-form-urlencoded">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.1.5 Разрешение удаления[править]

Атрибут form:allow-deletes определяет, разрешается ли удаление записей данных. Этот атрибут применяется, только если форма связана с данными.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:allow-deletes" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.1.6 Разрешение вставок[править]

Атрибут form:allow-inserts определяет, могут или нет вставляться новые записи данных. Этот атрибут применяется, только если форма связана с данными.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:allow-inserts" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.1.7 Разрешение обновлений[править]

Атрибут form:allow-updates определяет, могут ли изменяться записи данных.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:allow-updates" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.1.8 Применение фильтра[править]

Атрибут form:apply-filter определяет, нужно ли применять фильтр (см. также атрибут фильтра).

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:apply-filter" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.1.9 Тип команды[править]

Атрибут form:command-type определяет тип команды выполняемой над источником данных. Этот атрибут может принимать одно из следующих значений:

  • table — команда содержит имя таблицы, форма извлекает все данные в таблице;
  • query — команда содержит имя запроса, форма извлекает и выполняет запрос;
  • command — команда содержит SQL-выражение, форма выполняет SQL-выражение.
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:command-type" a:defaultValue="command">
            <choice>
                <value>table</value>
                <value>query</value>
                <value>command</value>
            </choice>
        </attribute>
    </optional>
</define>

11.1.10 Команда[править]

Атрибут form:command определяет команду выполняемую над источником данных.

Это значение интерпретируется по разному, в зависимости от значения атрибута типа команды формы. Значение может быть именем таблицы базы данных, именем объекта запроса или SQL-выражения.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:command"/>
    </optional>
</define>

11.1.11 Источник данных[править]

Атрибут form:datasource определяет имя источника данных, используемых для формы.

Этот атрибут может принимать следующие значения:

  • URL, определяющий подключение к базе данных;
  • имя источника данных, которое офисное приложение может использовать для установления соединений с базой данных.
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:datasource">
            <choice>
                <ref name="anyURI"/>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>

11.1.12 Мастер-поля[править]

Атрибут form:master-fields используется для вложенных форм, связанных с данными. Он определяет названия столбцов результирующего набора в родительской форме. Обычно они обозначают поля внешних ключей в родительской форме. Значения столбцов используются для параметризации данных вложенной формы. Каждый раз, когда родительская форма изменяет текущую строку, вложенная форма снова опрашивает базу данных, базируясь на значениях мастер-полей.

Атрибут содержит список названий полей через запятую.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:master-fields">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.1.13 Поля деталей[править]

Атрибут form:detail-fields используется для вложенных форм базы данных. Он определяет названия столбцов во вложенной форме, которые связаны со столбцами в родительской форме. Столбцы используются как параметры в команде вложенной формы для извлечения деталей для подходящей записи мастер-формы.

Атрибут содержит список названий полей через запятую.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:detail-fields">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

Избежать обработку команды[править]

Если значение атрибута form:command-type равно command, атрибут form:escape-processing определяет, может ли приложение выполнять команду до передачи ее драйверу базы данных.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:escape-processing" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.1.15 Фильтр[править]

Атрибут form:filter определяет фильтр для команды, на которой основывается форма. Фильтр всегда добавляется к любому, возможно существующему, фильтру вне зависимости от того, базируется ли форма на query, table или command. Фильтр обычно формирует SQL-выражение типа «WHERE» без ключевого слова «WHERE».

Атрибут form:apply-filter определяет, применяется ли фактически фильтр для команды.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:filter">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.1.16 Игнорирование результата[править]

Атрибут form:ignore-result определяет, отбрасываются ли результаты, которые извлечены из источника данных. Если его значение равно true, форма, связанная с базой данных, отбросит все результаты запросов к базе данных, таким образом, будут доступны только операции вставки и модификации новых данных. По существу, реализуется режим, в котором может быть осуществлена только вставка новых данных в базу данных.

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:ignore-result" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.1.17 Режим навигации[править]

Атрибут form:navigation-mode определяет, как осуществляется навигация по записям базы данных.

Значение этого атрибута может быть одним из следующих:

  • none — специальная навигационная панель не предоставляется пользовательским интерфейсом, навигация по форме осуществляется с использованием клавиши TAB и SHIFT/TAB на клавиатуре;
  • current — специальная навигационная панель предоставляется и осуществляется навигация по текущей формой;
  • parent — специальная навигационная панель предоставляется и осуществляется навигация по родительской форме текущей формы.
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:navigation-mode">
            <ref name="navigation"/>
        </attribute>
    </optional>
</define>

<define name="navigation">
    <choice>
        <value>none</value>
        <value>current</value>
        <value>parent</value>
    </choice>
</define>

11.1.18 Порядок[править]

Атрибут form:order определяет критерий сортировки для команды. Сортировка всегда добавляется к любой, возможно существующей, сортировке вне зависимости от того, базируется ли форма на query, table или command. Значение атрибута обычно формирует SQL-выражение типа «ORDER BY» без ключевого слова «ORDER BY».

<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:order">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.1.19 Цикл табуляции[править]

Атрибут form:tab-cycle определяет, как реагирует приложение на нажатие пользователем клавиши TAB в элементе управления формы. Поведение приложения зависит от того, будет ли форма связана с источником данных.

Этот атрибут может принимать следующие значения:

  • records — если пользователь нажимает клавишу TAB в последнем элементе управления формы, фокус ввода перемещается на первый элемент управления, указанный в списке табуляции этой формы и перемещает форму к следующей записи;
  • current — если пользователь нажимает клавишу TAB в последнем элементе управления формы, фокус ввода перемещается на первый элемент управления, указанный в списке табуляции этой формы, при этом указатель на запись формы не изменяется;
  • page — если пользователь нажимает клавишу TAB в последнем элементе управления формы, фокус ввода перемещается на первый элемент управления, указанный в списке табуляции следующей формы.
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:tab-cycle">
            <ref name="tab-cycles"/>
        </attribute>
    </optional>
</define>
<define name="tab-cycles">
    <choice>
        <value>records</value>
        <value>current</value>
        <value>page</value>
    </choice>
</define>

11.1.20 Ресурс соединения[править]

Элемент <form:connection-resource> определяет источник базы данных в соответствии с [XLink]. Его атрибут xlink:href либо ссылается на файл, содержащий базу данных, либо содержит информацию о том, как произвести соединение с базой данных, например [JDBC] URL.

<define name="form-connection-resource">
    <element name="form:connection-resource">
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <empty/>
    </element>
</define>

11.2 Модель ХForms[править]

Модель формы, описанная в разделе 11.1, реализует модель данных, где каждый элемент управления определяет пару имя — значение, где имя определяется идентификатором элемента, а значение — может редактироваться элементом управления. При этом отсутствует взаимосвязь между элементами управления (для программирования макросов). Для приложений, в которых данный вид форм логически недостаточен, организация W3C ввела XForms (см. [XForms]), стандарт для форм, основанных на XML.

XForms спроектированы для встраивания в другой XML-формат. Он состоит из двух основных частей: модель XForms, которая содержит логику формы и данные формы, и элементы управления XForms, которые могут быть связаны с моделью данных. В OASIS Open Office 1.0 модель W3C XForms была встроена как элемент <xforms:model>, определенный в контейнере формы <office:forms>. Элементы управления (см. раздел 11.3) будут оставлены как есть, за исключением того, что они получают атрибут xforms:bind, который позволяет связать любой элемент управления OpenDocument с ранее описанной моделью XForms.

11.2.1 Модель XForms (импорт)[править]

Импортирована модель XForms, описанная в [XForms]. Для предотвращения появления дубликатов схемы XForms в данной спецификации только определены элементы модели XForms и допущено произвольное содержимое.

<define name="xforms-model">
    <element name="xforms:model">
        <ref name="anyAttListOrElements"/>
    </element>
</define>

11.3 Элементы управления[править]

Элементы управления используются для взаимодействия с формами. Каждый элемент управления определяется именем, однако имена не обязательно должны быть уникальными.

Элементы управления присоединяются к окружающему документу (и если возможно к потоку текста) путем присоединения их к элементам, которые являются полем для заполнения для элемента управления. Для получения подробной информации см. раздел 9.2.12.

В дополнение к атрибутам, определенным в формате файла, элементы управления могут иметь атрибуты, специфические для приложения. Эти атрибуты хранятся в элементе <form:properties> для каждого элемента управления. События элементов управления описываются в элементе <office:event-listeners>.

Когда пользователь отсылает данные формы на обработку, имена некоторых элементов управления спарены со значениями элементов управления, эти пары и передаются. Такие элементы управления называются успешными элементами управления. Для получения подробной информации см. раздел 17.13.2 в [HTML4].

Формат файла предусматривает элементы для следующих стандартных элементов управления:

  • текст;
  • текстовая область;
  • пароль;
  • файл;
  • форматированный текст;
  • число;
  • дата;
  • время;
  • фиксированный текст;
  • поле со списком;
  • список;
  • кнопка;
  • изображение;
  • флажок;
  • радиокнопка;
  • фрейм;
  • графический фрейм;
  • скрытый;
  • сетка.

Также возможно определение элементов управления, специфичных для приложений. Эти элементы управления описываются элементом <form:generic-control>.

11.3.1 Текст[править]

Элемент <form:text> определят элемент управления, предназначенный для отображения и ввода текста.

<define name="column-controls" combine="choice">
  <element name="form:text">
    <ref name="form-text-attlist"/>
    <ref name="common-form-control-content"/>
  </element>
</define>
<define name="controls" combine="choice">
    <ref name="column-controls"/>
</define>
<define name="form-text-attlist">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
</define>
<define name="form-control-attlist">
    <ref name="common-form-control-attlist"/>
    <ref name="common-control-id-attlist"/>
    <ref name="xforms-bind-attlist"/>
</define>
<define name="common-form-control-content">
    <optional>
        <ref name="form-properties"/>
    </optional>
    <optional>
        <ref name="office-event-listeners"/>
    </optional>
</define>

С элементом <form:text> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, текущее значение, запрещен, максимальная длина, возможность печати, только для чтения, индекс табуляции, остановка табуляции, заголовок и значение (для получения подробной информации об этих атрибутах см. 11.5);
  • преобразование пустого значения и поле данных (для получения подробной информации об этих атрибутах см. раздел 11.5.22).

11.3.2 Текстовая область[править]

Элемент <form:textarea> определяет элемент управления для отображения и ввода многострочного текста.

Элемент <form:textarea> может использоваться с простыми текстовыми значениями (определенных атрибутом form:current-value) так же, как и с форматированным текстом (определенным как содержимое абзаца). В обоих случаях, когда form:current-value и один или больше <text:p> элементов присутствуют, на приложение, считывающее документ, возлагается решение, какую информацию использовать.

<define name="column-controls" combine="choice">
    <element name="form:textarea">
        <ref name="form-textarea-attlist"/>
        <ref name="common-form-control-content"/>
        <zeroOrMore>
            <ref name="text-p"/>
        </zeroOrMore>
    </element>
</define>
<define name="form-textarea-attlist">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
</define>

С элементом <form:textarea> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения более подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, текущее значение, запрещен, максимальная длина, возможность печати, индекс табуляции, остановка табуляции, заголовок и значение (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • преобразование пустого значения и поле данных (для получения подробной информации об этих атрибутах см. раздел 11.5.22).

11.3.3 Пароль[править]

Элемент <form:password> определяет элемент управления, который скрывает вводимый пользователем текст, используя специальный символ, например, звездочка. Этот тип элемента управления обычно используется для ввода важной информации, такой как пароль.

<define name="controls" combine="choice">
    <element name="form:password">
        <ref name="form-password-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-password-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
</define>

С элементом <form:password> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, запрещен, максимальная длина, возможность печати, индекс табуляции, остановка табуляции, заголовок и значение (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • отображаемый символ.
Отображаемый символ[править]

Атрибут form:echo-char определяет символ, используемый формой для маскировки текста, который вводит пользователь в элемент управления типа пароль.

<define name="form-password-attlist" combine="interleave">
    <optional>
        <attribute name="form:echo-char" a:defaultValue="*">
            <ref name="character"/>
        </attribute>
    </optional>
</define>

11.3.4 Файл[править]

Элемент <form:file> определяет элемент управления для выбора файла.

<define name="controls" combine="choice">
    <element name="form:file">
        <ref name="form-file-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-file-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
</define>

С элементом <form:file> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения более подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, текущее значение, запрещен, возможность печати, только для чтения, индекс табуляции, остановка табуляции, заголовок и значение (для получения подробной информации об этих атрибутах см. раздел 11.5).

11.3.5 Форматированный текст[править]

Элемент <form:formatted-text> определяет элемент управления для ввода форматированного текста, который позволяет осуществлять форматирование и для отображения, и для редактирования.

<define name="column-controls" combine="choice">
    <element name="form:formatted-text">
        <ref name="form-formatted-text-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-formatted-text-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
</define>

С элементом <form:formatted-text> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, текущее значение, запрещен, максимальная длина, возможность печати, только для чтения, индекс табуляции, остановка табуляции, заголовок и значение (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • преобразование пустого значения и поле данных (для получения подробной информации об этих атрибутах см. раздел 11.5.22);
  • максимальное значение;
  • минимальное значение;
  • проверка.
Максимальное значение[править]

Атрибут form:max-value определяет максимальное значение, которое может ввести пользователь.

<define name="form-formatted-text-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Минимальное значение[править]

Атрибут form:min-value определяет минимальное значение, которое может ввести пользователь.

<define name="form-formatted-text-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Проверка[править]

Атрибут form:validation определяет, будет ли текст, вводимый пользователем, проверяться во время ввода.

<define name="form-formatted-text-attlist" combine="interleave">
    <optional>
        <attribute name="form:validation" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.3.6 Число[править]

Элемент <form:number> описывает элемент управления, который позволяет пользователю вводить числа с плавающей запятой. Атрибуты, которые могут быть связаны с этим элементом управления, схожи с атрибутами элемента <form:formatted-text> за исключением того, что могут использоваться только числовые типы данных.

<define name="column-controls" combine="choice">
    <element name="form:number">
        <ref name="form-number-attlist"/>
        <ref name="common-numeric-control-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="common-numeric-control-attlist">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
</define>

С элементом <form:number> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, запрещен, максимальная длина, возможность печати, только для чтения, индекс табуляции, остановка табуляции, заголовок и значение (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • преобразование пустого значения и поле данных (для получения подробной информации об этих атрибутах см. раздел 11.5.22);
  • значение и текущее значение;
  • минимальное и максимальное значение.
Значение[править]

Атрибуты для значения и текущего значения общие, схожи для всех полей, за исключением того, что они могут использоваться только с данными с плавающей точкой.

<define name="form-number-attlist" combine="interleave">
    <optional>
        <attribute name="form:value">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="form-number-attlist" combine="interleave">
    <optional>
        <attribute name="form:current-value">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
Минимум и максимум[править]

Атрибуты для минимального и максимального значения определяют наименьшее и наибольшее числовое значения, которые применимы для данного элемента управления.

<define name="form-number-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="form-number-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="double"/>
        </attribute>
    </optional>
</define>

11.3.7 Дата и время[править]

Элементы управления для даты и времени схожи с числовыми, за исключением того, что в них используются значения даты и времени соответственно. Они поддерживают те же атрибуты, что и числовые поля, за исключением атрибутов, отвечающих за разные типы данных.

<define name="column-controls" combine="choice">
    <element name="form:date">
        <ref name="form-date-attlist"/>
        <ref name="common-numeric-control-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="controls" combine="choice">
    <element name="form:time">
        <ref name="form-time-attlist"/>
        <ref name="common-numeric-control-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>

С элементами <form:date> и <form:time> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, запрещен, максимальная длина, возможность печати, только для чтения, индекс табуляции, остановка табуляции, заголовок и значение (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • преобразование пустого значения и поле данных (для получения подробной информации об этих атрибутах см. раздел 11.5.22);
  • значение и текущее значение;
  • минимальное и максимальное значения.
Значение[править]

Атрибуты для значения и текущего значения схожи с атрибутами для <form:number>, за исключением того, что они могут содержать только дату или время соответственно.

<define name="form-date-attlist" combine="interleave">
    <optional>
        <attribute name="form:value">
            <ref name="date"/>
        </attribute>
    </optional>
</define>
<define name="form-time-attlist" combine="interleave">
    <optional>
        <attribute name="form:value">
            <ref name="time"/>
        </attribute>
    </optional>
</define>
<define name="form-date-attlist" combine="interleave">
    <optional>
        <attribute name="form:current-value">
            <ref name="date"/>
        </attribute>
    </optional>
</define>
<define name="form-time-attlist" combine="interleave">
    <optional>
        <attribute name="form:current-value">
            <ref name="time"/>
        </attribute>
    </optional>
</define>
Минимум и максимум[править]

Атрибуты для минимального и максимального значения определяют наименьшую и наибольшую дату (или время), которые применимы для данного элемента управления.

<define name="form-date-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="date"/>
        </attribute>
    </optional>
</define>
<define name="form-time-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="time"/>
        </attribute>
    </optional>
</define>
<define name="form-date-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="date"/>
        </attribute>
    </optional>
</define>
<define name="form-time-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="time"/>
        </attribute>
    </optional>
</define>

11.3.8 Фиксированный текст[править]

Элемент <form:fixed-text> описывает элемент управления, который устанавливает дополнительную информацию для элементов управления или только передают информацию в приложение. Связь между метками и отмеченными элементами управления может быть установлена определением атрибута form:for для метки. Только одна метка может быть связана с данным элементом управления.

<define name="controls" combine="choice">
    <element name="form:fixed-text">
        <ref name="form-fixed-text-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-fixed-text-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="for"/>
    <ref name="common-disabled-attlist"/>
    <ref name="label"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-title-attlist"/>
</define>

С элементом <form:fixed-text> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, запрещен, для, метка, возможность печати, заголовок (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • многострочность.
Многострочность[править]

Атрибут form:multi-line определяет, отображается ли текстовая метка в несколько строк.

<define name="form-fixed-text-attlist" combine="interleave">
    <optional>
        <attribute name="form:multi-line" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.3.9 Поле со списком[править]

Элемент <form:combobox> описывает элемент управления, который позволяет отображать и редактировать текст, а также содержит список возможных значений текста.

<define name="column-controls" combine="choice">
    <element name="form:combobox">
        <ref name="form-combobox-attlist"/>
        <ref name="common-form-control-content"/>
        <zeroOrMore>
            <ref name="form-item"/>
        </zeroOrMore>
    </element>
</define>
<define name="form-combobox-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="dropdown"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="size"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
    <ref name="list-source"/>
    <ref name="list-source-type"/>
</define>

С элементом <form:combobox> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, текущее значение, запрещен, выпадающий список, максимальная длина, возможность печати, только для чтения, размер, индекс табуляции, остановка табуляции, заголовок и значение (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • преобразование пустого значения, поле данных, список-источник, тип списка-источника (для получения подробной информации об этих атрибутах см. раздел 11.5.22);
  • автоматическое дополнение.
Автоматическое дополнение[править]

Атрибут form:auto-complete определяет, будет ли автоматически дополняться текст из списка во время набора пользователем при совпадении начальных символов.

<define name="form-combobox-attlist" combine="interleave">
    <optional>
        <attribute name="form:auto-complete">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Пункт[править]

Элемент <form:item> описывает пункт списка для элемента управления поле со списком.

<define name="form-item">
    <element name="form:item">
        <ref name="form-item-attlist"/>
        <text/>
    </element>
</define>
<define name="form-item-attlist" combine="interleave">
    <ref name="label"/>
</define>

С элементом <form:item> может быть связан следующий атрибут:

  • метка (для получения подробной информации об этом атрибуте см. раздел 11.5).

11.3.10 Список[править]

Элемент <form:listbox> описывает элемент управления ввода, который позволяет пользователю выбирать один или несколько элементов из списка. Это альтернативное представление группы радиокнопок.

<define name="column-controls" combine="choice">
    <element name="form:listbox">
        <ref name="form-listbox-attlist"/>
        <ref name="common-form-control-content"/>
        <zeroOrMore>
            <ref name="form-option"/>
        </zeroOrMore>
    </element>
</define>
<define name="form-listbox-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="dropdown"/>
    <ref name="common-printable-attlist"/>
    <ref name="size"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="bound-column"/>
    <ref name="common-data-field-attlist"/>
    <ref name="list-source"/>
    <ref name="list-source-type"/>
</define>

С элементом <form:listbox> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения подробной информации об этих атрибутах см. раздел 11.4);
  • идентификатор элемента управления, запрещен, выпадающий список, возможность печати, только для чтения, размер, индекс табуляции, остановка табуляции, заголовок (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • колонка обрамления, поле данных, список-источник, тип списка-источника (для получения подробной информации об этих атрибутах см. раздел 11.5.22);
  • несколько пунктов;
  • источник XForms.
Несколько пунктов[править]

Атрибут form:multiple определяет, имеет ли пользователь возможность выбрать несколько пунктов в блоке списка.

<define name="form-listbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:multiple" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Источник XForms[править]

Атрибут form:xforms-list-source позволяет динамически создавать список для выбора путем связывания содержимого блока списка с XForms (см. раздел 11.2, [XForms]). Атрибут ссылается на элемент <xforms:bind> и создает объект списка для каждой записи в наборе данных, определенном этим атрибутом.

<define name="form-listbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:xforms-list-source">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Выбор[править]

Элемент <form:option> представляет пункты для списка. Один из пунктов может быть выбран заранее и содержать связанное значение.

<define name="form-option">
    <element name="form:option">
        <ref name="form-option-attlist"/>
        <text/>
    </element>
</define>
<define name="form-option-attlist" combine="interleave">
    <ref name="current-selected"/>
    <ref name="selected"/>
    <ref name="label"/>
    <ref name="common-value-attlist"/>
</define>

С элементом <form:option> могут быть связаны следующие атрибуты:

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

11.3.11 Кнопка[править]

Элемент <form:button> определяет кнопку. Обычно нажатие кнопки вызывает некоторое действие.

<define name="controls" combine="choice">
    <element name="form:button">
        <ref name="form-button-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-button-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="button-type"/>
    <ref name="common-disabled-attlist"/>
    <ref name="label"/>
    <ref name="image-data"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="target-frame"/>
    <ref name="target-location"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-form-relative-image-position-attlist"/>
</define>

С элементом <form:button> могут быть связаны следующие атрибуты:

  • имя и имя службы (для получения подробной информации об этих атрибутах см. раздел 11.4);
  • тип кнопки, идентификатор элемента управления, запрещен, изображение, возможность печати, индекс табуляции, остановка табуляции, целевой фрейм, целевой адрес, заголовок, значение, относительное расположение изображения (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • кнопка по умолчанию;
  • переключение;
  • фокусировать по щелчку;
  • отправка XForms.
Кнопка по умолчанию[править]

Атрибут form:default-button определяет, является ли кнопка кнопкой формы по умолчанию. Если пользователь щелкает на кнопке по умолчанию или нажимает «Ввод» в то время, как элемент управления находится в фокусе, приложение выполняет одинаковые действия.

Если форма содержит более одной кнопки по умолчанию, то поведение приложения не определяется.

<define name="form-button-attlist" combine="interleave">
    <optional>
        <attribute name="form:default-button" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Переключение[править]

Атрибут form:toggle определяет, переключается ли кнопка между состояниями «нажата» и «не нажата» при воздействии на нее (посредством мыши или клавиатуры). Если этот атрибут установлен в false, элемент управления кнопка ведет себя подобно обыкновенной кнопке.

<define name="form-button-attlist" combine="interleave">
    <optional>
        <attribute name="form:toggle" a:default-value="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Фокусировать по щелчку[править]

Атрибут form:focus-on-click определяет, должен ли элемент управления кнопка при щелчке мышью на нем захватывать фокус ввода.

<define name="form-button-attlist" combine="interleave">
    <optional>
        <attribute name="form:focus-on-click">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Отправка XForms[править]

Кнопки могут использоваться для отправки XForms посредством добавления атрибута form:xforms-submission. Если такая кнопка инициируется, выполняется определенная ранее отправка XForms с заданным именем.

<define name="form-button-attlist" combine="interleave">
    <optional>
        <attribute name="form:xforms-submission">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.3.12 Изображение[править]

Элемент <form:image> определяет графический элемент управления «кнопка». Этот элемент соответствует элементу ввода типа «изображение» в HTML 4.01. Обратите внимание: HTML 4.01 позволяет типу кнопки быть только типом отправки для кнопки-изображения. В формате файлов офисных приложений кнопка-изображение может быть любого типа.

<define name="controls" combine="choice">
    <element name="form:image">
        <ref name="form-image-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-image-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="button-type"/>
    <ref name="common-disabled-attlist"/>
    <ref name="image-data"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="target-frame"/>
    <ref name="target-location"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
</define>

С элементом <form:image> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах);
  • тип кнопки, идентификатор управляющего элемента, изображение, индекс табуляции, остановка табуляции, возможность печати, целевой фрейм, целевой адрес, заголовок, значение (для получения подробной информации об этих атрибутах см. раздел 11.5).

11.3.13 Флажок[править]

Элемент <form:checkbox> определяет элемент управления, который может переключаться пользователем. Элемент управления находится во включенном состоянии, когда атрибут form:current-state, связанный с элементом управления, имеет значение checked. Когда пользователь отправляет форму, в качестве выбранных рассматриваются только элементы управления, имеющее состояние checked.

<define name="column-controls" combine="choice">
    <element name="form:checkbox">
        <ref name="form-checkbox-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-checkbox-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="label"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-data-field-attlist"/>
    <ref name="common-form-visual-effect-attlist"/>
    <ref name="common-form-relative-image-position-attlist"/>
</define>

С элементом <form:checkbox> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах);
  • идентификатор управляющего элемента, запрещен, метка, вывод на печать, индекс табуляции, остановка табуляции, заголовок, значение, визуальный эффект и относительное размещение изображения (для получения подробной информации об этих атрибутах см. раздел 11.5).
  • поле данных (для получения информации об этом атрибуте см. раздел 11.5.22);.
  • текущее состояние;
  • с тремя состояниями;
  • состояние.
Текущее состояние[править]

Атрибут form:current-state определяет текущее состояние элемента управления флажок.

Атрибут может принимать одно из следующих значений:

  • unchecked — флажок не установлен;
  • checked — флажок установлен, значение элемента управления передается с формой;
  • unknown — это значение доступно только в том случае, когда элемент управления находится в режиме с тремя состояниями (см. атрибут «С тремя состояниями»), это значение может использоваться, например, при соединении с полем базы данных для обозначения значения NULL.
<define name="states">
    <choice>
        <value>unchecked</value>
        <value>checked</value>
        <value>unknown</value>
    </choice>
</define>
<define name="form-checkbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:current-state">
            <ref name="states"/>
        </attribute>
    </optional>
</define>
С тремя состояниями[править]

Атрибут form:is-tristate определяет, что флажок может иметь три состояния вместо обычных двух.

<define name="form-checkbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:is-tristate" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Состояние[править]

Атрибут form:state определяет состояние элемента управления флажок по умолчанию. Это состоянии используется при инициализации объекта управления.

<define name="form-checkbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:state" a:defaultValue="unchecked">
            <ref name="states"/>
        </attribute>
    </optional>
</define>

11.3.14 Радиокнопка[править]

Элемент <form:radio> определяет элемент управления, который функционирует подобно флажку за исключением того, что когда несколько радиокнопок разделяют одно имя элемента управления, они являются взаимно исключающими. Если одна радиокнопка включена, то все остальные радиокнопки с таким же именем выключены. Если в исходном состоянии нет включенных радиокнопок, то способ выбора приложением радиокнопки, включенной в исходном состоянии, не определяется.

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

<define name="controls" combine="choice">
    <element name="form:radio">
        <ref name="form-radio-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-radio-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="current-selected"/>
    <ref name="common-disabled-attlist"/>
    <ref name="label"/>
    <ref name="common-printable-attlist"/>
    <ref name="selected"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-data-field-attlist"/>
    <ref name="common-form-visual-effect-attlist"/>
    <ref name="common-form-relative-image-position-attlist"/>
</define>

С элементом <form:radio> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах);
  • идентификатор управляющего элемента, текущий выбор, запрещен, метка, вывод на печать, выбор, индекс табуляции, остановка табуляции, заголовок, значение, визуальный эффект, относительное расположение изображения (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • поле данных (для получения информации об этом атрибуте см. раздел 11.5.22).

11.3.15 Фрейм[править]

Элемент <form:frame> определяет фрейм, который может использоваться для визуального расположения элементов управления. Этот элемент не имеет значения и не обеспечивает ввода информации пользователем.

<define name="controls" combine="choice">
    <element name="form:frame">
        <ref name="form-frame-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-frame-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="for"/>
    <ref name="label"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-title-attlist"/>
</define>

С элементом <form:frame> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах);
  • идентификатор управляющего элемента, запрещен, для, метка, вывод на печать, заголовок (для получения подробной информации об этих атрибутах см. раздел 11.5).

11.3.16 Фрейм изображения[править]

Элемент <form:image-frame> определяет графический элемент управления. Элемент управления отображает изображение, расположение которого указано в элементе управления.

<define name="controls" combine="choice">
    <element name="form:image-frame">
        <ref name="form-image-frame-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-image-frame-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="image-data"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-data-field-attlist"/>
</define>

С элементом <form:image-frame> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах);
  • идентификатор управляющего элемента, запрещен, изображение, вывод на печать, только для чтения, заголовок (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • поле данных (для получения информации об этом атрибуте см. раздел 11.5.22).

11.3.17 Скрытый элемент[править]

Элемент <form:hidden> определяет элемент управления, не имеющий визуального представления. Этот элемент обычно используется как контейнер для информации.

<define name="controls" combine="choice">
  <element name="form:hidden">
    <ref name="form-hidden-attlist"/>
    <ref name="common-form-control-content"/>
  </element>
</define>
<define name="form-hidden-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-value-attlist"/>
</define>

С элементом <form:hidden> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах);
  • значение (для получения подробной информации об этом атрибуте см. раздел 11.5).

11.3.18 Сетка[править]

Элемент <form:grid> определяет элемент управления, отображающий табличные данные. Этот элемент управления хранит информацию о данных и является обязательным для форм, получающих данные из источников данных. Текущие данные для отображения в элементе управления «сетка» определяются родительской формой, которая хранит информацию о данных в виде набора некоторого количества строк.

Каждый столбец в сетке определяется элементом <form:column>. Каждый столбец связан с полем набора строк формы.

<define name="controls" combine="choice">
    <element name="form:grid">
        <ref name="form-grid-attlist"/>
        <ref name="common-form-control-content"/>
        <zeroOrMore>
            <ref name="form-column"/>
        </zeroOrMore>
    </element>
</define>
<define name="form-grid-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
</define>

С элементом <form:grid> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах);
  • идентификатор управляющего элемента, запрещен, вывод на печать, индекс табуляции, остановка табуляции, заголовок (для получения подробной информации об этих атрибутах см. раздел 11.5).
Столбец[править]

Элемент <form:column> определяет столбец элемента управления сетка. Столбец содержит элемент управления, отображающий данные сетки в столбце.

<define name="form-column">
    <element name="form:column">
        <ref name="form-column-attlist"/>
        <oneOrMore>
            <ref name="column-controls"/>
        </oneOrMore>
    </element>
</define>
<define name="form-column-attlist" combine="interleave">
    <ref name="common-form-control-attlist"/>
    <ref name="label"/>
    <ref name="text-style-name"/>
</define>

С элементом <form:column> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах);
  • легенда (для получения подробной информации об этом атрибуте см. раздел 11.5);
  • стиль столбца.
Стиль столбца[править]

Атрибут form:text-style-name определяет стиль абзаца, применяемый ко всем элементам управления в столбце (см. также раздел 9.2.12). В отличие от других стилей абзацев этот стиль может ссылаться на стиль данных.

<define name="text-style-name">
    <optional>
        <attribute name="form:text-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>

11.3.19 Диапазон значений[править]

Новый элемент <form:value-range> определяет элемент управления, позволяющий пользователю выбирать значение из последовательного диапазона чисел. Возможные представления включают полосы прокрутки и счетчики.

<define name="controls" combine="choice">
    <element name="form:value-range">
        <ref name="form-value-range-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-value-range-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
</define>

С элементом <form:value-range> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах);
  • идентификатор управляющего элемента, текущее значение, запрещен, вывод на печать, только для чтения, индекс табуляции, остановка табуляции, заголовок, значение (для получения подробной информации об этих атрибутах см. раздел 11.5);
  • максимальное значение;
  • минимальное значение;
  • размер шага;
  • размер страничного шага;
  • задержка повтора;
  • ориентация.
Максимальное значение[править]

Атрибут form:max-value определяет максимальное значение, которое может ввести пользователь.

<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Минимальное значение[править]

Атрибут form:min-value определяет минимальное значение, которое может ввести пользователь.

<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Размер шага[править]

Атрибут form:step-size определяет величину шага, которая будет использоваться элементом управления, представляющим значение.

<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:step-size" a:defaultName="1">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
Размер шага страницы[править]

Атрибут form:page-step-size определяет величину шага второго уровня, который будет использоваться элементом управления, представляющим значение. В пользовательском интерфейсе он обычно связывается с нажатием пользователем клавиш «Page Up» или «Page Down».

<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:page-step-size">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
Задержка повтора[править]

Атрибут form:delay-for-repeat определяет интервал времени, по истечению которого удерживание нажатой кнопки мыши приведет к повторению действия.

<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:delay-for-repeat">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>
Ориентация[править]

Атрибут form:orientation определяет ориентацию элемента управления, которая может быть горизонтальной или вертикальной.

<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:orientation">
            <choice>
                <value>horizontal</value>
                <value>vertical</value>
            </choice>
        </attribute>
    </optional>
</define>

11.3.20 Базовый элемент управления[править]

Элемент <form:generic-control> определяет наполнение базового элемента управления. Базовый элемент управления может содержать любые свойства и любые события. Приложение определяет тип элемента управления и устанавливает соответствующий элемент управления.

<define name="controls" combine="choice">
    <element name="form:generic-control">
        <ref name="form-generic-control-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-generic-control-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
</define>

С элементом <form:generic-control> могут быть связаны следующие атрибуты:

  • имя и имя службы (см. раздел 11.4 для получения информации об этих атрибутах).

11.4 Общие атрибуты элементов управления и форм[править]

11.4.1 Имя[править]

Атрибут form:name определяет имя формы или элемента управления. Он может использоваться для получения идентификатора формы или элемента управления, что важно для обработки скриптами и для отправки содержимого элементам управления.

<define name="common-form-control-attlist" combine="interleave">
    <optional>
        <attribute name="form:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.4.2 Реализация элемента управления[править]

Элемент управления может быть задан атрибутом типа элемент управления, определяющим, какую конкретную обработку или реализацию должен поддерживать агент пользователя. Для простоты расширяемости значение этого атрибута является токен с пространством имен, т. е. это токен, использующий префикс пространства имен, более похожий на атрибуты в XML.

<define name="common-form-control-attlist" combine="interleave">
    <optional>
        <attribute name="form:control-implementation">
            <ref name="namespacedToken"/>
        </attribute>
    </optional>
</define>

11.4.3 Привязка к XForms[править]

Любой элемент управления может быть связан с XForms формой (см. раздел 11.2, а также [XForms]) атрибутом xforms:bind. Для кнопок атрибут привязки ссылается на элемент <xforms:submission> с заданным идентификатором. Нажатие кнопки приводит к выполнению соответствующего действия отправки XForms. Для всех других типов элементов управления атрибут xforms:bind ссылается на элемент <xforms:bind> с заданным идентификатором. Такой связанный элемент управления читает и записывает данные, как определено соответствующим элементом привязки.

<define name="xforms-bind-attlist">
    <optional>
        <attribute name="xforms:bind">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.5 Общие атрибуты элементов управления[править]

11.5.1 Тип кнопки[править]

Атрибут form:button-type определяет тип кнопки. Этот атрибут поддерживается следующими элементами:

  • <form:button>
  • <form:image>

Атрибут может принимать следующие значения:

  • submit — нажатие кнопки отправляет форму;
  • reset — нажатие кнопки сбрасывает все элементы управления формы в их значение по умолчанию;
  • push — нажатие кнопки не приводит к выполнению каких-либо действий по умолчанию, используется для возможности назначения кнопке скрипта, при нажатии кнопки запускается выполнение скрипта;
  • url — нажатие кнопки приводит к загрузке URL, определенного в атрибуте form:target-url.
<define name="types">
    <choice>
        <value>submit</value>
        <value>reset</value>
        <value>push</value>
        <value>url</value>
    </choice>
</define>
<define name="button-type">
    <optional>
        <attribute name="form:button-type" a:defaultValue="push">
            <ref name="types"/>
        </attribute>
    </optional>
</define>

11.5.2 Идентификатор элемента управления[править]

Все элементы управления, за исключением скрытых, имеют визуальное представление в родительском документе. Поэтому они нуждаются в определении абсолютного или относительного положения, описывающего их размещение в документе. Положение представляется фигурой, которая содержит ссылку на элемент управления в элементе формы.

Атрибут form:id используется для однозначной идентификации элемента управления. Каждый нескрытый элемент управления должен иметь такой связанный с ним атрибут, который может быть использован для ссылки на элемент управления.

Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:password>
  • <form:file>
  • <form:formatted-text>
  • <form:fixed-text>
  • <form:combobox>
  • <form:listbox>
  • <form:button>
  • <form:image>
  • <form:checkbox>
  • <form:radio>
  • <form:frame>
  • <form:image-frame>
  • <form:grid>
<define name="common-control-id-attlist">
    <attribute name="form:id">
        <ref name="ID"/>
    </attribute>
</define>

11.5.3 Текущий выбор[править]

Атрибут form:current-selected определяет текущее состояние переключателя или блок списка.

Этот атрибут поддерживается следующими элементами:

  • <form:option>
  • <form:radio>
<define name="current-selected">
    <optional>
        <attribute name="form:current-selected" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.5.4 Значение и текущее значение[править]

Каждый элемент управления имеет значение по умолчанию и текущее значение. Текущее значение меняется действиями пользователя, значение по умолчанию — нет. Значение по умолчанию определяется атрибутом form:value.

Значение по умолчанию используется при возникновении специальных событий, таких как сброс формы, которые меняют текущее значение элемента управления на его значение по умолчанию. Если элемент управления не имеет значения по умолчанию, результат сброса формы не определен.

Кроме хранения текущего значения вместе с элементом управления, также возможно связывать элементы управления с другими поставщиками значений, которые работают как приемники и источники данных, как например, поля базы данных (в формах, хранящих информацию о данных) или, например, ячейки в документе электронных таблиц. В этом случае текущее значение хранится не в самом элементе управления, а во внешней связи, которая может хранить или не хранить его вместе с документом. Для получения большей информации о свойствах баз данных см. раздел 11.5.22.

Значение по умолчанию[править]

Атрибут form:value определяет значение элемента управления ввода по умолчанию.

Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:password>
  • <form:file>
  • <form:formatted-text>
  • <form:combobox>
  • <form:option>
  • <form:button>
  • <form:image>
  • <form:checkbox>
  • <form:radio>
  • <form:hidden>
<define name="common-value-attlist">
  <optional>
    <attribute name="form:value">
    <ref name="string"/>
    </attribute>
  </optional>
</define>
Текущее значение[править]

Атрибут form:current-value определяет текущее состояние элемента управления ввода. Он перекрывает значение атрибута form:value, если он представлен.

Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:file>
  • <form:formatted-text>
  • <form:combobox>
<define name="common-current-value-attlist">
    <optional>
        <attribute name="form:current-value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.5.5 Запрещен[править]

Атрибут form:disabled определяет, доступен ли элемент управления пользователю для ввода. Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:password>
  • <form:file>
  • <form:formatted-text>
  • <form:fixed-text>
  • <form:combobox>
  • <form:listbox>
  • <form:button>
  • <form:image>
  • <form:checkbox>
  • <form:radio>
  • <form:frame>
  • <form:image-frame>
  • <form:grid>

Запрещенные элементы управления не включаются в последовательность навигации табуляцией и не могут получать фокус ввода.

<define name="common-disabled-attlist">
    <optional>
        <attribute name="form:disabled" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.5.6 Выпадающий список[править]

Атрибут form:dropdown определяет, будет ли список в поле со списком или в списке видимым всегда или видимым, только когда пользователь нажимает на кнопку раскрытия списка.

Этот атрибут поддерживается следующими элементами:

  • <form:combobox>
  • <form:listbox>

Если его значение true, список всегда видим. Если значение false, список виден только когда пользователь нажимает кнопку раскрытия списка.

<define name="dropdown">
    <optional>
        <attribute name="form:dropdown" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.5.7 Для[править]

Атрибут form:for определяет идентификаторы элементов управления, с которыми связан данный элемент управления.

Этот атрибут поддерживается следующими элементами:

  • <form:fixed-text>
  • <form:frame>

Атрибут использует запятую в качестве разделителя в списке идентификаторов элементов управления.

<define name="for">
    <optional>
        <attribute name="form:for">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.5.8 Изображение[править]

Атрибут form:image-data связывает элемент управления с внешним файлом, содержащим изображение.

Этот атрибут поддерживается следующими элементами:

  • <form:button>
  • <form:image>
  • <form:image-frame>
<define name="image-data">
    <optional>
        <attribute name="form:image-data">
            <ref name="anyURI"/>
        </attribute>
    </optional>
</define>

11.5.9 Метка[править]

Атрибут form:label содержит метку для таких элементов управления как кнопка переключателя или флажка.

Этот атрибут поддерживается следующими элементами:

  • <form:fixed-text>
  • <form:item>
  • <form:option>
  • <form:checkbox>
  • <form:radio>
  • <form:frame>
  • <form:column>
<define name="label">
    <optional>
        <attribute name="form:label">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

11.5.10 Максимальная длина[править]

Атрибут form:max-length определяет максимальное число символов, которые пользователь может ввести в элементы управления, предназначенные для ввода.

Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:password>
  • <form:formatted-text>
  • <form:combobox>

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

<define name="common-maxlength-attlist">
    <optional>
        <attribute name="form:max-length">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>

11.5.11 Возможность печати[править]

Атрибут form:printable определяет, возможно ли распечатать элемент управления, когда пользователь печатает документ, содержащий элемент управления.

Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:password>
  • <form:file>
  • <form:formatted-text>
  • <form:fixed-text>
  • <form:combobox>
  • <form:listbox>
  • <form:button>
  • <form:image>
  • <form:checkbox>
  • <form:radio>
  • <form:frame>
  • <form:image-frame>
  • <form:grid>
<define name="common-printable-attlist">
    <optional>
        <attribute name="form:printable" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.5.12 Только для чтения[править]

Атрибут form:readonly определяет, может ли пользователь изменять значение элемента управления.

Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:file>
  • <form:formatted-text>
  • <form:combobox>
  • <form:listbox>
  • <form:image-frame>

Элементы управления только для чтения включены в последовательность навигации по клавише TAB.

<define name="common-readonly-attlist">
    <optional>
        <attribute name="form:readonly" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.5.13 Выбранный[править]

Атрибут form:selected определяет состояние по умолчанию для кнопок переключения или опций. Когда элемент управления инициализирован, он находится в состоянии по умолчанию, определенном его атрибутом.

Этот атрибут поддерживается следующими элементами:

  • <form:option>
  • <form:radio>

В группе переключателей с одинаковыми именами только один переключатель может иметь этот атрибут, установленный в значение true.

<define name="selected">
    <optional>
        <attribute name="form:selected" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.5.14 Размер[править]

Атрибут form:size определяет число строк, которые одновременно видны в поле со списком или в списке.

Этот атрибут поддерживается следующими элементами:

  • <form:combobox>
  • <form:listbox>
<define name="size">
    <optional>
        <attribute name="form:size">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>

11.5.15 Индекс табуляции[править]

Атрибут form:tab-index определяет порядок навигации по клавише TAB между элементами управления формы. Порядок табуляции является порядком, в котором элементы управления получают фокус ввода, когда пользователь нажимает клавишу TAB на клавиатуре. Порядок табуляции может включать элементы, которые содержатся внутри других элементов.

Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:password>
  • <form:file>
  • <form:formatted-text>
  • <form:combobox>
  • <form:listbox>
  • <form:button>
  • <form:image>
  • <form:checkbox>
  • <form:radio>
  • <form:grid>

Правила табуляции похожи на правила, используемые в HTML 4.0.

Навигация по элементам управления, которые получают фокус ввода, осуществляется в порядке описанном следующими правилами:

  • элементы управления, которые имеют положительное значение атрибута form:tab-index, получают фокус ввода в первую очередь;
  • навигация начинается с элементов управления, имеющих наименьшее значение атрибута form:tab-index, и заканчивается на элементе управления с наибольшим значением, значения не обязательно должны быть последовательными или начинаться с особого значения;
  • элементы управления, которые имеют одинаковые значения атрибута form:tab-index, получают фокус ввода в соответствии с их позицией на форме;
  • затем фокус ввода получают элементы управления, которые не содержат атрибут form:tab-index или содержат атрибут со значением 0, эти элементы управления получают фокус ввода в соответствии с их позицией в форме;
  • элементы управления, которые имеют атрибут form:disabled, установленный в значение true, не включаются в навигацию независимо от значения их атрибута form:tab-index.
<define name="common-tab-attlist" combine="interleave">
    <optional>
        <attribute name="form:tab-index" a:defaultValue="0">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>

11.5.16 Остановка табуляции[править]

Атрибут form:tab-stop определяет, будет ли элемент управления включен в порядок навигации.

Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:password>
  • <form:file>
  • <form:formatted-text>
  • <form:combobox>
  • <form:listbox>
  • <form:button>
  • <form:image>
  • <form:checkbox>
  • <form:radio>
  • <form:grid>

Если атрибут имеет значение false, элемент управления не включается в навигацию.

<define name="common-tab-attlist" combine="interleave">
    <optional>
        <attribute name="form:tab-stop" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

11.5.17 Целевой фрейм[править]

Атрибут office:target-frame определяет связанный целевой фрейм области.

Этот атрибут поддерживается следующими элементами:

  • <form:button>
  • <form:image>
<define name="target-frame">
    <optional>
        <attribute name="office:target-frame" a:defaultValue="_blank">
            <ref name="targetFrameName"/>
        </attribute>
    </optional>
</define>

11.5.18 Целевой адрес[править]

Атрибут xlink:href определяет URL, который загружается при нажатии кнопки.

Этот атрибут поддерживается следующими элементами:

  • <form:button>
  • <form:image>

Значение этого атрибута вычисляется, только если значение атрибута form:button-type является location.

<define name="target-location">
    <optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
    </optional>
</define>

11.5.19 Заголовок[править]

Атрибут form:title содержит дополнительную информацию об элементе управления. Значение атрибута может быть использовано в качестве всплывающей подсказки.

Этот атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:password>
  • <form:file>
  • <form:formatted-text>
  • <form:fixed-text>
  • <form:combobox>
  • <form:listbox>
  • <form:button>
  • <form:image>
  • <form:checkbox>
  • <form:radio>
  • <form:image>
  • <form:image-frame>
  • <form:grid>
<define name="common-title-attlist">
    <optional>
        <attribute name="form:title"/>
    </optional>
</define>

11.5.20 Визуальный эффект[править]

Атрибут form:visual-effect определяет визуальный эффект, примененный для элемента управления. Значения атрибута могут быть flat для плоского визуального эффекта и 3d для трехмерного эффекта.

Этот атрибут поддерживается следующими элементами:

  • <form:checkbox>
  • <form:radio>
<define name="common-form-visual-effect-attlist" combine="interleave">
    <optional>
        <attribute name="form:visual-effect">
            <choice>
                <value>flat</value>
                <value>3d</value>
            </choice>
        </attribute>
    </optional>
</define>

11.5.21 Относительное расположение изображения[править]

Атрибуты form:image-position и form:image-align вместе определяют позицию изображения, отображаемого на элементе управления формы, относительно текстовой метки.

Когда атрибут form:image-position имеет значение center, изображение, отображаемое на элементе управления, должно быть отцентрировано относительно текста элемента управления.

Когда атрибут form:image-position имеет одно из следующих значений:

start, end, top, bottom, изображение располагается до, после, сверху или снизу от текста. В этом случае атрибут form:image-align определяет, какая граница (start, end) или ось (center) изображения и текста совмещаются. Если атрибут form:image-position не представлен, то подразумевается значение center.

Атрибуты form:image-position и form:image-align поддерживаются следующими элементами:

  • <form:button>
  • <form:checkbox>
  • <form:radio>
<define name="common-form-relative-image-position-attlist"
       combine="interleave">
    <choice>
        <optional>
            <attribute name="form:image-position" a:defaultValue="center">
                <value>center</value>
            </attribute>
        </optional>
        <group>
            <attribute name="form:image-position">
                <choice>
                    <value>start</value>
                    <value>end</value>
                    <value>top</value>
                    <value>bottom</value>
                </choice>
            </attribute>
            <optional>
                <attribute name="form:image-align" a:defaultValue="center">
                    <choice>
                        <value>start</value>
                        <value>center</value>
                        <value>end</value>
                    </choice>
                </attribute>
            </optional>
        </group>
    </choice>
</define>

11.5.22 Атрибуты связи с базой данных[править]

Элемент управления может быть привязан к полям базы данных. В этом случае элементы управления становятся связанными с данными. Элемент управления получает значения из поля базы данных путем просмотра результирующего набора, который предоставляется формой. Каждый раз, когда изменяется строка в форме, значение элемента управления может измениться. Изменения значения сохраняются в связанном поле базы данных.

Связанный столбец[править]

Атрибут form:bound-column определяет значение столбца списка источника, который используется для заполнения значений полей базы данных.

Этот атрибут поддерживается элементом <form:listbox>.

<define name="bound-column">
    <optional>
        <attribute name="form:bound-column">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Преобразование пустого значения в Null[править]

Атрибут form:convert-empty-to-null определяет, воспринимать ли пустое текущее значение как NULL. Этот атрибут важен для элементов управления связанных с данными для определения того, какие значения сохранять для связанного поля базы данных.

Атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:formatted-text>
  • <form:combobox>

Если значение атрибута равно true, пустая строка в элементе управления воспринимается как NULL-значение. Если значение атрибута false, пустая строка в элементе управления воспринимается как пустая строка.

<define name="common-convert-empty-attlist">
    <optional>
        <attribute name="form:convert-empty-to-null" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Поле данных[править]

Атрибут form:data-field определяет название результирующего набора. Результирующий набор определяется формой, к которой принадлежит элемент управления.

Атрибут поддерживается следующими элементами:

  • <form:text>
  • <form:textarea>
  • <form:formatted-text>
  • <form:combobox>
  • <form:listbox>
  • <form:checkbox>
  • <form:radio>
  • <form:image-frame>
<define name="common-data-field-attlist">
    <optional>
        <attribute name="form:data-field">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Источник списка[править]

Атрибут form:list-source определяет источник, используемый для наполнения списка в окне списка или в поле со списком. Первый столбец результирующего набора источника наполняет список.

Атрибут поддерживается следующими элементами:

  • <form:combobox>
  • <form:listbox>
<define name="list-source">
    <optional>
        <attribute name="form:list-source">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Типы источника данных для списков[править]

Атрибут form:list-source-type определяет тип источника данных, которые используются для заполнения списка данных в списках и полях со списком.

Атрибут поддерживается следующими элементами:

  • <form:combobox>
  • <form:listbox>

Данный атрибут может принимать одно из следующих значений:

  • table — список заполнен с использованием содержимого таблицы базы данных;
  • query — список заполнен результатом выполненного запроса;
  • sql — список заполнен выполнением выражения SQL;
  • sql-pass-through — список заполнен результатом выполнения оператора любого типа, который прошел непосредственно к драйверу базы данных, без интерпретации приложением;
  • value-list — список заполнен значениями определенными пользователем с использованием атрибута form:value в элементе <form:option>, эти установки применимы только к спискам;
  • table-fields — список заполнен с использованием имен полей в таблице базы данных.
<define name="list-source-type">
    <optional>
        <attribute name="form:list-source-type">
            <choice>
                <value>table</value>
                <value>query</value>
                <value>sql</value>
                <value>sql-pass-through</value>
                <value>value-list</value>
                <value>table-fields</value>
            </choice>
        </attribute>
    </optional>
</define>

11.6 События[править]

HTML определяет список стандартных событий для элементов управления. Эти события представлены атрибутами, связанными с элементами управления. В офисных приложениях формата XML эти события и любые дополнительные события, определенные компонентами приложения, хранятся как элементы в элементе <office:event-listeners>.

Для события отдельного элемента атрибут script:event-name устанавливает тип события и другие атрибуты, определяющие язык и обработчик события.

11.6.1 События, имеющие эквивалентные типы событий в HTML[править]

Следующая таблица описывает события XML, имеющие эквивалентные события в HTML. Их имена содержатся в пространстве имен «http://www.w3.org/2001/xml-events». В этой спецификации используется префикс пространства имен DOM (см. также раздел 12.4.1).

Значение атрибута
script:event-name
Эквивалентное
событие HTML
Описание события
dom:change onchange Происходит, когда элемент управления больше не активен, и его значение было изменено после активизации
dom:DOMFocusIn onfocus Происходит, когда элемент управления активизируется с использованием мыши или клавиши TAB
dom:DOMFocusOut onblur Происходит, когда элемент управления больше не активизируется в результате движения мыши или табуляции. Может использоваться с такими элементами как form:on-focus
dom:keydown onkeydown Происходит при нажатии клавиши на элементе управления
dom:keyup onkeyup Происходит, когда отпускается клавиша на элементе управления
dom:mouseover onmouseover Происходит, когда на элемент управления направляется курсор мыши
dom:mousemove onmousemove Происходит, когда на элементе управления двигается курсор мыши
dom:mousedown onmousedown Происходит, когда на элементе управления нажимается кнопка мыши
dom:mouseup onmouseup Происходит, когда на элементе управления отпускается кнопка мыши
on-mouseout onmouseout Происходит, когда курсор мыши сдвигается с элемента управления
dom:reset onreset Происходит при восстановлении формы
dom:submit onsubmit Происходит при отправке формы

11.6.2 Типы событий[править]

В дополнение к типам событий HTML, формат XML для офисных приложений допускает дополнительные события, обрабатываемые во время выполнения.

Значение атрибута
script:event-name
Применяется к
объекту
Описание события
form:approveaction Кнопка или изображение Происходит перед событием on-performaction. Позволяет пользователю запретить действие
form:performaction Кнопка или изображение Происходит, когда должно быть выполнено управляющее действие. Частая интерпретация этого события — «нажатие на кнопку»
form:textchange Все элементы управления, допускающие ввод текста Происходит, когда пользователь изменяет текст в элементе управления
form:itemstatechange Флажок или переключатель Происходит при изменении состояния флажка или переключателя
form:mousedrag Все элементы управления Происходит, когда пользователь нажимает и держит одну из кнопок мыши, и двигает курсор мыши на элемент управления
form:approvereset Те же, что и для события form:on-reset Происходит перед событием on-reset. Позволяет пользователю наложить на него запрет
form:approveupdate Все элементы управления, которые могут быть связаны с полем базы данных, то есть содержащие атрибуты поля данных Происходит перед событием on-update. Позволяет пользователю наложить запрет на обновление
form:update Все элементы управления, которые могут быть связаны с полем базы данных, то есть содержащие атрибуты поля данных Происходит, когда фиксируется содержимое элемента управления, связанного с полем базы данных
form:load Формы Происходит, когда форма устанавливает соединение с источником данных
form:startrealod Формы Происходит, когда форма начинает обновлять соединение с источником данных
form:reload Формы Происходит, когда форма обновляет соединение с источником данных
form:startunload Формы Происходит, когда форма собирается завершить соединение с источником данных
form:unload Формы Происходит, когда форма завершает соединение с источником данных
form:confirmdelete Формы Происходит, когда пользователь собирается удалить запись
form:approverowchange Формы Происходит перед событием on-rowchange. Позволяет пользователю наложить запрет на изменение
form:rowchange Формы Происходит после завершения обновлений строк, таких как удаления, изменения и вставки
form:approvecursormove Формы Происходит перед сдвигом на следующую строку. Позволяет пользователю наложить запрет на сдвиг
form:cursormove Формы Происходит после сдвига на другую строку
form:supplyparameter Формы Происходит, когда форме необходимо заполнить параметры для установления связи с источником данных
form:error Формы, объекты поле со списком и список Происходит при ошибке, связанной с базой данных
form:adjust Диапазон значений Происходит, когда значение элемента диапазона значений было откорректировано

11.7 Свойства[править]

Элемент <form:properties> может быть использован для хранения следующих установок элементов управления и форм:

  • параметры, не определенные в формате документа;
  • параметры, обеспечиваемые внешними соединениями;
  • параметры, специфические для приложения.

Свойства состоят из пары имя/значение. Имя идентифицирует свойство.

Значение может быть базовым типом данных или списком базовых типов данных.

11.7.1 Набор свойств[править]

Элемент <form:properties> содержит элементы свойств. Свойства могут быть закодированы с помощью элемента form:property, кроме свойств списка, использующих элемент form:list-property.

<define name="form-properties">
    <element name="form:properties">
        <oneOrMore>
            <ref name="form-property"/>
        </oneOrMore>
    </element>
</define>

11.7.2 Свойство[править]

Элемент <form:property> описывает самостоятельное свойство и содержит его имя, тип и значение.

<define name="form-property" combine="choice">
    <element name="form:property">
        <ref name="form-property-name"/>
        <ref name="form-property-value-and-type-attlist"/>
    </element>
</define>
Имя свойства[править]

Атрибут form:property-name устанавливает имя элемента свойства.

<define name="form-property-name" combine="interleave">
    <attribute name="form:property-name">
        <ref name="string"/>
    </attribute>
</define>
Значение и тип свойства[править]

Значение и тип свойств формы представляются через общий атрибут office:value-type и подходящие атрибуты значений. Более подробную информацию об этих атрибутах см. в разделе 6.7.1.

Свойства формы могут принимать значение одного из этих типов или быть пустыми. В последнем случае используется специальное значение типа void.

Такие свойства не имеют значения атрибута.

<define name="form-property-value-and-type-attlist" combine="interleave">
    <choice>
        <ref name="common-value-and-type-attlist"/>
        <attribute name="office:value-type">
            <value>void</value>
        </attribute>
    </choice>
</define>

11.7.3 Список свойств[править]

Элемент <form:list-property> устанавливает свойство, содержащее список значений. Атрибут типа значения указывает, какие типы допустимы в элементах списка. Элемент содержит последовательность элементов значений списка, каждый из которых содержит атрибут значения, совместимого с типом из элемента <form:list-property>. Атрибуты значений сходны с используемыми в спецификации, кроме тех, у которых атрибут типа связан с составным элементом, атрибуты значений которого связаны со значениями из списка. Более подробную информацию об атрибутах значений см. в разделе 6.7.1.

<define name="form-property" combine="choice">
    <element name="form:list-property">
        <ref name="form-property-name"/>
        <ref name="form-property-type-and-value-list"/>
    </element>
</define>
Значение списка[править]

Элемент значение списка содержит атрибуты значений для типа значений, заданного в элементе <form:list-property>.

<define name="form-property-type-and-value-list">
    <choice>
        <group>
            <attribute name="office:value-type">
                <value>float</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:value">
                        <ref name="double"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>percentage</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:value">
                        <ref name="double"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>currency</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:value">
                        <ref name="double"/>
                    </attribute>
                    <optional>
                        <attribute name="office:currency">
                            <ref name="string"/>
                        </attribute>
                    </optional>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>date</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:date-value">
                        <ref name="dateOrDateTime"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>time</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:time-value">
                        <ref name="duration"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>boolean</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:boolean-value">
                        <ref name="boolean"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>string</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:string-value">
                        <ref name="string"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <attribute name="office:value-type">
            <value>void</value>
        </attribute>
    </choice>
</define>

Пример — Свойства формы:

В следующем примере содержится строковое свойство «Name» со значением «Name 1» и список строковых значений «Items», содержащий строки «Item 1», «Item 2», «Item 3».

<form:properties>
    <form:property form:property-name="Name"
                    office:value-type="string"
                    office:string-value="Name 1">
    <form:list-property form:property-name="Items"
                    office:value-type="string" >
        <form:list-value office:string-value="Item 1"/>
        <form:list-value office:string-value="Item 2"/>
        <form:list-value office:string-value="Item 3"/>
    </form:list-property>
</form:properties>


Это произведение не охраняется авторским правом.
В соответствии со статьёй 1259 Гражданского кодекса Российской Федерации не являются объектами авторских прав официальные документы государственных органов и органов местного самоуправления муниципальных образований, в том числе законы, другие нормативные акты, судебные решения, иные материалы законодательного, административного и судебного характера, официальные документы международных организаций, а также их официальные переводы; государственные символы и знаки (флаги, гербы, ордена, денежные знаки и тому подобное), а также символы и знаки муниципальных образований; произведения народного творчества (фольклор), не имеющие конкретных авторов; сообщения о событиях и фактах, имеющие исключительно информационный характер (сообщения о новостях дня, программы телепередач, расписания движения транспортных средств и тому подобное).
Россия