Перейти к содержанию

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

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


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

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

  • Номера страницы

Поле номера страницы отображает номер страницы, на которой оно находится. Это поле полезно для нижних колонтитулов. На каждой из страниц, на которой показан нижний колонтитул, поле присваивает себе номер текущей страницы так, что все страницы оказываются корректно пронумерованными.

  • Даты создания

Поле даты создания отображает дату создания текущего документа. Это поле полезно использовать в шаблонах документов. Каждый документ, созданный с использованием шаблона, содержит дату его создания.

  • Диапазона чисел

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

В данном разделе описано, как поля представляются в формате файла OpenDocument.

6.1 Общие характеристики элементов поля[править]

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

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

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

Ниже приведены наиболее используемые атрибуты элементов поля.

  • Фиксированные поля

Многие поля имеют разновидность, где содержимое не изменяется после того, как задано начальное значение. Эти поля отмечаются атрибутом text:fixed. См. раздел 6.7.2 для более подробной информации по этому атрибуту.

  • Стиль форматирования

Несколько типов полей, особенно те, которые представляют числа, дату или данные времени, содержат стиль форматирования. В формате OpenDocument, этот стиль форматирования представлен атрибутом style:data-style-name. Так как пользователь может изменять стиль представления для полей, приложения должны быть способны вычислять заново новое представление содержимого поля в любой момент времени. См. раздел 6.7.7 для более подробной информации по этому атрибуту.

6.2 Поля документа[править]

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

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

Группа полей документа включает:

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

6.2.1 Поля даты[править]

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

Этот элемент содержит представление значения поля даты в зависимости от установленного стиля даты. Дата по умолчанию — текущая дата. Значение этого элемента может быть задано неизменяемым при использовании атрибута text:fixed, описанного в разделе 6.7.2.

<define name="paragraph-content" combine="choice">
    <element name="text:date">
        <ref name="text-date-attlist"/>
        <text/>
    </element>
</define>

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

  • значение даты;
  • корректировка даты;
  • фиксирование (см. раздел 6.7.2);
  • стиль форматирования (см. раздел 6.7.7), который должен быть стилем данных типа дата (см. раздел 14.7 для получения более подробной информации).
<define name="text-date-attlist" combine="interleave">
    <interleave>
        <ref name="common-field-fixed-attlist"/>
        <ref name="common-field-data-style-name-attlist"/>
    </interleave>
</define>
Значение даты[править]

Атрибут text:date-value определяет конкретное значение даты. Например, если поле даты отмечено как фиксированное, этот атрибут может использоваться для определения даты, когда поле было отмечено как фиксированное. Этот атрибут может также быть использован, чтобы определить будущую дату. Некоторые приложения поддерживают значение даты и времени в дополнение к значению, состоящему только из даты.

Значение даты должно соответствовать форматам даты, описанным в § 3.2.7 и § 3.2.9 в [xmlschema-2]. Если не задано никакого значения, то устанавливается текущая дата, даже если поле было отмечено как фиксированное.

<define name="text-date-attlist" combine="interleave">
    <optional>
        <attribute name="text:date-value">
            <ref name="dateOrDateTime"/>
        </attribute>
    </optional>
</define>
Корректировка даты[править]

Значение поля даты может быть скорректировано на определенный промежуток времени, который определен с использованием атрибута text:date-adjust. Если промежуток времени отрицательный, он вычитается из значения поля даты, получается дата более ранняя, чем текущая.

Значение этого атрибута должно соответствовать формату промежутка времени, описанному в § 3.2.6 в [xmlschema-2]. Значение может следовать за необязательным знаком минус, чтобы показать отрицательную продолжительность времени.

<define name="text-date-attlist" combine="interleave">
    <optional>
        <attribute name="text:date-adjust">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>

6.2.2 Поля времени[править]

Поля времени отображают текущее время. Они подобны полям даты, описанным в разделе 6.2.1, и поддерживают те же атрибуты, за исключением того, что для полей времени они называются атрибутами text:time-value и text:time-adjust.

Этот элемент содержит представление значения поля времени, зависящего от установленного стиля даты. Время по умолчанию — текущее время. Значение данного элемента может быть задано неизменяемым при использовании атрибута text:fixed, описанного в разделе 6.7.2.

<define name="paragraph-content" combine="choice">
    <element name="text:time">
        <ref name="text-time-attlist"/>
        <text/>
    </element>
</define>

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

  • значение времени;
  • корректировка времени;
  • фиксирование (см. раздел 6.7.2);
  • стиль форматирования (см. раздел 6.7.7), который должен быть стилем данных типа время (см. раздел 14.7 для получения более подробной информации).
<define name="text-time-attlist" combine="interleave">
    <interleave>
        <ref name="common-field-fixed-attlist"/>
        <ref name="common-field-data-style-name-attlist"/>
    </interleave>
</define>
Значение времени[править]

Атрибут text:time-value отмечает время последнего редактирования документа.

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

Значение данного атрибута должно соответствовать типам данных «dateTime» или «time», описанным в § 3.2.7 и § 3.2.8 в [xmlschema-2]. Если не задано никакого значения, то устанавливается значение текущего времени, даже если поле было отмечено как фиксированное.

<define name="text-time-attlist" combine="interleave">
    <optional>
        <attribute name="text:time-value">
            <ref name="timeOrDateTime"/>
        </attribute>
    </optional>
</define>
Корректировка времени[править]

Значение поля времени может быть скорректировано к определенному промежутку времени, который определен с использованием атрибута text:time-adjust.

Значение этого атрибута должно соответствовать формату промежутка времени, описанному в § 3.2.6 в [xmlschema-2]. Значение может следовать за необязательным знаком минус, чтобы показать отрицательную продолжительность времени. Положительные значения корректируют время к более позднему значению времени, в то время как отрицательные значения корректируют время к более раннему значению времени. Продолжительность времени усекается до целого значения минут.

<define name="text-time-attlist" combine="interleave">
    <optional>
        <attribute name="text:time-adjust">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>

Пример — Атрибуты корректировки времени и вызываемый ими эффект:

Если установлен атрибут text:time-adjust="PTM15", поле времени отображает время, которое на 15 минут больше фактического значения времени, определяемого значением поля времени.

Если установлен атрибут text:time-adjust="-PTH1", поле времени отображает время, которое на час меньше фактического значения времени, определяемого значением поля времени.

6.2.3 Поля номера страницы[править]

Поля номера страницы отображают номер текущей страницы. Эти поля особенно полезны в колонтитулах. Например, если поле номера страницы вставлено в нижний колонтитул, номер текущей страницы отображается на каждой странице, на которой появляется нижний колонтитул.

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

  • корректировка номеров страниц;
  • отображение номера предыдущей или следующей страницы;
  • фиксирование (см. раздел 6.7.2);
  • стиль форматирования (см. раздел 6.7.8).

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

<define name="paragraph-content" combine="choice">
    <element name="text:page-number">
        <ref name="text-page-number-attlist"/>
        <text/>
    </element>
</define>
<define name="text-page-number-attlist" combine="interleave">
    <interleave>
        <ref name="common-field-num-format-attlist"/>
        <ref name="common-field-fixed-attlist"/>
    </interleave>
</define>

Примечание — для отображения общего числа страниц в документе используйте поле <text:page-count/>, описанное в разделе 6.4.17.

Корректировка номеров страниц[править]

Значение поля номера страницы может быть скорректировано на определенное число, что позволяет отображать номера следующих или предыдущих страниц. Корректировка осуществляется с использованием атрибута text:page-adjust. Когда используется этот атрибут, приложение:

  • добавляет значение атрибута к номеру текущей страницы;
  • проверяет, существует ли результирующая страница;
  • если страница существует, отображается номер этой страницы;
  • если страницы не существует, значение поля номера страницы остается пустым и никакого значения не отображается.
<define name="text-page-number-attlist" combine="interleave">
    <optional>
        <attribute name="text:page-adjust">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
Отображение номера предыдущей или следующей страницы[править]

Атрибут text:select-page используется для отображения номера предыдущей или следующей страницы, а не номер текущей страницы.

<define name="text-page-number-attlist" combine="interleave">
    <optional>
        <attribute name="text:select-page">
            <choice>
                <value>previous</value>
                <value>current</value>
                <value>next</value>
            </choice>
        </attribute>
    </optional>
</define>

Примечание — Для отображения номера текущей страницы на всех страницах за исключением первой или последней, используйте комбинацию атрибутов text:select-page и text:page-adjust.

