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

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


2 Структура документа

править

В данном разделе описана структура формата OpenDocument. Раздел содержит следующие подразделы:

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

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

2.1 Корни документа

править

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

Формат OpenDocument поддерживает следующие два способа представления документа.

  • Как единый XML-документ.
  • Как набор нескольких поддокументов внутри пакета (см. раздел 17), каждый из которых содержит часть целого документа. Каждый поддокумент имеет свой собственный корень и содержит отдельный аспект XML-документа. Например, один поддокумент содержит стили, другой — содержимое документа. Все типы документов, например текстовые документы и электронные таблицы, используют общие определения документов и поддокументов.

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

Корневой элемент Содержимое поддокумента Название поддокумента в пакете
<office:document> Офисный документ целиком в едином XML-документе н/д
<office:document-content> Содержимое документа и используемые в нем автоматические стили content.xml
<office:document-styles> Стили, используемые в содержимом документа, и автоматические стили, используемые в самих стилях styles.xml
<office:document-meta> Метаинформация документа, такая как автор или время последнего сохранения meta.xml
<office:document-settings> Настройки, специфические для приложения, такие как размер окна или параметры печати settings.xml

Определения корневых элементов, описанных в таблице выше, аналогичны определению <office:document>, за исключением того, что спецификация дочернего элемента соответственно ограничена.

<start>
    <choice>
        <ref name="office-document"/>
        <ref name="office-document-content"/>
        <ref name="office-document-styles"/>
        <ref name="office-document-meta"/>
        <ref name="office-document-settings"/>
    </choice>
</start>

2.1.1 Модели содержимого корневых элементов документа

править

В следующей таблице приведены модели содержимого пяти корневых элементов. Заметим, что <office:document> может содержать все поддерживаемые элементы верхнего уровня. Ни один из четырех корневых элементов поддокументов по отдельности не содержит информацию в полном объеме, в то время как в совокупности — содержат.

Корневой элемент Мета-
дан-
ные
На-
строй-
ки при-
ложе-
ния
Скри-
пты
Опре-
деле-
ния
шриф-
тов
Сти-
ли
Авто-
мати-
ческие
стили
Сти-
ли со-
став-
ных
доку-
мен-
тов
Основ-
ная
часть
доку-
мента
<office:document>
<office:document-content>        
<office:document-styles>        
<office:document-meta>              
<office:document-settings>              

Корень <office:document> содержит документ целиком.

<define name="office-document">
    <element name="office:document">
        <ref name="office-document-attrs"/>
        <ref name="office-document-common-attrs"/>
        <ref name="office-meta"/>
        <ref name="office-settings"/>
        <ref name="office-scripts"/>
        <ref name="office-font-face-decls"/>
        <ref name="office-styles"/>
        <ref name="office-automatic-styles"/>
        <ref name="office-master-styles"/>
        <ref name="office-body"/>
    </element>
</define>

Корень <office:document-content> включает только содержимое документа наряду с требуемыми для него автоматическими стилями.

<define name="office-document-content">
    <element name="office:document-content">
        <ref name="office-document-common-attrs"/>
        <ref name="office-scripts"/>
        <ref name="office-font-face-decls"/>
        <ref name="office-automatic-styles"/>
        <ref name="office-body"/>
    </element>
</define>

Корень <office:document-styles> содержит все именованные стили документа наряду с необходимыми для них автоматическими стилями.

<define name="office-document-styles">
    <element name="office:document-styles">
        <ref name="office-document-common-attrs"/>
        <ref name="office-font-face-decls"/>
        <ref name="office-styles"/>
        <ref name="office-automatic-styles"/>
        <ref name="office-master-styles"/>
    </element>
</define>

Корень <office:document-meta> содержит метаинформацию документа.

<define name="office-document-meta">
    <element name="office:document-meta">
        <ref name="office-document-common-attrs"/>
        <ref name="office-meta"/>
    </element>
</define>

Корень <office:document-settings> содержит специфические настройки приложения, используемые для обработки документа.

