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

ГОСТ Р ИСО/МЭК 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 Гражданского кодекса Российской Федерации не являются объектами авторских прав официальные документы государственных органов и органов местного самоуправления муниципальных образований, в том числе законы, другие нормативные акты, судебные решения, иные материалы законодательного, административного и судебного характера, официальные документы международных организаций, а также их официальные переводы; государственные символы и знаки (флаги, гербы, ордена, денежные знаки и тому подобное), а также символы и знаки муниципальных образований; произведения народного творчества (фольклор), не имеющие конкретных авторов; сообщения о событиях и фактах, имеющие исключительно информационный характер (сообщения о новостях дня, программы телепередач, расписания движения транспортных средств и тому подобное).
Россия