Пример — Отображение номера текущей страницы на всех страницах, за исключением первой:

<text:page-number text:select-page="previous"
                   text:page-adjust="1"
                    style:num-format="1"/>

6.2.4 Текст, указывающий на продолжение страницы[править]

В некоторых публикациях в нижней части страницы в дополнение к номеру страницы печатается текст, указывающий на продолжение. Для добавления текста, указывающего на продолжение, используется элемент <text:page-continuation>.

<define name="paragraph-content" combine="choice">
    <element name="text:page-continuation">
        <ref name="text-page-continuation-attlist"/>
        <text/>
    </element>
</define>

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

  • предыдущая или следующая страница;
  • строковое значение.
Предыдущая или следующая страница[править]

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

<define name="text-page-continuation-attlist" combine="interleave">
    <attribute name="text:select-page">
        <choice>
            <value>previous</value>
            <value>next</value>
        </choice>
    </attribute>
</define>
Строковое значение[править]

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

<define name="text-page-continuation-attlist" combine="interleave">
    <optional>
        <attribute name="text:string-value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

6.2.5 Поля отправителя[править]

Есть несколько полей, которые содержат информацию об отправителе текущего документа, например, имя и адрес электронной почты. Информация об отправителе берется из диалогового окна информации о пользователе OpenDocument. Если поле отправителя отмечено как фиксированное использованием атрибута text:fixed, информация о первоначальном отправителе в полях отправителя остается неизменной (см. раздел 6.7.2). В противном случае информация обновляется каждый раз, когда редактируется файл, и изменение значений данных полей происходит всегда, когда документ редактируется другим пользователем.

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

Этот элемент представляет имя отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-firstname">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Фамилия[править]

Этот элемент представляет фамилию отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-lastname">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Инициалы[править]

Этот элемент представляет инициалы отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-initials">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Титул[править]

Этот элемент представляет титул отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-title">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Должность[править]

Этот элемент представляет должность отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-position">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Адрес электронной почты[править]

Этот элемент представляет адрес электронной почты отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-email">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Личный телефонный номер[править]

Этот элемент представляет номер личного телефона отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-phone-private">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Номер факса[править]

Этот элемент представляет номер факса отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-fax">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Название компании[править]

Этот элемент представляет название компании, в которой работает отправитель.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-company">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Номер рабочего телефона[править]

Этот элемент представляет номер рабочего телефона отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-phone-work">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Улица[править]

Этот элемент представляет название улицы отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-street">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Город[править]

Этот элемент представляет название города отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-city">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Почтовый индекс[править]

Этот элемент представляет почтовый индекс отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-postal-code">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Страна[править]

Этот элемент представляет страну отправителя.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-country">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Штат или регион[править]

Этот элемент представляет название штата или региона, в котором проживает отправитель, если применимо.

<define name="paragraph-content" combine="choice">
    <element name="text:sender-state-or-province">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>

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

Есть два элемента, доступных для отображения автора документа. Первый элемент отображает полное имя автора, второй — его инициалы.

Значение полей автора может быть зафиксировано использованием атрибута text:fixed. Отметка в поле автора как фиксированного оставляет неизменным начальное содержимое поля. В противном случае, содержимое поля изменяется каждый раз, когда документ обновляется, чтобы отразить последнего автора документа.

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

Этот элемент представляет полное имя автора.

<define name="paragraph-content" combine="choice">
    <element name="text:author-name">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
Инициалы автора[править]

Этот элемент представляет инициалы автора.

<define name="paragraph-content" combine="choice">
    <element name="text:author-initials">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>

6.2.7 Поля главы[править]

Поля главы отображают одно из следующего:

  • название текущей главы;
  • номер текущей главы;
  • одновременно название и номер текущей главы.

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

<define name="paragraph-content" combine="choice">
<element name="text:chapter">
    <ref name="text-chapter-attlist"/>
    <text/>
</element>
</define>

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

  • отображение;
  • уровень структуры.
Отображение[править]

Атрибут text:display определяет информацию, которую поле главы должно отобразить.

<define name="text-chapter-attlist" combine="interleave">
    <attribute name="text:display">
        <choice>
            <value>name</value>
            <value>number</value>
            <value>number-and-name</value>
            <value>plain-number-and-name</value>
            <value>plain-number</value>
        </choice>
    </attribute>
</define>

Пример —

Если номер текущей главы 2.4, заголовок главы «Работа с таблицами», возможные варианты отображения и результаты следующие:

Значение атрибута
text:display
Отображаемое
содержимое поля
number [2.4]
name Работа с таблицами
number-and-name [2.4] Работа с таблицами
plain-number 2.4
plain-number-and-name 2.4 Работа с таблицами
Уровень структуры[править]

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

<define name="text-chapter-attlist" combine="interleave">
    <attribute name="text:outline-level">
        <ref name="nonNegativeInteger"/>
    </attribute>
</define>

6.2.8 Поля имени файла[править]

Поля имени файла отображают имя файла, который в настоящее время редактируется.

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

  • отображение;
  • фиксирование.
<define name="paragraph-content" combine="choice">
    <element name="text:file-name">
        <ref name="text-file-name-attlist"/>
        <text/>
    </element>
</define>
Отображение[править]

Атрибут text:display определяет, как отображать имя файла. Следующие варианты позволяют отобразить:

  • полное имя файла, включая расширение и путь к нему;
  • только путь к файлу;
  • только имя файла;
  • имя файла и расширение.

Имя файла должно быть записано в формате IRI потому, что формат IRI используется для получения файла или из-за того, что приложение внутренне использует формат IRI и поэтому конвертирует даже специфические для системы пути в формат IRI. Если указанные факторы являются причиной и если путь, имя или расширение файла не могут быть вычислены из IRI, тогда IRI должен отображаться неизмененным.

<define name="text-file-name-attlist" combine="interleave">
    <optional>
        <attribute name="text:display">
            <choice>
                <value>full</value>
                <value>path</value>
                <value>name</value>
                <value>name-and-extension</value>
            </choice>
        </attribute>
    </optional>
</define>
Фиксированные поля имени файла[править]

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

<define name="text-file-name-attlist" combine="interleave">
    <ref name="common-field-fixed-attlist"/>
</define>

6.2.9 Поля имени шаблона документа[править]

Поле имени шаблона документа отображает информацию о используемом шаблоне документа, такую как имя шаблона или имя файла.

С элементом <text:template-name> может быть связан атрибут:

  • отображение.
<define name="paragraph-content" combine="choice">
    <element name="text:template-name">
        <ref name="text-template-name-attlist"/>
        <text/>
    </element>
</define>
Отображение[править]

Этот атрибут определяет, какую информацию о шаблоне документа отображать. Доступны следующие варианты отображения:

  • полное имя файла, включающее путь и расширение;
  • только путь к файлу;
  • только имя файла;
  • имя файла и расширение;
  • заголовок;
  • область шаблона документа.

Последние два значения могут быть использованы для диалогов шаблона. Они являются расширенным набором значений отображения для элемента <text:file-name>.

<define name="text-template-name-attlist">
    <optional>
        <attribute name="text:display">
            <choice>
                <value>full</value>
                <value>path</value>
                <value>name</value>
                <value>name-and-extension</value>
                <value>area</value>
                <value>title</value>
            </choice>
        </attribute>
    </optional>
</define>

6.2.10 Поля имен листов[править]

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

<define name="paragraph-content" combine="choice">
    <element name="text:sheet-name">
        <text/>
    </element>
</define>

6.3 Поля-переменные[править]

Текстовые документы OpenDocument могут содержать переменные, которые обрабатываются или отображаются с помощью полей-переменных. Переменной называется пара имя/значение. Имя переменной используется во всем документе для обозначения конкретной переменной, и потому имя переменной не может быть заново использовано для определения других типов переменных. Большинство полей-переменных поддерживают различные типы значений, таких как числа, даты, строки и др. В формате файла OpenDocument переменная должна быть объявлена в начале документа.

Имеется три типа переменных.

  • Простые переменные

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

  • Переменные пользователя

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

  • Переменные последовательности

Переменные последовательности используются для нумерации определенных объектов в текстовом документе OpenDocument, например изображений или таблиц.

Выражения и поля ввода текста также являются полями-переменными, но они не связаны с какими-либо конкретными переменными. Однако, поскольку по функциональности они тесно связаны с полями-переменными, то они также описаны в данном разделе руководства.