<define name="office-document-settings">
    <element name="office:document-settings">
        <ref name="office-document-common-attrs"/>
        <ref name="office-settings"/>
    </element>
</define>

2.1.2 Атрибуты корня документа

править
Версия
править

Все корневые элементы имеют атрибут office:version, который показывает, к какой версии спецификации он относится. Номер версии представлен в формате revision.version (ревизия.версия). Если файл имеет версию, известную XML-процессору, данный документ может быть проверен на соответствие. В противном случае, проверка на соответствие документа необязательна, но при этом он должен быть правильно сформирован.

<define name="office-document-common-attrs" combine="interleave">
    <optional>
        <attribute name="office:version">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
Тип MIME
править

Элемент <office:document> имеет атрибут office:mimetype, который показывает тип документа (текст, электронная таблица и т. д.). Данный атрибут особенно важен для простых XML-файлов, для которых существует только один способ, которым может быть определен тип документа (в пакете тип MIME также представлен в отдельном файле, см. раздел 17.4). Значениями данного атрибута являются типы MIME, которые используются для пакетного варианта офисных документов (см. раздел 1.7).

<define name="office-document-attrs" combine="interleave">
    <attribute name="office:mimetype">
        <ref name="string"/>
    </attribute>
</define>

2.2 Метаданные документа

править

Метаданные — главная информация о документе. В формате OpenDocument все элементы метаданных содержатся в элементе <office:meta>, располагаемом обычно в начале документа. Элементы метаданных могут быть опущены или встречаться несколько раз. Обновление множественных вхождений одного типа элементов зависит от приложения.

<define name="office-meta">
    <optional>
        <element name="office:meta">
            <ref name="office-meta-content"/>
        </element>
    </optional>
</define>

<define name="office-meta-content">
    <ref name="anyElements"/>
</define>

<define name="office-meta-content-strict">
    <zeroOrMore>
        <ref name="office-meta-data"/>
    </zeroOrMore>
</define>

2.2.1 Предопределенные и специфические метаданные

править

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

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

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

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

2.2.2 Образец метаданных

править

Пример — Образец метаданных документа формата OpenDocument:

<office:meta>
    <dc:title>Title of the document</dc:title>
    <dc:description>Description/Comment for the document</dc:description>
    <meta:initial-creator>User Name</meta:initial-creator>
    <meta:creation-date>1999-10-18T12:34:56</meta:creation-date>
    <dc:creator>User Name</dc:creator>
    <dc:date>1999-10-19T15:16:17</dc:date>
    <meta:printed-by>User Name</meta:printed-by>
    <meta:print-date>1999-10-20T16:17:18</meta:print-date>
    <dc:subject>Description of the document</dc:subject>
    <meta:editing-duration>PT5H10M10S</meta:editing-duration>
    <meta:keyword>First keyword</meta:keyword>
    <meta:keyword>Second keyword</meta:keyword>
    <meta:keyword>Third keyword</meta:keyword>
    <meta:template xlink:type="simple"

xlink:href="file:///c|/office52/share/template/german/finance/budget.vor"
    xlink:title="Template name"
    meta:date="1999-10-15T10:11:12" />
    <meta:auto-reload
    xlink:type="simple"
    xlink:href="file:///..."
    meta:delay="P60S" />
    <dc:language>de-DE</dc:language>
    <meta:user-defined meta:name="Field 1"
    meta:value-type="string">Value 1</meta:user-defined>
    <meta:user-defined meta:name="Field 2"
    meta:value-type="float">1.234</meta:user-defined>
</office:meta>

2.3 Элемент основной части документа и типы документов

править

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

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

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

<define name="office-body">
    <element name="office:body">
        <ref name="office-body-content"/>
    </element>
</define>

2.3.1 Текстовые документы

править

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

<define name="office-body-content" combine="choice">
    <element name="office:text">
        <ref name="office-text-attlist"/>
        <ref name="office-text-content-prelude"/>
        <zeroOrMore>
            <ref name="office-text-content-main"/>
        </zeroOrMore>
        <ref name="office-text-content-epilogue"/>
    </element>
