В данном разделе описана структура формата OpenDocument. Раздел содержит следующие подразделы:
- корни документа;
- метаданные документа;
- элемент основной части документа и типы документов;
- настройки приложений;
- скрипты;
- объявления начертания шрифта;
- стили;
- стили и макеты страниц.
В формате OpenDocument каждый структурный компонент представлен элементом со связанными с ним атрибутами. Структура документа в формате OpenDocument применяется ко всем типам документов. Не существует разницы между текстовыми документами, электронными таблицами или графическими документами, различие лишь в их содержимом. Кроме того, все типы документов могут содержать различные стили. Содержимое документа, общее для всех типов документов, может быть использовано для обмена информацией между различными типами документов.
Корневой элемент документа — первичный элемент документа формата 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>
Элемент <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>
Метаданные — главная информация о документе. В формате 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>
. Так как их семантика не определена в этой спецификации, приложения, соответствующие схеме, не могут обработать или показать такие данные. Приложениям следует сохранять эти данные при редактировании документа.
Пример — Образец метаданных документа формата 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>
Содержимое текстовых документов в основном состоит из последовательности, содержащей любое число абзацев, таблиц, индексов, текстовых фреймов, текстовых разделов и графических элементов. В дополнение к этому, текстовый документ может содержать формы, отслеживание изменений и объявления переменных. Каждый из них определяется в прологе, и на них можно ссылаться из содержимого документа.
<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>
Содержимое документов диаграмм в основном состоит из элементов диаграмм.
<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>
Документ может содержать несколько скриптов на разных языках. Каждый скрипт представлен элементом <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>
Элемент <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>
Формат OpenDocument поддерживает три типа стилей.
Большинство офисных приложений поддерживает стили в пределах своего пользовательского интерфейса. В рамках данной спецификации XML-представления таких стилей упоминаются как стили. Когда требуется дифференциация с другими стилями, они упоминаются как общие стили. Термин общий показывает, что этот тип стиля воспринимается пользователем офисного приложения как стиль.
Автоматические стили содержат свойства форматирования, которые в пользовательском интерфейсе визуального отображения документа связаны с объектом, таким как абзац. Термин автоматический показывает, что стиль формируется автоматически. Другими словами, свойства форматирования, которые непосредственно связаны со специфичным объектом, представлены автоматическим стилем. Таким образом достигается разделение содержимого и дизайна.
Мастер-стиль — это общий стиль, который содержит информацию о форматировании и дополнительное содержимое, отображаемое с содержимым документа при применении стиля. Примером мастер-стиля являются мастер-страницы. Мастер-страницы могут быть использованы в графических приложениях. В этом случае дополнительное содержимое — векторные фигуры, отображаются в качестве фона графической страницы. Мастер-страницы также могут быть использованы в текстовых документах. В этом случае дополнительное содержимое — это верхние и нижние колонтитулы. Отметьте, пожалуйста, что содержимое, содержащееся в мастер-стилях, — дополнительное содержимое, которое влияет на отображение документа, но не изменяет содержимого документа.
Все типы стилей являются частью документа, что соответствует заинтересованности пользователей офисных приложений. Они представляют выходной аппаратно-независимый макет страницы и информацию о форматировании, необходимые пользователю для создания или редактирования документа. Предполагается, что автор документа хочет сохранить информацию о форматировании и макете страницы во время загрузки или отображения документа на любом устройстве, так как это общепринятая практика для документов, созданных текстовыми процессорами.
Этот тип стиля отличается от таблиц стилей [CSS2] или [XSLT], которые используются для отображения документа. Дополнительная таблица стилей для CSS, XSLT и т. д. требуется для отображения документа в формате OpenDocument на определенном устройстве. Эта таблица стилей должна учитывать стили, уже существующие в документе, так же как и требования совместимости с устройствами вывода. В идеальном варианте таблица стилей зависит только от устройств вывода.
Более подробную информацию о стилях см. в разделе 14.
Общие и автоматические стили имеют одинаковое XML-представление, но они содержатся в двух разных элементах-контейнерах:
<office:styles>
для общих стилей;
<office:automatic-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 Гражданского кодекса Российской Федерации не являются объектами авторских прав официальные документы государственных органов и органов местного самоуправления муниципальных образований, в том числе законы, другие нормативные акты, судебные решения, иные материалы законодательного, административного и судебного характера, официальные документы международных организаций, а также их официальные переводы; государственные символы и знаки (флаги, гербы, ордена, денежные знаки и тому подобное), а также символы и знаки муниципальных образований; произведения народного творчества (фольклор), не имеющие конкретных авторов; сообщения о событиях и фактах, имеющие исключительно информационный характер (сообщения о новостях дня, программы телепередач, расписания движения транспортных средств и тому подобное).
|
|