Переменные должны быть объявлены прежде, чем они могут быть использованы. Объявления переменных собраны в элементах-контейнерах для переменных определенного типа. Код OpenDocument для объявления переменных описан в разделах 6.3.1, 6.3.5 и 6.3.8.

6.3.1 Объявление простых переменных[править]

Простые переменные объявляются с использованием элементов <text:variable-decl>. Объявление устанавливает имя и тип значения переменной.

Для определения имени и типа значения простой переменной с элементом <text:variable-decl> могут быть связаны следующие атрибуты:

  • text:name

Имя переменной должно быть уникально. Оно не может использоваться для переменной любого другого типа (см. раздел 6.7.3 для получения информации по использованию этого атрибута).

  • office:value-type

См. раздел 6.7.1 для получения информации по использованию этого атрибута.

<define name="text-variable-decl">
    <element name="text:variable-decl">
        <ref name="common-field-name-attlist"/>
        <ref name="common-value-type-attlist"/>
    </element>
</define>

6.3.2 Задание значения простой переменной[править]

Значения простых переменных могут быть заданы с использованием элементов-установщиков переменных. Эти элементы содержат представление значения переменной, которое может быть пустым, если атрибут text:display установлен в значение none.

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

  • text:name

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

  • text:formula

Этот атрибут содержит формулу для вычисления значения поля-переменной. Если формула совпадает с содержимым элемента поля, этот атрибут может быть опущен (см. раздел 6.7.6 для получения информации по использованию этого атрибута).

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

Примечание — Простая переменная не должна иметь различные типы значения в различных местах документа. Тем не менее, реализация может допускать использование различных типов значения для различных экземпляров той же самой переменной. В случае типов числовых значений float, percentage и currency значение автоматически преобразуется в другой тип значения. Для типов значений, которые имеют внутреннее представление в виде чисел, такие как date, time и boolean значения интерпретируются как числа соответствующего типа. Если переменная используется как для строкового, так и для не строкового типов, то поведение не определено, следовательно, подобная практика не рекомендована.

  • text:display

Этот атрибут может использоваться, чтобы определить необходимо или нет отображать значение элемента <text:variable-set>. Если атрибут text:display установлен в value, значение переменной отображается. Если атрибут установлен в none, значение не отображается (см. раздел 6.7.5 для получения информации по использованию этого атрибута).

  • style:data-style-name

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

<define name="paragraph-content" combine="choice">
    <element name="text:variable-set">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-formula-attlist"/>
            <ref name="common-value-and-type-attlist"/>
            <ref name="common-field-display-value-none-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>

6.3.3 Отображение простых переменных[править]

Элемент <text:variable-get> читает и отображает значение простой переменной. Значение этого элемента является значением последнего предшествовавшего элемента <text:variable-set> с таким же атрибутом text:name. Этот элемент определяет, как представлять значение переменной, в зависимости от выбранного стиля форматирования.

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

  • text:name

Этот атрибут определяет имя отображаемой переменной. Имя должно соответствовать имени предшествовавшего элемента <text:variable-deсl> (см. раздел 6.7.3 для получения информации по использованию этого атрибута).

  • text:display

Этот элемент может быть использован для определения того, что отображать: формулу для простой переменной или вычисленное значение переменной (см. раздел 6.7.5 для получения информации по использованию этого атрибута).

  • style:data-style-name

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

<define name="paragraph-content" combine="choice">
    <element name="text:variable-get">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-display-value-formula-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>

6.3.4 Поля ввода простой переменной[править]

Как альтернатива установке значений простых переменных с использованием формул в элементах-установщиках переменных, значения переменных могут запрашиваться у пользователя. Для этого используется элемент <text:variable-input>, содержащий представление значения переменной в соответствии с выбранным стилем форматирования. Представление может быть пустым, если атрибут text:display установлен в none.

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

  • text:name

Этот атрибут определяет имя отображаемой переменной. Оно должно совпадать с именем ранее объявленной переменной (см. раздел 6.7.3 для получения информации по использованию этого атрибута).

  • text:description

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

  • office:value-type и соответствующий атрибут значения (см. раздел 6.7.1 для получения информации по использованию этого атрибута).
  • text:display

Этот атрибут может быть использован для определения отображать или спрятать значение переменной в поле ввода переменной (см. раздел 6.7.5 для получения информации по использованию этого атрибута).

  • style:data-style-name

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

<define name="paragraph-content" combine="choice">
    <element name="text:variable-input">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-description-attlist"/>
            <ref name="common-value-type-attlist"/>
            <ref name="common-field-display-value-none-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>

6.3.5 Определение переменных пользователя[править]

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

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

  • text:name

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

  • text:formula

Этот атрибут содержит формулу для вычисления значения поля переменной пользователя. Если формула совпадает с содержимым элемента поля, этот атрибут может быть опущен (см. раздел 6.7.6 для получения информации по использованию этого атрибута).

  • office:value-type и соответствующий атрибут значения (см. раздел 6.7.1 для получения информации по использованию этого атрибута).
<define name="text-user-field-decl">
    <element name="text:user-field-decl">
        <ref name="common-field-name-attlist"/>
        <optional>
            <ref name="common-field-formula-attlist"/>
        </optional>
        <ref name="common-value-and-type-attlist"/>
    </element>
</define>

6.3.6 Отображение переменных пользователя[править]

Содержимое переменных пользователя может быть отображено с использованием элементов <text:user-field-get>.

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

  • text:name

Этот атрибут определяет имя отображаемой переменной, которе должно полностью соответствовать имени предшествующего элемента <text:user-field-deсl> (см. раздел 6.7.3 для получения информации по использованию этого атрибута).

  • text:display

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

— отображение формулы, используемой для вычисления значения переменной пользователя;

— отображение значения переменной пользователя;

— спрятать поля переменной пользователя.

См. раздел 6.7.5 для получения информации по использованию этого атрибута.

Примечание — Так как пользовательские интерфейсы офисных приложений обычно позволяют редактировать переменные пользователя щелчком мыши на поле пользователя, то чтобы иметь возможность простого доступа к конкретной переменной пользователя, в качестве привязки может быть использован скрытый элемент <text:user-field-get>.

  • style:data-style-name

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

<define name="paragraph-content" combine="choice">
    <element name="text:user-field-get">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-display-value-formula-none-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>

6.3.7 Поля ввода переменной пользователя[править]

Альтернативным способом установки значений переменных пользователя является использование полей ввода, подобных полям ввода простых переменных. Переменная пользователя может быть установлена этим способом при использовании элемента <text:user-field-input>. С того момента как значение изменяемого поля пользователя сохранено в элементе <text:user-field-deсl>, элемент <text:user-field-input> не содержит атрибуты значения и типа значения из поля <text:variable-input>.

Представление может оказаться пустым, если атрибут text:display установлен в none.

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

  • text:name

Этот атрибут определяет имя устанавливаемой переменной. Оно должно совпадать с именем ранее объявленной переменной (см. раздел 6.7.3 для получения информации по использованию этого атрибута).

  • text:description

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

  • style:data-style-name

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

<define name="paragraph-content" combine="choice">
    <element name="text:user-field-input">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-description-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>

6.3.8 Объявление переменных последовательности[править]

Переменные последовательности используются для нумерации объектов внутри текстового документа OpenDocument. Переменные последовательности наиболее часто используются для последовательной нумерации. Тем не менее, формулы выражения могут быть включены в поля последовательности для поддержки более расширенных последовательностей (см. раздел 6.3.9 для получения более подробной информации о полях последовательности и их использовании).

Переменные последовательности объявляются с использованием элемента <text:sequence-deсl>.

Для упрощения специфичной для главы нумерации, к переменной последовательности могут быть присоединены атрибуты для определения уровня главы и символа-разделителя. С элементом <text:sequence-deсl> могут быть связаны следующие атрибуты:

  • text:name

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

  • text:display-outline-level

См. ниже раздел Уровень структуры для получения информации по этому атрибуту.

  • text:separation-character

См. ниже раздел Символ-разделитель для получения информации по этому атрибуту.

<define name="text-sequence-decl">
    <element name="text:sequence-decl">
        <ref name="text-sequence-decl-attlist"/>
    </element>
</define>
<define name="text-sequence-decl-attlist" combine="interleave">
    <ref name="common-field-name-attlist"/>
</define>
Уровень структуры[править]