</define>
Модель содержимого текстового документа
править

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

<define name="office-text-content-prelude">
    <ref name="office-forms"/>
    <ref name="text-tracked-changes"/>
    <ref name="text-decls"/>
    <ref name="table-decls"/>
</define>

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

Необязательно текстовый документ должен содержать абзац. Текстовый документ может состоять из единственной последовательности фреймов.

<define name="office-text-content-main">
    <choice>
    <zeroOrMore>
        <ref name="text-content"/>
    </zeroOrMore>
    <group>
        <ref name="text-page-sequence"/>
        <zeroOrMore>
            <choice>
                <ref name="draw-a"/>
                <ref name="shape"/>
            </choice>
        </zeroOrMore>
    </group>
    </choice>
</define>

<define name="text-content">
    <choice>
        <ref name="text-h"/>
        <ref name="text-p"/>
        <ref name="text-list"/>
        <ref name="text-numbered-paragraph"/>
        <ref name="table-table"/>
        <ref name="draw-a"/>
        <ref name="text-section"/>
        <ref name="text-table-of-content"/>
        <ref name="text-illustration-index"/>
        <ref name="text-table-index"/>
        <ref name="text-object-index"/>
        <ref name="text-user-index"/>
        <ref name="text-alphabetical-index"/>
        <ref name="text-bibliography"/>
        <ref name="shape"/>
        <ref name="change-marks"/>
    </choice>
</define>

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

<define name="office-text-content-epilogue">
    <ref name="table-functions"/>
</define>
Составные текстовые документы
править

Существует общий вариант использования больших документов, редактируемых в разных сущностях, основанный на том, что составной документ содержит несколько связанных поддокументов. Это может быть реализовано при использовании связанных разделов текста (см. раздел 4.4). С целью облегчения редактирующему приложению адаптации пользовательского интерфейса для лучшей поддержки представления составного документа с составляющими частями (в отличие от документа с произвольно связанными частями) может быть использован флаг text:global. Если он установлен в значение true, то это сообщает приложению, что связанные разделы документа несут семантику «часть — целое». Фактическое XML-представление раздела при этом не изменяется.

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

2.3.2 Графические документы

править

Содержимое графических документов состоит из последовательности страниц изображений.

<define name="office-body-content" combine="choice">
    <element name="office:drawing">
        <ref name="office-drawing-attlist"/>
        <ref name="office-drawing-content-prelude"/>
        <ref name="office-drawing-content-main"/>
        <ref name="office-drawing-content-epilogue"/>
    </element>
</define>

<define name="office-drawing-attlist">
    <empty/>
</define>
Модель содержимого графического элемента
править

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

<define name="office-drawing-content-prelude">
    <ref name="text-decls"/>
    <ref name="table-decls"/>
</define>

Содержимое главного документа состоит из последовательности страниц изображений.

<define name="office-drawing-content-main">
    <zeroOrMore>
        <ref name="draw-page"/>
    </zeroOrMore>
</define>

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

<define name="office-drawing-content-epilogue">
    <ref name="table-functions"/>
</define>

2.3.3 Документы презентаций

править

Содержимое документов презентаций состоит из последовательности страниц изображений.

<define name="office-body-content" combine="choice">
    <element name="office:presentation">
        <ref name="office-presentation-attlist"/>
        <ref name="office-presentation-content-prelude"/>
        <ref name="office-presentation-content-main"/>
        <ref name="office-presentation-content-epilogue"/>
    </element>
</define>

<define name="office-presentation-attlist">
    <empty/>
</define>
Модель содержимого документа презентации
править

Пролог документа презентации идентичен графическому документу, но может содержать некоторые дополнительные определения (см. раздел 2.3.2).

<define name="office-presentation-content-prelude">
    <ref name="text-decls"/>
    <ref name="table-decls"/>
    <ref name="presentation-decls"/>
</define>

Содержимое главного документа состоит из последовательности страниц изображений.

<define name="office-presentation-content-main">
    <zeroOrMore>
        <ref name="draw-page"/>
    </zeroOrMore>