Последовательности могут быть пронумерованы по главам. Для использования этой особенности применяется атрибут text:display-outline-level, чтобы определить уровень структуры, задающий, какие главы ссылаются на специфичную для главы нумерацию. Все главы с определенного и ниже уровня структуры сбрасывают значение последовательности в ноль — значение по умолчанию. Кроме того, номер последней главы с определенного или ниже уровня структуры добавляется в начало номера последовательности. Выбор нуля в качестве уровня структуры приводит к прямому порядку следования всех элементов последовательности для этой переменной последовательности.

<define name="text-sequence-decl-attlist" combine="interleave">
    <attribute name="text:display-outline-level">
        <ref name="nonNegativeInteger"/>
    </attribute>
</define>
Символ-разделитель[править]

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

Если значение атрибута text:display-outline-level отлично от нуля, символ-разделитель может быть определен. Символ-разделитель по умолчанию — «.». В противном случае, если значение text:display-outline-level равно нулю, этот атрибут может быть опущен.

<define name="text-sequence-decl-attlist" combine="interleave">
    <optional>
        <attribute name="text:separation-character">
            <ref name="character"/>
        </attribute>
    </optional>
</define>

Пример — Переменная последовательности:

Переменная последовательности 3.7.36#5 со значением равным 5 объявляется с использованием:

Атрибут Значение
text:display-outline-level 3
text:separation-character #

6.3.9 Использование полей последовательности[править]

С того момента как переменная последовательности объявлена, она может использоваться в полях последовательности всюду в документе. Большинство полей последовательности просто увеличивают и отображают переменную последовательности. Однако поля последовательности также могут принимать новое начальное значение в любом заданном месте документа. Это начальное значение вычисляется с использованием формулы, которая находится в поле последовательности. Если поле последовательности добавлено без начального значения, офисное приложение автоматически вставляет выражение типа variable+1.

Поля последовательности чаще всего используются для простых счетных последовательностей. Однако способность поддерживать произвольные выражения позволяет задавать более сложные последовательности. Для того чтобы сформировать последовательность четных чисел, все элементы последовательности для этой конкретной переменной должны содержать формулу, увеличивающую значение на два, например variable+2. Последовательность с начальным значением равным 1 и всеми последующими элементами, использующими формулу variable*2, приводит ко всем степеням 2. Так как различные элементы последовательности для одной и той же переменной последовательности могут содержать различные формулы, возможно построение сложных последовательностей.

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

  • text:name

Этот атрибут определяет имя переменной, которую данное поле отображает. Оно должно совпадать с именем переменной последовательности, которая ранее определена (см. раздел 6.7.3 для получения информации по использованию этого атрибута).

  • text:formula

Этот необязательный атрибут содержит формулу для вычисления значения поля последовательности. Если этот атрибут опущен, используется выражение, соответствующее содержимому элемента (см. раздел 6.7.6 для получения информации по использованию этого атрибута).

  • style:num-format и style:num-letter-sync

Эти атрибуты определяют использование стиля нумерации. Если стиль нумерации не определен, стиль нумерации наследуется из стиля страницы (см. раздел 6.7.8 для получения более подробной информации по использованию этого атрибута).

  • text:ref-name

См. ниже раздел Имя ссылки для получения информации по этому атрибуту.

<define name="paragraph-content" combine="choice">
    <element name="text:sequence">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-formula-attlist"/>
            <ref name="common-field-num-format-attlist"/>
            <ref name="text-sequence-ref-name"/>
        </interleave>
        <text/>
    </element>
</define>
Имя ссылки[править]

Поля последовательности могут быть целью ссылок, в соответствии с представлением используемых полей ссылки (см. раздел 6.6.5 для получения более подробной информации о полях ссылки). Чтобы позволить полю ссылки указывать на определенное поле последовательности, поле последовательности должно иметь дополнительный атрибут, содержащий имя. Никакие два поля последовательности не могут иметь одинаковое имя ссылки.

Если поле последовательности не является целью ссылки, этот атрибут может быть опущен.

<define name="text-sequence-ref-name">
    <optional>
        <attribute name="text:ref-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

6.3.10 Поля выражений[править]

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

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

  • text:formula

Этот атрибут содержит текущее выражение, используемое для вычисления значения поля выражения (см. раздел 6.7.6 для получения информации об использовании этого атрибута).

  • office:value-type и соответствующий атрибут значения (см. раздел 6.7.1 для получения информации об использовании этих атрибутов).
  • text:display

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

— значения поля;

— формулы, используемой для вычисления значения.

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

  • style:data-style-name

Этот атрибут определяет стиль данных, применяемый для форматирования числовой, логической переменной или переменной типа дата/время. Если стиль данных не указан, используется стандартный стиль данных (см. раздел 6.7.7 для получения информации об использовании этого атрибута).

<define name="paragraph-content" combine="choice">
    <element name="text:expression">
        <interleave>
            <ref name="common-field-formula-attlist"/>
            <optional>
                <ref name="common-value-and-type-attlist"/>
            </optional>
            <ref name="common-field-display-value-formula-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>

6.3.11 Поля ввода текста[править]

Поля ввода текста являются полями-переменными. С точки зрения пользовательского интерфейса поля ввода текста подобны полям <text:variable-input> и <text:user-field-input>. Тем не менее, поле ввода текста не изменяет значение какой-либо переменной.

С элементом <text:text-input> может быть связан атрибут:

  • text:description

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

<define name="paragraph-content" combine="choice">
    <element name="text:text-input">
        <ref name="common-field-description-attlist"/>
        <text/>
    </element>
</define>

6.4 Поля метаданных[править]

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

Все элементы поля метаданных могут быть отмечены как фиксированные с помощью атрибута text:fixed (см. раздел 6.7.2).

Несколько полей метаданных отображают дату или время. Элементы этих полей требуют наличия атрибутов text:date-value или text:time-value и необязательного атрибута style:data-style-name (см. раздел 6.7.1 для получения более подробной информации по этим атрибутам).

6.4.1 Автор первоначального документа[править]

Этот элемент представляет имя автора, создавшего исходный документ.

<define name="paragraph-content" combine="choice">
    <element name="text:initial-creator">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>

6.4.2 Дата создания документа[править]

Этот элемент представляет дату создания документа.

<define name="paragraph-content" combine="choice">
    <element name="text:creation-date">
        <interleave>
            <ref name="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <optional>
                <attribute name="text:date-value">
                    <ref name="dateOrDateTime"/>
                </attribute>
            </optional>
        </interleave>
        <text/>
    </element>
</define>

6.4.3 Время создания документа[править]

Этот элемент представляет время создания документа.

<define name="paragraph-content" combine="choice">
    <element name="text:creation-time">
        <interleave>
            <ref name="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <optional>
                <attribute name="text:time-value">
                    <ref name="timeOrDateTime"/>
                </attribute>
            </optional>
        </interleave>
        <text/>
    </element>
</define>

6.4.4 Описание документа[править]

Этот элемент содержит краткое описание документа.

<define name="paragraph-content" combine="choice">
    <element name="text:description">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>

6.4.5 Информация о документе, определяемая пользователем[править]

Этот элемент содержит информацию о документе, определяемую пользователем. Он отображает информацию, находящуюся внутри элемента <meta:user-defined>, имеющем то же самое имя.

<define name="paragraph-content" combine="choice">
    <element name="text:user-defined">
        <interleave>
            <ref name="common-field-fixed-attlist"/>
            <attribute name="text:name">
                <ref name="string"/>
            </attribute>
            <ref name="common-field-data-style-name-attlist"/>
            <optional>
                <attribute name="office:value">
                    <ref name="double"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="office:date-value">
                    <ref name="dateOrDateTime"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="office:time-value">
                    <ref name="duration"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="office:boolean-value">
                    <ref name="boolean"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="office:string-value">
                    <ref name="string"/>
                </attribute>
            </optional>
        </interleave>
        <text/>
    </element>
</define>

6.4.6 Время печати[править]

Этот элемент представляет время последней печати документа.

<define name="paragraph-content" combine="choice">
    <element name="text:print-time">
        <interleave>
            <ref name="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <optional>
                <attribute name="text:time-value">
                    <ref name="time"/>
                </attribute>
            </optional>
        </interleave>
        <text/>
    </element>
</define>

6.4.7 Дата печати[править]

Этот элемент представляет дату последней печати документа.

<define name="paragraph-content" combine="choice">
    <element name="text:print-date">
        <interleave>
            <ref name="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <optional>
                <attribute name="text:date-value">
                    <ref name="date"/>
                </attribute>
            </optional>
        </interleave>
        <text/>
    </element>
</define>

6.4.8 Кем распечатан документ[править]

Этот элемент представляет имя человека, который последним распечатал документ.