</define>

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

<define name="office-presentation-content-epilogue">
    <ref name="presentation-settings"/>
    <ref name="table-functions"/>
</define>

2.3.4 Документы электронных таблиц

править

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

<define name="office-body-content" combine="choice">
    <element name="office:spreadsheet">
        <ref name="office-spreadsheet-attlist"/>
        <ref name="office-spreadsheet-content-prelude"/>
        <ref name="office-spreadsheet-content-main"/>
        <ref name="office-spreadsheet-content-epilogue"/>
    </element>
</define>
Модель содержимого документа электронных таблиц
править

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

<define name="office-spreadsheet-content-prelude">
    <optional>
        <ref name="table-tracked-changes"/>
    </optional>
    <ref name="text-decls"/>
    <ref name="table-decls"/>
</define>

<define name="table-decls">
    <optional>
        <ref name="table-calculation-settings"/>
    </optional>
    <optional>
        <ref name="table-content-validations"/>
    </optional>
    <optional>
        <ref name="table-label-ranges"/>
    </optional>
</define>

Главный документ — это список таблиц.

<define name="office-spreadsheet-content-main">
    <zeroOrMore>
        <ref name="table-table"/>
    </zeroOrMore>
</define>

Эпилог документов электронных таблиц содержит объявления для именованных выражений, диапазонов баз данных, сводных таблиц, операций по консолидации и DDE-ссылок.

<define name="office-spreadsheet-content-epilogue">
    <ref name="table-functions"/>
</define>

<define name="table-functions">
    <optional>
        <ref name="table-named-expressions"/>
    </optional>
    <optional>
        <ref name="table-database-ranges"/>
    </optional>
    <optional>
        <ref name="table-data-pilot-tables"/>
    </optional>
    <optional>
        <ref name="table-consolidation"/>
    </optional>
    <optional>
        <ref name="table-dde-links"/>
    </optional>
</define>

2.3.5 Документы диаграмм

править

Содержимое документов диаграмм в основном состоит из элементов диаграмм.

<define name="office-body-content" combine="choice">
    <element name="office:chart">
        <ref name="office-chart-attlist"/>
        <ref name="office-chart-content-prelude"/>
        <ref name="office-chart-content-main"/>
        <ref name="office-chart-content-epilogue"/>
    </element>
</define>

<define name="office-chart-attlist">
    <empty/>
</define>
Модель содержимого документа диаграмм
править

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

<define name="office-chart-content-prelude">
    <ref name="text-decls"/>
    <ref name="table-decls"/>
</define>

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

<define name="office-chart-content-main">
    <ref name="chart-chart"/>
</define>

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

<define name="office-chart-content-epilogue">
    <ref name="table-functions"/>
</define>

2.3.6 Документы растровой графики

править

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

<define name="office-body-content" combine="choice">
    <element name="office:image">
        <ref name="office-image-attlist"/>
        <ref name="office-image-content-prelude"/>
        <ref name="office-image-content-main"/>
        <ref name="office-image-content-epilogue"/>
    </element>
</define>

<define name="office-image-attlist">
    <empty/>
</define>
Модель содержимого документа растровой графики
править

Пролог документа растровой графики пуст.

<define name="office-image-content-prelude">
    <empty/>
</define>

Содержимое главного документа состоит только из одного фрейма.

<define name="office-image-content-main">
    <ref name="draw-frame"/>
</define>

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

<define name="office-image-content-epilogue">
    <empty/>
</define>

2.4 Параметры настройки приложений

править

Параметры настройки приложений содержатся в элементе <office:settings>.

<define name="office-settings">
    <optional>
        <element name="office:settings">
            <oneOrMore>
                <ref name="config-config-item-set"/>
            </oneOrMore>
        </element>
    </optional>
</define>

Параметры настройки офисных приложений можно разделить на несколько категорий, каждая из которых представлена элементом <config:config-item-set>. Например, могут существовать две категории:

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

2.4.1 Последовательность параметров настройки

править