<define name="paragraph-content" combine="choice">
    <element name="text:printed-by">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>

6.4.9 Заголовок документа[править]

Этот элемент представляет заголовок документа.

<define name="paragraph-content" combine="choice">
    <element name="text:title">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>

6.4.10 Тема документа[править]

Этот элемент представляет тему документа.

<define name="paragraph-content" combine="choice">
    <element name="text:subject">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>

6.4.11 Ключевые слова документа[править]

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

<define name="paragraph-content" combine="choice">
    <element name="text:keywords">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>

6.4.12 Номер редакции документа[править]

Этот элемент содержит номер редакции документа. При создании документа номер редакции устанавливается равным 1. Каждый раз, когда документ сохраняется, номер редакции документа увеличивается на 1.

    <define name="paragraph-content" combine="choice">
        <element name="text:editing-cycles">
            <ref name="common-field-fixed-attlist"/>
            <text/>
        </element>
    </define>

Примечание — Так как поле <text:editing-cycles> не может быть отформатировано, номер редакции может быть прочитан из содержимого элемента. Поэтому нет необходимости в дополнительном атрибуте.

6.4.13 Продолжительность редактирования документа[править]

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

<define name="paragraph-content" combine="choice">
    <element name="text:editing-duration">
        <interleave>
              <ref name="common-field-fixed-attlist"/>
              <ref name="common-field-data-style-name-attlist"/>
              <optional>
                  <attribute name="text:duration">
                  <ref name="duration"/>
                  </attribute>
              </optional>
        </interleave>
        <text/>
    </element>
</define>

6.4.14 Время изменения документа[править]

Этот элемент представляет время последнего изменения документа.

Этот элемент отображает информацию из элемента <meta:date>. Такое имя выбрано во избежание путаницы с полями <text:date>.

<define name="paragraph-content" combine="choice">
    <element name="text:modification-time">
        <interleave>
              <ref name="common-field-fixed-attlist"/>
              <ref name="common-field-data-style-name-attlist"/>
              <optional>
                  <attribute name="text:time-value">
                      <ref name="time"/>
                  </attribute>
              </optional>
        </interleave>
        <text/>
    </element>
</define>

6.4.15 Дата изменения документа[править]

Этот элемент представляет дату последнего изменения документа.

Этот элемент отображает информацию из элемента <meta:date>. Такое имя выбрано во избежание путаницы с полями <text:date>.

<define name="paragraph-content" combine="choice">
    <element name="text:modification-date">
        <interleave>
              <ref name="common-field-fixed-attlist"/>
              <ref name="common-field-data-style-name-attlist"/>
              <optional>
                  <attribute name="text:date-value">
                      <ref name="date"/>
                  </attribute>
              </optional>
        </interleave>
        <text/>
    </element>
</define>

6.4.16 Автор изменений документа[править]

Этот элемент представляет имя человека, который последним изменял документ.

<define name="paragraph-content" combine="choice">
    <element name="text:creator">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>

6.4.17 Поля статистики документа[править]

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

  • страниц;
  • абзацев;
  • слов;
  • символов;
  • таблиц;
  • изображений;
  • вложенных объектов.
<define name="paragraph-content" combine="choice">
    <element>
        <choice>
            <name>text:page-count</name>
            <name>text:paragraph-count</name>
            <name>text:word-count</name>
            <name>text:character-count</name>
            <name>text:table-count</name>
            <name>text:image-count</name>
            <name>text:object-count</name>
        </choice>
        <ref name="common-field-num-format-attlist"/>
        <text/>
    </element>
</define>

6.5 Поля базы данных[править]

Документы могут ссылаться на базы данных и отображать информацию из базы данных как текстовое содержимое. Для отображения информации базы данных схема OpenDocument использует группу текстовых полей, под общим названием полей базы данных. Офисные приложения могут использовать таблицы базы данных с SQL-серверов, следовательно поля базы данных могут быть использованы для доступа к любой базе данных SQL при условии доступа к соответствующим драйверам.

База данных может содержать следующие компоненты:

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

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

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

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

Для отображения данных из таблицы базы данных используйте элемент <text:database-display>. Элементы <text:database-select> и <text:database-next> могут использоваться для определения строка в пределах текущего выбора, которая должна отображаться. Номер текущей строки для конкретной таблицы может быть отображен с использованием элемента <text:database-row-number>. И в заключение, поле <text:database-name> отображает имя последней используемой базы данных, которой по умолчанию является база данных файла адресной книги.

6.5.1 Источник данных поля базы данных[править]

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

<define name="common-field-database-table">
    <ref name="common-field-database-table-attlist"/>
    <ref name="common-field-database-name"/>
</define>
Имя базы данных[править]

Атрибут text:database-name устанавливает исходную базу данных по ее имени.

<define name="common-field-database-name" combine="choice">
    <optional>
        <attribute name="text:database-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Ресурс подключения[править]

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

<define name="common-field-database-name" combine="choice">
    <ref name="form-connection-resource"/>
</define>
Имя таблицы базы данных[править]

Атрибут text:table-name определяет таблицу в пределах исходной базы данных.

<define name="common-field-database-table-attlist" combine="interleave">
    <attribute name="text:table-name">
        <ref name="string"/>
    </attribute>
</define>
Тип базы данных[править]

Атрибут text:table-type определяет, имеет ли отношение таблица базы данных к таблице SQL, запросу OpenDocument или является результатом команды SQL.

<define name="common-field-database-table-attlist" combine="interleave">
    <optional>
        <attribute name="text:table-type">
            <choice>
                <value>table</value>
                <value>query</value>
                <value>command</value>
            </choice>
        </attribute>
    </optional>
</define>

6.5.2 Отображение содержимого базы данных[править]

Элемент <text:database-display> отображает данные из базы данных. Когда в документ добавляется новый набор данных, все поля, отображающие данные из таблиц базы данных, обновляют свое содержимое.

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

  • text:database-name, text:table-name и text:table-type

Эти атрибуты определяют базу данных и таблицу базы данных, используемые этими полями.

  • text:database-column-name

См. ниже раздел Имя столбца для получения информации об этом атрибуте.

  • style:data-style-name

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

<define name="paragraph-content" combine="choice">
    <element name="text:database-display">
        <ref name="text-database-display-attlist"/>
        <text/>
    </element>
</define>
<define name="text-database-display-attlist" combine="interleave">
    <ref name="common-field-database-table"/>
</define>
<define name="text-database-display-attlist" combine="interleave">
    <ref name="common-field-data-style-name-attlist"/>
</define>
Имя столбца[править]

Атрибут text:column-name определяет столбец, из которого отображаются данные. Значение этого атрибута должно быть столбцом, содержащимся в указанной базе данных.

<define name="text-database-display-attlist" combine="interleave">
    <attribute name="text:column-name">
        <ref name="string"/>
    </attribute>
</define>

6.5.3 Выборка следующей строки базы данных[править]

Элемент <text:database-next> изменяет строку в текущей выборке, используемой для отображения во всех последующих полях <text:database-display>. Следующая строка из текущего выделения выбирается, если она удовлетворяет заданным условиям. Если требуется следующая строка независимо от каких-либо условий, условие может быть опущено или установлено в значение true.

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

  • text:database-name, text:table-name и text:table-type

Эти атрибуты определяют базу данных и таблицу базы данных, которые это поле использует.

  • text:condition

См. ниже раздел Условие для получения информации об этом атрибуте.

<define name="paragraph-content" combine="choice">
    <element name="text:database-next">
        <ref name="text-database-next-attlist"/>
    </element>
</define>
<define name="text-database-next-attlist" combine="interleave">
    <ref name="common-field-database-table"/>
</define>
Условие[править]

Атрибут text:condition определяет условное выражение. Выражение вычисляется, и если результат интерпретируется как логическое значение «истина», в качестве новой текущей строки используется следующая строка. Значения поля базы данных могут использоваться в выражениях, путем указания в квадратных скобках имени базы данных, имени таблицы и имени столбца, разделенных точками.

Если атрибут text:condition не представлен, считается, что результатом выражения является true, означающее, что следующая строка выбирается без условия.

<define name="text-database-next-attlist" combine="interleave">
    <optional>
        <attribute name="text:condition">
            <ref name="formula"/>
        </attribute>
    </optional>
</define>

Пример —

text:formula='ooo-w:[address book file.address.FIRSTNAME] == "Юлия"'