Элемент <config:config-item-set> является контейнером для всех типов параметров настройки. Параметры настройки могут содержаться в элементе в любом порядке.

<define name="config-config-item-set">
  <element name="config:config-item-set">
    <ref name="config-config-item-set-attlist"/>
    <ref name="config-items"/>
  </element>
</define>

<define name="config-items">
    <oneOrMore>
        <choice>
            <ref name="config-config-item"/>
            <ref name="config-config-item-set"/>
            <ref name="config-config-item-map-named"/>
            <ref name="config-config-item-map-indexed"/>
        </choice>
    </oneOrMore>
</define>
Имя параметров настройки
править

Атрибут config:name определяет имя контейнера параметров настройки. Для элементов верхнего уровня <config:config-item-set> существуют элементы, непосредственно дочерние элемента <office:settings>, имени которых должен предшествовать префикс пространства имен, определяющий приложение, к которому относятся параметры настройки.

<define name="config-config-item-set-attlist" combine="interleave">
    <attribute name="config:name">
        <ref name="string"/>
    </attribute>
</define>

Пример —

<office:settings>
    <config:config-item-set xmlns:ooo="http://www.openoffice.org/...";
                            config:name="ooo:view-settings">
        <config:config-item config:name="ViewAreaTop"
                            config:type="int">0</config:config-item>
    </config:config-item-set>
</office:settings>

2.4.2 Основные параметры настройки

править

Элемент <config:config-item> содержит все основные параметры настройки. Значение параметра хранится в элементе.

<define name="config-config-item">
    <element name="config:config-item">
        <ref name="config-config-item-attlist"/>
        <text/>
    </element>
</define>
Имя параметра настройки
править

Атрибут config:name устанавливает имя параметра настройки.

<define name="config-config-item-attlist" combine="interleave">
    <attribute name="config:name">
        <ref name="string"/>
    </attribute>
</define>
Тип параметра настройки
править

Атрибут config:type устанавливает тип данных параметра настройки.

<define name="config-config-item-attlist" combine="interleave">
    <attribute name="config:type">
        <choice>
            <value>boolean</value>
            <value>short</value>
            <value>int</value>
            <value>long</value>
            <value>double</value>
            <value>string</value>
            <value>datetime</value>
            <value>base64Binary</value>
        </choice>
    </attribute>
</define>

2.4.3 Индексный доступ к последовательностям

править

Элемент <config:config-item-map-indexed> является контейнером для последовательностей. Порядок определяет индекс элементов.

<define name="config-config-item-map-indexed">
    <element name="config:config-item-map-indexed">
        <ref name="config-config-item-map-indexed-attlist"/>
        <oneOrMore>
            <ref name="config-config-item-map-entry"/>
        </oneOrMore>
    </element>
</define>
Имя параметров настройки
править

Атрибут config:name устанавливает имя последовательности параметров настройки.

<define name="config-config-item-map-indexed-attlist" combine="interleave">
    <attribute name="config:name">
        <ref name="string"/>
    </attribute>
</define>

2.4.4 Запись в ассоциированный массив

править

Элемент <config:config-item-map-entry> представляет запись в проиндексированной или именованной последовательности параметров настройки. Он является контейнером для всех типов элементов параметров настройки.

<define name="config-config-item-map-entry">
    <element name="config:config-item-map-entry">
        <ref name="config-config-item-map-entry-attlist"/>
        <ref name="config-items"/>
    </element>
</define>
Имя параметров настройки
править

Атрибут config:name устанавливает имя последовательности параметров настройки.

<define name="config-config-item-map-entry-attlist" combine="interleave">
    <optional>
        <attribute name="config:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

2.4.5 Именованный доступ к последовательностям

править

Элемент <config:config-item-map-named> является контейнером для последовательностей, где каждый параметр настройки в последовательности определяется по имени.

<define name="config-config-item-map-named">
    <element name="config:config-item-map-named">
        <ref name="config-config-item-map-named-attlist"/>
        <oneOrMore>
            <ref name="config-config-item-map-entry"/>
        </oneOrMore>
    </element>
</define>
Имя параметров настройки
править