Этот пример определяет условие, которое истинно, если текущая строка из таблицы базы данных адресной книги является адресом человека по имени Юлия. Если показанное в этом примере условие используется в элементе <text:database-next>, произойдет следующее.

  • Элементы <text:database-display> отобразят данные из первой строки текущего выделения.
  • Если столбец FIRSTNAME текущей строки читается как Юлия, текущая строка заменяется, в противном случае, ничего не происходит.
  • Если первая строка Юлия, следующие элементы <text:database-display> отображают данные из второй строки, в противном случае, они отображают данные из первой строки.

См. раздел 6.7.6 для получения более подробной информации по синтаксису формулы атрибута text:condition, который аналогичен атрибуту text:formula.

6.5.4 Выбор номера строки[править]

Элемент <text:database-row-select> выбирает определенную строку из текущего выделения. Как и с элементом <text:database-row-next>, условие может быть определено так, что указанная строка выбирается только если условие принимает значение true.

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

  • text:database-name, text:table-name и text:table-type

Эти атрибуты определяют базу данных и таблицу базы данных, которые используются данным полем.

  • text:condition

Этот атрибут определяет условное выражение (см. раздел 6.5.3 для получения полного представления об использовании этого атрибута).

  • text:row-number

См. ниже атрибут Выбор номера строки для получения дополнительной информации.

<define name="paragraph-content" combine="choice">
    <element name="text:database-row-select">
        <ref name="text-database-row-select-attlist"/>
    </element>
</define>
<define name="text-database-row-select-attlist" combine="interleave">
    <ref name="common-field-database-table"/>
</define>
<define name="text-database-row-select-attlist" combine="interleave">
    <optional>
        <attribute name="text:condition">
            <ref name="formula"/>
        </attribute>
    </optional>
</define>
Выбор номера строки[править]

Этот атрибут определяет номер выбираемой строки, когда условие принимает значение true.

<define name="text-database-row-select-attlist" combine="interleave">
    <optional>
        <attribute name="text:row-number">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>

6.5.5 Отображение номера строки[править]

Элемент <text:database-row-number> отображает номер текущей строки для заданной таблицы. Имейте в виду, что элемент отображает фактически номер строки из базы данных, а не номер строки в текущем выделении, который используется как значение атрибута в элементе <text:database-row-select>.

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

  • text:database-name, text:table-name и text:table-type

Эти атрибуты определяют базу данных и таблицу базы данных, которые использует данное поле.

  • style:num-format и style:num-letter-sync

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

  • text:value

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

<define name="paragraph-content" combine="choice">
    <element name="text:database-row-number">
        <interleave>
            <ref name="common-field-database-table"/>
            <ref name="common-field-num-format-attlist"/>
            <optional>
                <attribute name="text:value">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
        </interleave>
        <text/>
    </element>
</define>

6.5.6 Отображение текущей базы данных и таблицы[править]

Офисные приложения могут отслеживать последние базу данных и таблицу, которые использовались в документе. Другими словами, таблицу, которая использовалась последним полем, вставленным в документ. Элемент <text:database-name> отображает базу данных и имя таблицы, которая использовалась самой последней.

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

  • text:database-name, text:table-name и text:table-type

Эти атрибуты определяют базу данных и таблицу базы данных, которые использует данное поле.

<define name="paragraph-content" combine="choice">
    <element name="text:database-name">
        <ref name="common-field-database-table"/>
        <text/>
    </element>
</define>

6.6 Прочие поля[править]

6.6.1 Поля переменных страницы[править]

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

Установка значений полей переменных страницы[править]

Для установки значения поля переменной страницы используйте элемент <text:variable-page-set>.

<define name="paragraph-content" combine="choice">
    <element name="text:page-variable-set">
        <ref name="text-set-page-variable-attlist"/>
        <text/>
    </element>
</define>
Включение или выключение переменных страницы[править]

В начале документа переменная страницы неактивна. Атрибут text:active может быть использован для блокировки переменной страницы после того, как она была использована в документе.

<define name="text-set-page-variable-attlist" combine="interleave">
    <optional>
        <attribute name="text:active">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
Корректировка переменной страницы[править]

Атрибут text:page-adjust определяет корректировку страницы. Значение активной переменной страницы — номер текущей страницы плюс значение корректировки ближайшей страницы, которое было установлено ранее.

<define name="text-set-page-variable-attlist" combine="interleave">
    <optional>
        <attribute name="text:page-adjust">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
Отображение полей переменных страницы[править]

Элемент <text:variable-page-get> отображает значение переменной страницы. Поле может быть форматировано так же, как и поля обычных номеров страниц.

<define name="paragraph-content" combine="choice">
    <element name="text:page-variable-get">
        <ref name="text-get-page-variable-attlist"/>
        <text/>
    </element>
</define>

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

  • style:num-format и style:num-letter-sync

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

<define name="text-get-page-variable-attlist" combine="interleave">
    <ref name="common-field-num-format-attlist"/>
</define>

6.6.2 Поля для заполнения[править]

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

Этот элемент содержит некоторый короткий текст, который отображается полем для заполнения.

<define name="paragraph-content" combine="choice">
    <element name="text:placeholder">
        <ref name="text-placeholder-attlist"/>
        <text/>
    </element>
</define>

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

  • тип поля для заполнения;
  • описание поля для заполнения.
Тип поля для заполнения[править]

Имеется пять различных типов полей для заполнения, представляющих пять возможных типов содержимого: текст, таблицы, текстовые блоки, изображения или объекты. Атрибут text:placeholder-type представляет тип содержимого. Этот атрибут обязателен, и он указывает, какой тип текстового содержимого представляет поле для заполнения. Атрибут может принимать значения text, text-box, image, table или object.

<define name="text-placeholder-attlist" combine="interleave">
    <attribute name="text:placeholder-type">
        <choice>
            <value>text</value>
            <value>table</value>
            <value>text-box</value>
            <value>image</value>
            <value>object</value>
        </choice>
    </attribute>
</define>
Описание поля для заполнения[править]

В дополнение к краткому тексту, хранящемуся в содержимом элемента, с элементом поля для заполнения может быть связан атрибут text:description. Этот атрибут необязателен. Предназначение — содержать более подробное описание цели полей для заполнения, чем описание, сохраненное в содержимом элемента (см. раздел 6.7.4 для получения информации по использованию атрибута text:description).

<define name="text-placeholder-attlist" combine="interleave">
    <ref name="common-field-description-attlist"/>
</define>

6.6.3 Условные текстовые поля[править]

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

<define name="paragraph-content" combine="choice">
    <element name="text:conditional-text">
        <ref name="text-conditional-text-attlist"/>
        <text/>
    </element>
</define>

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

  • условие;
  • текст, отображаемый в случае, если условие истинно;
  • текст, отображаемый в случае, если условие ложно;
  • текущее состояние.

Атрибут text:condition содержит логическое выражение. В зависимости от результата, отображается значение атрибута text:display-if-true или text:display-if-false.

<define name="text-conditional-text-attlist" combine="interleave">
    <attribute name="text:condition">
        <ref name="formula"/>
    </attribute>
</define>
Отображаемый текст, если условие истинно[править]

Атрибут text:string-value-if-true содержит текстовую строку, которая отображается, если условие вернуло значение true.

<define name="text-conditional-text-attlist" combine="interleave">
    <attribute name="text:string-value-if-true">
        <ref name="string"/>
    </attribute>
</define>
Отображаемый текст, если условие ложно[править]

Атрибут text:string-value-if-false содержит текстовую строку, которая отображается, если условие вернуло значение false.

<define name="text-conditional-text-attlist" combine="interleave">
    <attribute name="text:string-value-if-false">
        <ref name="string"/>
    </attribute>
</define>
Текущее значение и состояние[править]

Атрибут text:current-value содержит результат вычисления условия, заданного выражением в атрибуте text:condition. Результат, заданный в явном виде, позволяет приложениям отложить вычисление результата пока он не потребуется. Этот атрибут полезен по следующим причинам:

  • если вычисление выражения требует больших издержек, например, выражение содержит ссылки на несколько баз данных;
  • чтобы позволить преобразованиям корректно отображать состояние документа без необходимости анализа и вычисления условия.
<define name="text-conditional-text-attlist" combine="interleave">
    <optional>
        <attribute name="text:current-value">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

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

6.6.4 Скрытое текстовое поле[править]

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

<define name="paragraph-content" combine="choice">
    <element name="text:hidden-text">
        <ref name="text-hidden-text-attlist"/>
        <text/>
    </element>
</define>

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

  • условие;
  • текст;
  • скрытость.
Условие[править]