Атрибут config:name устанавливает имя последовательности параметров настройки.

<define name="config-config-item-map-named-attlist" combine="interleave">
    <attribute name="config:name">
        <ref name="string"/>
    </attribute>
</define>

2.4.6 Параметры настройки позиции курсора

править

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

Для отображения позиции текстового курсора в документе следует использовать инструкцию обработки PITarget opendocument (см. § 2.6 в [XML1.0]). Имя инструкции обработки позиции курсора, cursor-position, должно следовать PITarget opendocument. Инструкция обработки может иметь произвольные атрибуты, специфические для приложения, например для связи позиции курсора с определенным визуальным отображением документа, где сами виды отображения определяются параметрами настройки, специфичными для приложения. Синтаксис для таких атрибутов должен быть идентичен синтаксису атрибутов в начальных XML-тегах.

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

Пример — Инструкция обработки позиции курсора:

<text:p>This is<?opendocument cursor-position view-id="view1"?> an example.</text:p>

2.5 Скрипты

править

Документ может содержать несколько скриптов на разных языках. Каждый скрипт представлен элементом <office:script>. Все такие элементы скриптов содержатся в единственном элементе <office:scripts>.

Понятие скрипт не накладывает ограничения на язык скрипта или объектную модель. Скрипт может работать с объектной моделью документа (Document Object Model (DOM)) в формате OpenDocument или со специфичными функциями API приложения.

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

В дополнение к элементам <office:script>, элемент <office:scripts> может также содержать элемент <office:event-listeners>, который содержит события, связанные с самим документом. Примером являются события, вызываемые во время открытия или закрытия документа. См. раздел 12.4 для получения более подробной информации об элементе <office:event-listeners>.

<define name="office-scripts">
    <optional>
        <element name="office:scripts">
            <zeroOrMore>
                <ref name="office-script"/>
            </zeroOrMore>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
        </element>
    </optional>
</define>

2.5.1 Скрипт

править

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

<define name="office-script">
    <element name="office:script">
        <ref name="office-script-attlist"/>
        <mixed>
            <ref name="anyElements"/>
        </mixed>
    </element>
</define>
Язык скрипта
править

Атрибут script:language определяет язык скрипта по его названию. Так как названия языков скрипта специфичны для приложения, названию должен предшествовать префикс пространства имен.

<define name="office-script-attlist">
    <attribute name="script:language">
        <ref name="string"/>
    </attribute>
</define>

2.6 Объявления начертания шрифта

править

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

<define name="office-font-face-decls">
    <optional>
        <element name="office:font-face-decls">
            <zeroOrMore>
                <ref name="style-font-face"/>
            </zeroOrMore>
        </element>
    </optional>
</define>

2.7 Стили

править

Формат OpenDocument поддерживает три типа стилей.

  • Общие стили

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

  • Автоматические стили

Автоматические стили содержат свойства форматирования, которые в пользовательском интерфейсе визуального отображения документа связаны с объектом, таким как абзац. Термин автоматический показывает, что стиль формируется автоматически. Другими словами, свойства форматирования, которые непосредственно связаны со специфичным объектом, представлены автоматическим стилем. Таким образом достигается разделение содержимого и дизайна.

  • Мастер-стили

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

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

Этот тип стиля отличается от таблиц стилей [CSS2] или [XSLT], которые используются для отображения документа. Дополнительная таблица стилей для CSS, XSLT и т. д. требуется для отображения документа в формате OpenDocument на определенном устройстве. Эта таблица стилей должна учитывать стили, уже существующие в документе, так же как и требования совместимости с устройствами вывода. В идеальном варианте таблица стилей зависит только от устройств вывода.

Более подробную информацию о стилях см. в разделе 14.

2.7.1 Расположение стилей

править

Общие и автоматические стили имеют одинаковое XML-представление, но они содержатся в двух разных элементах-контейнерах:

  • <office:styles> для общих стилей;
  • <office:automatic-styles> для автоматических стилей.

Мастер-стили содержатся в своих собственных элементах-контейнерах:

  • <office:master-styles>