Атрибут text:condition содержит логическое выражение. Если результат вычисления выражения — true, то текст скрытый.

<define name="text-hidden-text-attlist" combine="interleave">
    <attribute name="text:condition">
        <ref name="formula"/>
    </attribute>
</define>
Текст[править]

Атрибут text:string-value определяет отображаемый текст, если значение условия — false.

<define name="text-hidden-text-attlist" combine="interleave">
    <attribute name="text:string-value">
        <ref name="string"/>
    </attribute>
</define>
Скрытость[править]

Атрибут text:is-hidden определяет, является ли в настоящий момент поле видимым или нет. Цель этого атрибута подобна назначению атрибута text:current-value в поле text:condition. Запись результатов позволяет при изменениях корректно представлять документ без необходимости анализа условного выражения или вычисления условия, при загрузке документа.

<define name="text-hidden-text-attlist" combine="interleave">
    <optional>
        <attribute name="text:is-hidden">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

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

6.6.5 Поля ссылок[править]

Формат OpenDocument использует четыре типа поля ссылки и каждый тип представлен своим собственным элементом. Типы полей ссылок основываются на типах элементов, на которые они ссылаются: сноски, закладки, ссылки и последовательности. Каждая ссылка содержит формат ссылки, определяющий какая информация отображается о указанном объекте цели. Например, ссылки могут отображать:

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

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

<define name="paragraph-content" combine="choice">
    <element>
        <choice>
            <name>text:reference-ref<code></name></code>
            <name>text:bookmark-ref<code></name></code>
        </choice>
        <interleave>
            <ref name="text-common-ref-content"/>
            <ref name="text-ref-content"/>
        </interleave>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:note-ref">
        <interleave>
            <ref name="text-common-ref-content"/>
            <ref name="text-note-ref-content"/>
            <ref name="text-ref-content"/>
        </interleave>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sequence-ref">
        <interleave>
            <ref name="text-common-ref-content"/>
            <ref name="text-sequence-ref-content"/>
        </interleave>
    </element>
</define>
<define name="text-common-ref-content" combine="interleave">
    <text/>
</define>

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

  • имя ссылки;
  • формат ссылки.
Имя ссылки[править]

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

<define name="text-common-ref-content" combine="interleave">
    <optional>
        <attribute name="text:ref-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Класс сноски[править]

Для элементов <text:note-ref> атрибут text:note-class определяет, ссылается ли поле на обычную или на концевую сноску.

<define name="text-note-ref-content" combine="interleave">
    <ref name="text-note-class"/>
</define>
Формат ссылки[править]

Атрибут text:reference-format определяет, какую информацию о ссылке следует отображать. Если формат ссылки не определен, то по умолчанию используется формат страницы.

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

  • page — отображается номер страницы, на которой встречается указанный объект;
  • chapter — отображается номер главы, на которой встречается указанный объект;
  • direction — отображается, выше или ниже относительно поля ссылки находится указанный объект;
  • text — отображается текст указанного объекта.

Ссылки на поля последовательности поддерживают следующие три дополнительных значения:

  • category-and-value — отображается имя и значение последовательности;
  • caption — отображается заголовок, в котором используется последовательность;
  • value — отображается значение последовательности.
<define name="text-ref-content" combine="interleave">
    <optional>
        <attribute name="text:reference-format">
            <choice>
                <value>page</value>
                <value>chapter</value>
                <value>direction</value>
                <value>text</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-sequence-ref-content" combine="interleave">
    <optional>
        <attribute name="text:reference-format">
            <choice>
                <value>page</value>
                <value>chapter</value>
                <value>direction</value>
                <value>text</value>
                <value>category-and-value</value>
                <value>caption</value>
                <value>value</value>
            </choice>
        </attribute>
    </optional>
</define>

Пример — Различные форматы ссылок и их отображения.

Следующая таблица иллюстрирует все возможные форматы ссылок и результирующее отображение ссылки, которое может быть использовано, чтобы сослаться на саму таблицу. В левом столбце перечислены значения атрибута text:reference-format, а в правом — отображение ссылки:

Формат ссылки Отображение ссылки
page 138
chapter 3.7.27
text Таблица 2: Примеры форматов ссылок
direction выше
category-and-value Таблица 1
caption Примеры форматов ссылок
value 1

6.6.6 Поля скриптов[править]

Поле скрипта хранит скрипты или фрагменты скриптов. Поле может быть использовано для хранения или редактирования скриптов, которые прикреплены к документу. Первичная цель этого поля — обеспечить эквивалент тегу <script> в [HTML4] так, чтобы содержание тега <script> из HTML могло импортироваться, редактироваться и экспортироваться с использованием офисных приложений.

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

  • Исходный код может содержаться в элементе <text:script>.
  • Исходный код может храниться во внешнем файле. Используйте атрибут xlink:href, чтобы определить местоположение файла.

Элемент должен иметь атрибут xlink:href или содержимое, но не оба одновременно.

<define name="paragraph-content" combine="choice">
    <element name="text:script">
        <interleave>
            <choice>
                <group>
                    <attribute name="xlink:href">
                    <ref name="anyURI"/>
                    </attribute>
                    <optional>
                        <attribute name="xlink:type" a:defaultValue="simple">
                            <value>simple</value>
                        </attribute>
                    </optional>
                </group>
                <text/>
            </choice>
            <optional>
                <attribute name="script:language">
                    <ref name="string"/>
                </attribute>
            </optional>
        </interleave>
    </element>
</define>
URL скрипта[править]

Атрибут xlink:href определяет местоположение файла, содержащего исходный код скрипта. Поле скрипта должно иметь либо атрибут URL, либо содержимое, но не оба одновременно.

Язык скрипта[править]

Атрибут script:language определяет язык, на котором написан исходный код скрипта, например JavaScript.

6.6.7 Поля макросов[править]

Поле макроса содержит имя макроса, который выполняется, когда поле активируется. Поле также содержит описание, которое отображается как содержимое поля.

С элементом <text:execute-macro> может быть связан атрибут:

  • имя макроса.
<define name="paragraph-content" combine="choice">
    <element name="text:execute-macro">
        <optional>
            <attribute name="text:name">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <text/>
    </element>
</define>
Имя макроса[править]

Атрибут text:name определяет макрос, который выполняется, когда активируется поле.

6.6.8 Скрытые поля абзаца[править]

Скрытое поле абзаца имеет функционал, подобный функционалу скрытых текстовых полей. Однако скрытое поле абзаца не имеет какого-либо содержимого. Оно скрывает абзац, в котором находится, что позволяет скрывать или отображать абзац форматированного текста в зависимости от того, какое значение вернуло определенное условие: true или false.

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

Примечание — В отличие от большинства полей это поле не отображает текст, а влияет на абзац, в котором оно содержится.

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

  • условие;
  • скрытость.
<define name="paragraph-content" combine="choice">
    <element name="text:hidden-paragraph">
        <ref name="text-hidden-paragraph-attlist"/>
        <text/>
    </element>
</define>
Условие[править]

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

<define name="text-hidden-paragraph-attlist" combine="interleave">
    <attribute name="text:condition">
        <ref name="formula"/>
    </attribute>
</define>
Скрытость[править]

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

Примечание — Этот атрибут не имеет другого назначения, кроме упрощения преобразований или начального отображения документа.

<define name="text-hidden-paragraph-attlist" combine="interleave">
    <optional>
        <attribute name="text:is-hidden">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

6.6.9 Поля DDE-соединения[править]

Поле DDE позволяет отображать информацию из DDE-соединения. Только один параметр требуется для поля DDE — имя DDE-соединения, которое передает данные в это поле. Этот элемент DDE-соединения определяет фактическое поле DDE, которое появляется в тексте.

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

<define name="paragraph-content" combine="choice">
    <element name="text:dde-connection">
        <attribute name="text:connection-name">
            <ref name="string"/>
        </attribute>
        <text/>
    </element>
</define>

С элементом <text:dde-connection> может быть связан атрибут:

  • имя DDE-соединения.
Имя DDE-соединения[править]

Атрибут text:name определяет имя DDE-соединения, на которое ссылается поле.

6.6.10 Поля измерений[править]

В пределах текста, содержащегося в измеряемых векторных объектах (см. раздел 9.2.11), поле <text:measure> отображает текущие размеры. Атрибут draw:kind определяет, какую часть измерения отображать. Он может принимать одно из следующих значений:

  • value — отображается измеренное значение, например «12»;
  • unit — отображается единица измерения, например «см»;
  • gap — промежуток или пробел отображается тогда и только тогда, когда направление написания текста измерения перпендикулярно линии измерения. Цель этого значения — добавить немного свободного пространства между линией измерения и текстом, если текст отображается перпендикулярно к линии измерения.
<define name="paragraph-content" combine="choice">
    <element name="text:measure">
        <attribute name="text:kind">
            <choice>
                <value>value</value>
                <value>unit</value>
                <value>gap</value>
            </choice>
        </attribute>
        <text/>
    </element>
</define>

6.6.11 Поле формулы таблицы[править]

Поле формулы таблицы унаследовано от предыдущих версий современных офисных приложений. Оно не должно использоваться в новых документах. В нем хранится формула, применяемая в таблицах, функция которой лучше выполняется атрибутом table:formula ячейки таблицы.

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

Элемент поле формулы таблицы может иметь следующие атрибуты:

  • text:formula

Этот атрибут содержит выражение, используемое для вычисления значения поля формулы таблицы (см. раздел 6.7.6 для получения информации по использованию этого атрибута).

  • text:display

Используйте этот атрибут для следующего:

— отобразить значение поля;

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

См. раздел 6.7.5 для получения информации по использованию этого атрибута.

  • style:data-style-name

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

<define name="paragraph-content" combine="choice">
    <element name="text:table-formula">
        <interleave>
            <ref name="common-field-formula-attlist"/>
            <ref name="common-field-display-value-formula-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>

6.7 Общие атрибуты полей[править]

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

6.7.1 Переменные значения и типы значения[править]

Переменные и большинство полей переменных имеют текущие значения. Каждая переменная имеет тип значения, который должен быть определен, когда поле поддерживает множество типов значений. Тип значения определяется использованием атрибута office:value-type.

<define name="common-value-type-attlist">
    <attribute name="office:value-type">
        <ref name="valueType"/>
    </attribute>
</define>

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

Тип
значения
Атрибут(ы) значения Кодируется как… Пример
float office:value Числовое значение "12.345"
percentage office:value Числовое значение "0.50"
currency office:value и
office:currency
Числовое значение и символ валюты "100"
"USD"
date office:date-value Значение даты, как определено в § 3.2.9 в [xmlschema-2], или значение даты и времени, как определено в § 3.2.7 в [xmlschema-2] "2003-04-17"
time office:time-value Длительность, как определено в § 3.2.6 в [xmlschema-2] "PT03H30M00S"
boolean office:boolean-value true или false "true"
string office:string-value Строки "abc def"

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

Сущность %value-attlist; определяется следующим образом:

<define name="common-value-and-type-attlist">
    <choice>
        <group>
            <attribute name="office:value-type">
                <value>float</value>
            </attribute>
            <attribute name="office:value">
                <ref name="double"/>
            </attribute>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>percentage</value>
            </attribute>
            <attribute name="office:value">
                <ref name="double"/>
            </attribute>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>currency</value>
            </attribute>
            <attribute name="office:value">
                <ref name="double"/>
            </attribute>
            <optional>
                <attribute name="office:currency">
                    <ref name="string"/>
                </attribute>
            </optional>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>date</value>
            </attribute>
            <attribute name="office:date-value">
                <ref name="dateOrDateTime"/>
            </attribute>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>time</value>
            </attribute>
            <attribute name="office:time-value">
                <ref name="duration"/>
            </attribute>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>boolean</value>
            </attribute>
            <attribute name="office:boolean-value">
                <ref name="boolean"/>
            </attribute>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>string</value>
            </attribute>
            <optional>
                <attribute name="office:string-value">
                    <ref name="string"/>
                </attribute>
            </optional>
        </group>
    </choice>
</define>

6.7.2 Фиксация[править]

Атрибут text:fixed определяет фиксировано или нет значение элемента поля. Если значение поля фиксировано, то значение элемента поля, к которому присоединен этот атрибут, будет неизменно на протяжении всех будущих редактирований документа. Если значение поля не фиксировано, то оно может быть заменено новым значением в процессе редактирования документа.

Этот атрибут может использоваться с:

  • полями даты;
  • полями времени;
  • полями номеров страниц;
  • всеми полями отправителя;
  • всеми полями автора.
<define name="common-field-fixed-attlist">
    <optional>
        <attribute name="text:fixed">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>

6.7.3 Имя переменной[править]

Используйте атрибут text:name для задания имени переменной при ее объявлении, установке значения или отображении. Этот атрибут может использоваться с любым из следующих элементов:

  • <text:variable-deсl>
  • <text:variable-set>
  • <text:variable-get>
  • <text:variable-input>
  • <text:user-field-deсl>
  • <text:user-field-get>
  • <text:user-field-input>
  • <text:sequence-deсl>
  • <text:sequence>

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

<define name="common-field-name-attlist">
    <attribute name="text:name">
        <ref name="variableName"/>
    </attribute>
</define>

6.7.4 Описание[править]

Атрибут text:description содержит краткое сообщение, которое отображается, когда у пользователя запрашивается ввод данных. Этот атрибут может использоваться с любым из следующих элементов:

  • <text:placeholder>
  • <text:variable-input>
  • <text:user-field-input>
  • <text:text-input>
<define name="common-field-description-attlist">
    <optional>
        <attribute name="text:description">
            <text/>
        </attribute>
    </optional>
</define>

6.7.5 Отображение[править]

Атрибут text:display поддерживает до трех следующих величин:

  • value

Это значение отображает значение поля. Некоторые поля не поддерживают это значение. Тогда атрибут text:display только лишь принимает значения value или none, и value или formula, соответственно.

  • formula

Это значение позволяет отображать формулу, а не значение поля. Некоторые поля не поддерживают это значение. Тогда атрибут text:display только принимает значения value или none, и value или formula, соответственно.

  • none

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

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

  • <text:variable-set>
  • <text:variable-get>
  • <text:variable-input>
  • <text:user-field-get>
  • <text:expression>
<define name="common-field-display-value-none-attlist">
    <optional>
        <attribute name="text:display">
            <choice>
              <value>value</value>
              <value>none</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-field-display-value-formula-none-attlist">
    <optional>
        <attribute name="text:display">
            <choice>
                <value>value</value>
                <value>formula</value>
                <value>none</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-field-display-value-formula-attlist">
    <optional>
        <attribute name="text:display">
            <choice>
                <value>value</value>
                <value>formula</value>
            </choice>
        </attribute>
    </optional>
</define>

6.7.6 Формула[править]

Атрибут text:formula содержит формулу или выражение для вычисления значения поля. Этот атрибут может использоваться с любым из следующих элементов:

  • <text:variable-set>
  • <text:user-field-deсl>
  • <text:sequence>
  • <text:expression>

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

<define name="common-field-formula-attlist">
    <optional>
        <attribute name="text:formula">
            <ref name="formula"/>
        </attribute>
    </optional>
</define>

6.7.7 Стиль форматирования[править]

Атрибут style:data-style-name ссылается на стиль данных, используемый при форматировании числового значения. Для получения общей информации о стилях см. раздел 14. Для получения более подробной информации по стилям данных см. раздел 14.7.

Для строковых переменных этот атрибут должен быть опущен. В других случаях этот атрибут необходим.

Имя должно соответствовать имени стиля данных.

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

  • <text:date>
  • <text:time>
  • <text:page-number>
  • <text:variable-set>
  • <text:variable-get>
  • <text:variable-input>
  • <text:user-field-get>
  • <text:user-field-input>
  • <text:expression>
<define name="common-field-data-style-name-attlist">
    <optional>
        <attribute name="style:data-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>

6.7.8 Стиль форматирования чисел[править]

Числа, используемые в числовых последовательностях, таких как номера страниц или поля последовательности, могут форматироваться в соответствии со стилями чисел, описанными в разделе 12.2. Поддерживаются следующие стили чисел:

  • числовой — 1, 2, 3, … ;
  • алфавитный — a, b, c, … или A, B, C, … ;
  • римский — i, ii, iii, iv, … или I, II, III, IV, … .

Примечание — Значение этого атрибута может быть любым из [XSLT] ключей форматов чисел 1, i, I, a, или A.

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

  • синхронизированную буквенную нумерацию, где буквы используются многократно, например aa, bb, cc и т. д.;
  • несинхронизированную буквенную нумерацию, например aa, ab, ac и т. д.

См. раздел 12.2 для получения более подробной информации.

<define name="common-field-num-format-attlist">
    <optional>
        <ref name="common-num-format-attlist"/>
    </optional>
</define>


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