<define name="office-styles">
    <optional>
        <element name="office:styles">
            <interleave>
                <ref name="styles"/>
                <zeroOrMore>
                    <ref name="style-default-style"/>
                </zeroOrMore>
                <optional>
                    <ref name="text-outline-style"/>
                </optional>
                <zeroOrMore>
                    <ref name="text-notes-configuration"/>
                </zeroOrMore>
                <optional>
                    <ref name="text-bibliography-configuration"/>
                </optional>
                <optional>
                    <ref name="text-linenumbering-configuration"/>
                </optional>
                <zeroOrMore>
                    <ref name="draw-gradient"/>
                </zeroOrMore>
                <zeroOrMore>
                    <ref name="svg-linearGradient"/>
                </zeroOrMore>
                <zeroOrMore>
                    <ref name="svg-radialGradient"/>
                </zeroOrMore>
                <zeroOrMore>
                    <ref name="draw-hatch"/>
                </zeroOrMore>
                <zeroOrMore>
                    <ref name="draw-fill-image"/>
                </zeroOrMore>
                <zeroOrMore>
                    <ref name="draw-marker"/>
                </zeroOrMore>
                <zeroOrMore>
                    <ref name="draw-stroke-dash"/>
                </zeroOrMore>
                <zeroOrMore>
                    <ref name="draw-opacity"/>
                </zeroOrMore>
                <zeroOrMore>
                    <ref name="style-presentation-page-layout"/>
                </zeroOrMore>
            </interleave>
        </element>
    </optional>
</define>
<define name="office-automatic-styles">
    <optional>
        <element name="office:automatic-styles">
            <interleave>
                <ref name="styles"/>
                <zeroOrMore>
                    <ref name="style-page-layout"/>
                </zeroOrMore>
            </interleave>
        </element>
    </optional>
</define>
<define name="office-master-styles">
    <optional>
        <element name="office:master-styles">
            <interleave>
                <zeroOrMore>
                    <ref name="style-master-page"/>
                </zeroOrMore>
                <optional>
                    <ref name="style-handout-master"/>
                </optional>
                <optional>
                    <ref name="draw-layer-set"/>
                </optional>
            </interleave>
        </element>
    </optional>
</define>

<define name="styles">
    <interleave>
        <zeroOrMore>
            <ref name="style-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="text-list-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-number-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-currency-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-percentage-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-date-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-time-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-boolean-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-text-style"/>
        </zeroOrMore>
    </interleave>
</define>

Следующие примеры иллюстрируют разные типы стилей OpenDocument.

Пример — Стили OpenDocument:

<office:document ...>
    <office:styles>
        ...
    </office:styles>
    <office:automatic-styles>
        ...
    </office:automatic-styles>
    <office:master-styles>
        ...
    </office:master-styles>
</office:document>

2.8 Стили и макеты страницы

править

Стили и макеты страниц в документе определяются:

  • макетами страниц;
  • мастер-страницами.

Макет страницы описывает физические свойства или геометрию страницы, например, размер страницы, поля, высоту верхних и нижних колонтитулов.

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

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

В текстовом документе или электронной таблице мастер-страница может быть связана со стилями абзацев или таблиц через использование атрибута style:master-page-name. Каждый раз, когда стиль абзаца или таблицы будет использован для текста, перед абзацем или таблицей будет вставлен разрыв страницы. Страница, которая начинается с позиции разрыва страницы, использует указанную мастер-страницу.

В графических документах и презентациях мастер-страницы могут быть связаны с графической страницей через использование атрибута style:parent-style-name.

Примечание — Методология организации страниц в формате OpenDocument значительно отличается от методологии, принятой в [XSL]. В XSL колонтитулы содержатся внутри последовательности страниц, которые также содержат содержимое документа. В формате OpenDocument колонтитулы содержатся в стилях страницы. Таким образом, содержимое колонтитулов может быть изменено или пропущено без последствий для содержимого документа.

Макеты страниц описаны в разделе 14.3, мастер-страницы — в разделе 14.4.


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