Структура документа PresentationML
Структура документа PresentationML состоит из <presentation/>
элемента (Presentation), который содержит элементы (Образец слайдов), <sldLayout/>
(Макет слайда <sldMaster/>
), <sld/>
(Слайд) и <theme/>
(Тема), которые ссылались на слайды в презентации. (Элемент Theme является корневым элементом части DrawingMLTheme.) Эти элементы являются минимальными элементами, необходимыми для допустимого документа презентации.
Кроме того, документ презентации может содержать <notes/>
(слайд заметок), <handoutMaster/>
(образец раздаточных материалов), <sp/>
(фигура), <pic/>
(рисунок), <tbl/>
(таблица) и другие элементы, связанные со слайдами. (Элементы "таблица" определяются в схеме DrawingML.)
Документ PresentationML также может содержать следующие элементы: анимацию, аудио, видео и переходы между слайдами.
Документ PresentationML не хранится как единое целое. Элементы с определенной группировкой функций хранятся в различных частях. Например, все комментарии документа хранятся в части комментариев, а каждый слайд представляет собой отдельную часть. Для каждого слайда создается отдельный файл XML.
Важные части презентации
С помощью пакета SDK Open XML можно создать структуру документа и содержимое, в котором используются строго типизированные классы, соответствующие элементам PresentationML. Эти классы можно найти в пространстве имен. В следующей таблице представлены имена классов, соответствующих некоторым важным элементам презентации.
Часть пакета | Элемент верхнего уровня PresentationML | Класс пакета SDK Open XML | Description* |
---|---|---|---|
Презентация | <presentation/> |
Presentation | Корневой элемент для части "презентация". В этом элементе указываются фундаментальные свойства всей презентации. |
Свойства презентации | <presentationPr/> |
PresentationProperties | Корневой элемент для части "свойства презентации". Действует как родительский элемент, который содержит дополнительные свойства документа в масштабе всей презентации. |
Образец слайда | <sldMaster/> |
SlideMaster | Корневой элемент для части "образец слайда". В этом элементе слайда содержатся все элементы, описывающие объекты слайда презентации и их форматирование. Дополнительные сведения см. в разделе Работа с образцами слайдов. |
Разметка слайда | <sldLayout/> |
SlideLayout | Корневой элемент для части "разметка слайда". Указывает информацию о взаимосвязи для каждого макета слайда, используемого в образце слайда. Дополнительные сведения см. в разделе Работа с макетами слайдов. |
Тема | <officeStyleSheet/> |
Theme | Корневой элемент для части "тема". Содержит разные параметры форматирования, доступные в документе через тему, и определяет общий внешний вид документа, в котором используются объекты с применением темы. |
слайд | <sld/> |
Slide | Корневой элемент для части "слайд". Указывает слайд в списке слайдов. Дополнительные сведения см. в разделе Работа со слайдами презентации. |
Образец заметок | <notesMaster/> |
NotesMaster | Корневой элемент для части "образец заметок". В образце заметок к слайду содержатся все элементы, описывающие объекты заметок к слайду и их форматирование. |
Заметки к слайду | <notes/> |
NotesSlide | Корневой элемент части "заметки к слайду". Указывает наличие заметок к слайду и их данные. В части "заметки к слайду" содержатся все общие элементы слайда, а также добавочные свойства для элемента заметок. Дополнительные сведения см. в разделе Работа со слайдами заметок. |
Образец выдач | <handoutMaster/> |
HandoutMaster | Корневой элемент части "образец выдач". В слайде образца выдач содержатся все элементы, описывающие объекты этого слайда и их форматирование. Дополнительные сведения см. в статье Работа с раздаточных материалов master слайдах. |
Comments | <cmLst/> |
CommentList | Корневой элемент части "комментарии". Указывает список комментариев для конкретного слайда. Дополнительные сведения см. в разделе Работа с комментариями. |
Автор комментариев | <cmAuthorLst/> |
CommentAuthorList | Корневой элемент части "автор комментариев". Указывает список авторов с комментариями в текущем документе. Дополнительные сведения см. в разделе Работа с комментариями. |
*Описания, адаптированные на основе спецификации ISO/IEC 29500 , © ISO/IEC 29500: 2016
Часть "презентация"
Часть main пакета PresentationML начинается с корневого <presentation/>
элемента. Этот элемент содержит презентацию, которая ссылается на список слайдов, список образцов слайдов, список образцов заметок и список образцов выдач. Список слайдов указывает все слайды презентации. Список образцов слайдов содержит весь набор образцов слайдов, используемых в презентации. Образец заметок содержит сведения о форматировании страниц заметок. В образце выдач описывается внешний вид раздаточных материалов. (Раздаточные материалы представляют собой наборы распечатанных слайдов, которые можно раздать слушателям для последующего использования.)
Часть "свойства презентации"
Корневым элементом части "Свойства презентации <presentationPr/>
" является элемент .
Спецификация ISO/IEC 29500 описывает часть Свойств презентации Open XML PresentationML следующим образом:
Экземпляр части этого типа содержит все свойства презентации.
Пакет должен содержать только одну часть "свойства презентации", и эта часть должна быть конечным объектом неявной связи из части "презентация" (§13.3.6).
Пример. Следующий элемент связей с частью Presentation содержит связь с частью "Свойства презентации", которая хранится в ЭЛЕМЕНТе ZIP presProps.xml:
<Relationships xmlns="…">
<Relationship Id="rId6"
Type="https://…/presProps" Target="presProps.xml"/>
</Relationships>
Часть с таким типом содержимого должна иметь корневой элемент presentationPr. Пример:
<p:presentationPr xmlns:p="…" …>
<p:clrMru>
…
</p:clrMru>
…
</p:presentationPr>
Часть "свойства презентации" должна находиться в пакете, содержащем часть связей (если выразить это с точки зрения синтаксиса, атрибут TargetMode элемента "связь" должен иметь значение Internal).
Часть "свойства презентации" не должна иметь неявных или явных связей с какой-либо другой частью, определяемой спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Часть "образец слайда"
Корневым элементом части "Образец слайдов <sldMaster/>
" является элемент .
Спецификация ISO/IEC 29500 описывает часть Образца слайдов Open XML PresentationML следующим образом:
Экземпляр части этого типа содержит основное определение форматирования, текста и объектов, появляющихся на каждом слайде презентации, полученном из этого образца слайда.
Пакет должен содержать одну или несколько частей "образец слайда", каждая из которых должна быть конечным объектом связи из части "презентация" (§13.3.6), а также неявной связи из любой части "разметка слайда" (§13.3.9), если разметка слайда определена на основе этого образца слайда. Дополнительно каждая из этих частей может быть также конечным объектом связи в части "разметка слайда" (§13.3.9).
Пример. Следующий элемент связей с частью Presentation содержит связь с частью "Образец слайдов", которая хранится в элементе ZIP slideMasters/slideMaster1.xml:
<Relationships xmlns="…">
<Relationship Id="rId1"
Type="https://…/slideMaster"
Target="slideMasters/slideMaster1.xml"/>
</Relationships>
Корневым элементом части с таким типом содержимого должен быть элемент sldMaster. Пример:
<p:sldMaster xmlns:p="…">
<p:cSld name="">
…
</p:cSld>
<p:clrMap … />
</p:sldMaster>
Часть "образец слайда" должна находиться в пакете, содержащем часть связей (если выразить это с точки зрения синтаксиса, атрибут TargetMode элемента "связь" должен иметь значение Internal).
Часть "образец слайда" может иметь неявные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Дополнительные характеристики (§15.2.1)
- Литература (§15.2.3)
- Пользовательское хранилище данных XML (§15.2.4)
- Тема (§14.2.7)
- Эскиз (§15.2.16)
Часть "образец слайда" может иметь явные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Аудио (§15.2.2)
- Диаграмма (§14.2.1)
- Часть содержимого (§15.2.4)
- Схемы: цвета диаграммы (§14.2.3), данные диаграммы (§14.2.4), определение макета схемы (§14.2.5) и стили диаграмм (§14.2.6)
- Сохраняемость внедренного элемента управления (§15.2.9)
- Внедренный объект (§15.2.10)
- Внедренный пакет (§15.2.11)
- Гиперссылка (§15.3)
- Изображение (§15.2.14)
- Макет слайда (§13.3.9)
- Видео (§15.2.15)
Часть "образец слайда" не должна иметь неявных или явных связей с какой-либо другой частью, определяемой спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Часть "разметка слайда"
Корневым элементом части Макет слайда <sldLayout/>
является элемент .
Спецификация ISO/IEC 29500 описывает часть макета слайдов Open XML PresentationML следующим образом:
Экземпляр части этого типа содержит определение шаблона разметки слайда для этой презентации. В этом шаблоне определяется используемый по умолчанию внешний вид слайда, а также размещение графических объектов на слайде, когда он создается.
Пакет должен содержать одну или несколько частей "разметка слайда", и каждая из этих частей должна быть конечным объектом явной связи в части "образец слайда" (§13.3.10), а также неявной связи из каждой части "слайд" (§13.3.8), связанной с этой разметкой слайда.
Пример. Следующий элемент отношения с частью "Образец слайдов" содержит связи с несколькими частями макета слайдов, которые хранятся в элементах ../slideLayouts/slideLayoutN.xml
ZIP:
<Relationships xmlns="…">
<Relationship Id="rId1"
Type="https://…/slideLayout"
Target="../slideLayouts/slideLayout1.xml"/>
<Relationship Id="rId2"
Type="https://…/slideLayout"
Target="../slideLayouts/slideLayout2.xml"/>
<Relationship Id="rId3"
Type="https://…/slideLayout"
Target="../slideLayouts/slideLayout3.xml"/>
</Relationships>
Корневым элементом части с таким типом содержимого должен быть элемент sldLayout. Пример:
<p:sldLayout xmlns:p="…" matchingName="" type="title" preserve="1">
<p:cSld name="Title Slide">
…
</p:cSld>
<p:clrMapOvr>
<a:masterClrMapping/>
</p:clrMapOvr>
<p:timing/>
</p:sldLayout>
Часть "разметка слайда" может иметь неявные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Дополнительные характеристики (§15.2.1)
- Литература (§15.2.3)
- Пользовательское хранилище данных XML (§15.2.4)
- Образец слайдов (§13.3.10)
- Переопределение темы (§14.2.8)
- Эскиз (§15.2.16)
Часть "разметка слайда" может иметь явные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Аудио (§15.2.2)
- Диаграмма (§14.2.1)
- Часть содержимого (§15.2.4)
- Схемы: цвета диаграммы (§14.2.3), данные диаграммы (§14.2.4), определение макета схемы (§14.2.5) и стили диаграмм (§14.2.6)
- Сохраняемость внедренного элемента управления (§15.2.9)
- Внедренный объект (§15.2.10)
- Внедренный пакет (§15.2.11)
- Гиперссылка (§15.3)
- Изображение (§15.2.14)
- Видео (§15.2.15)
Часть "разметка слайда" не должна иметь неявных и явных связей с какой-либо другой частью, определяемой спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Часть "слайд"
Корневым элементом части Слайд является <sld/>
элемент .
Наряду с текстом и изображениями, слайды могут содержать комментарии, заметки и разметку, а также могут входит в одну или несколько пользовательских презентаций. Комментарий представляет собой примечание, которое адресовано сотруднику, ответственному за обслуживание набора слайдов. Заметка представляет собой напоминание или отрывок текста, предназначенный для докладчика или для слушателей.
Спецификация ISO/IEC 29500 описывает слайд Open XML PresentationML следующим образом:
Часть "слайд" содержит содержимое одного слайда.
Пакет должен содержать одну часть "слайд" для каждого слайда, и каждая из этих частей должна быть конечным объектом явной связи из части "презентация" (§13.3.6).
Пример. Рассмотрим документ PresentationML с двумя слайдами. Соответствующий элемент связи части Презентации содержит две связи с частями слайда, которые хранятся в ЭЛЕМЕНТАх slides/slide1.xml and slides/slide2.xml
ZIP:
<Relationships xmlns="…">
<Relationship Id="rId2"
Type="https://…/slide" Target="slides/slide1.xml"/>
<Relationship Id="rId3"
Type="https://…/slide" Target="slides/slide2.xml"/>
</Relationships>
Корневой элемент для части этого типа контента должен иметь значение <sld/>
.
Пример: slides/slide1.xml
содержит:
<p:sld xmlns:p="…">
<p:cSld name="">
…
</p:cSld>
<p:clrMapOvr>
…
</p:clrMapOvr>
<p:timing>
<p:tnLst>
<p:par>
<p:cTn id="1" dur="indefinite" restart="never"
nodeType="tmRoot"/>
</p:par>
</p:tnLst>
</p:timing>
</p:sld>
Часть "слайд" должна находиться в пакете, содержащем часть связей (если выразить это с точки зрения синтаксиса, атрибут TargetMode элемента "связь" должен иметь значение Internal).
Часть "слайд" может иметь неявные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Дополнительные характеристики (§15.2.1)
- Литература (§15.2.3)
- Комментарии (§13.3.2)
- Пользовательское хранилище данных XML (§15.2.4)
- Слайд заметок (§13.3.5)
- Переопределение темы (§14.2.8)
- Эскиз (§15.2.16)
- Макет слайда (§13.3.9)
- Данные синхронизации слайдов (§13.3.11)
Часть "слайд" может иметь явные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Аудио (§15.2.2)
- Диаграмма (§14.2.1)
- Часть содержимого (§15.2.4)
- Схемы: цвета диаграммы (§14.2.3), данные диаграммы (§14.2.4), определение макета схемы (§14.2.5) и стили диаграмм (§14.2.6)
- Сохраняемость внедренного элемента управления (§15.2.9)
- Внедренный объект (§15.2.10)
- Внедренный пакет (§15.2.11)
- Гиперссылка (§15.3)
- Изображение (§15.2.14)
- Определяемые пользователем теги (§13.3.12)
- Видео (§15.2.15)
Часть "слайд" не должна иметь неявных или явных связей с какой-либо другой частью, определяемой спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Часть "тема"
Корневым элементом части Theme является <officeStyleSheet/>
элемент .
Спецификация ISO/IEC 29500 описывает раздел Open XML DrawingML Theme следующим образом:
Экземпляр части этого типа содержит информацию о теме документа, которая включает в себя цветовую схему, схему шрифтов и схему форматов (последнюю также называют эффектами). Для документа WordprocessingML выбор темы помимо прочего влияет на цвет и стиль заголовков. Для документа SpreadsheetML выбор темы помимо прочего влияет на цвет и стиль содержимого ячеек и диаграмм. Для документа PresentationML выбор темы влияет на форматирование слайдов, раздаточных материалов и заметок с помощью связанной master, а также на другие возможности.
Пакет WordprocessingML или SpreadsheetML должен содержать не более одной части "тема", которая должна быть конечным объектом неявной связи в части "основной документ" (§11.3.10) или "книга" (§12.3.23). Пакет PresentationML не должен содержать ни одной части "тема" или содержать одну такую часть для каждой части "образец выдач" (§13.3.3), "образец заметок" (§13.3.4), "образец слайда" (§13.3.10) или "презентация" (§13.3.6) посредством неявной связи.
Пример. Следующий элемент связи с основным документом WordprocessingML содержит связь с частью Theme, которая хранится в ZIP-элементе theme/theme1.xml
:
<Relationships xmlns="…">
<Relationship Id="rId4"
Type="https://…/theme" Target="theme/theme1.xml"/>
</Relationships>
Корневым элементом части с таким типом содержимого должен быть элемент officeStyleSheet.
Пример: theme1.xml содержит следующее, где атрибуты имен элементов clrScheme, fontScheme и fmtScheme соответствуют цветовой схеме, схеме шрифтов и схеме форматирования документа соответственно:
<a:officeStyleSheet xmlns:a="…">
<a:baseStyles>
<a:clrScheme name="…">
…
</a:clrScheme>
<a:fontScheme name="…">
…
</a:fontScheme>
<a:fmtScheme name="…">
…
</a:fmtScheme>
</a:baseStyles>
<a:objectDefaults/>
</a:officeStyleSheet>
Часть "тема" должна находиться в пакете, содержащем часть связей (если выразить это с точки зрения синтаксиса, атрибут TargetMode элемента "связь" должен иметь значение Internal).
Часть "тема" может содержать явные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Изображение (§15.2.14)
Часть "тема" не должна иметь неявных или явных связей с какими-либо другими частями, определяемыми спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Часть "образец заметок"
Корневым элементом части "Хозяин заметок" является <notesMaster/>
элемент .
Спецификация ISO/IEC 29500 описывает главную часть заметок Open XML PresentationML:
Экземпляр части этого типа содержит информацию о содержимом и форматировании всех страниц заметок.
Пакет должен содержать не более одной части "образец заметок", и эта часть должна быть конечным объектом неявной связи из части "заметки к слайду" (§13.3.5), а также явной связи из части "презентация" (§13.3.6).
Пример. Следующий элемент связи части презентации содержит связь с главной частью заметок, которая хранится в zip-элементе notesMasters/notesMaster1.xml:
<Relationships xmlns="…">
<Relationship Id="rId4"
Type="https://…/notesMaster"
Target="notesMasters/notesMaster1.xml"/>
</Relationships>
Корневым элементом части с таким типом содержимого должен быть элемент notesMaster. Пример:
<p:notesMaster xmlns:p="…">
<p:cSld name="">
…
</p:cSld\>
<p:clrMap … />
</p:notesMaster>
Часть "образец заметок" должна находиться в пакете, содержащем часть связей (если выразить это с точки зрения синтаксиса, атрибут TargetMode элемента "связь" должен иметь значение Internal).
Часть "образец заметок" может иметь неявные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Дополнительные характеристики (§15.2.1)
- Литература (§15.2.3)
- Пользовательское хранилище данных XML (§15.2.4)
- Тема (§14.2.7)
- Эскиз (§15.2.16)
Часть "образец заметок" может иметь явные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Аудио (§15.2.2)
- Диаграмма (§14.2.1)
- Часть содержимого (§15.2.4)
- Схемы: цвета диаграммы (§14.2.3), данные диаграммы (§14.2.4), определение макета схемы (§14.2.5) и стили диаграмм (§14.2.6)
- Сохраняемость внедренного элемента управления (§15.2.9)
- Внедренный объект (§15.2.10)
- Внедренный пакет (§15.2.11)
- Гиперссылка (§15.3)
- Изображение (§15.2.14)
- Видео (§15.2.15)
Часть "образец заметок" не должна иметь неявных или явных связей с какими-либо другими частями, определяемыми спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Часть "заметки к слайду"
Корневым элементом части Notes Slide является <notes/>
элемент .
Спецификация ISO/IEC 29500 описывает часть слайда заметок Open XML PresentationML следующим образом:
Экземпляр части этого типа содержит заметки для одного слайда.
Пакет должен содержать одну часть "заметки к слайду" для каждого слайда, содержащего заметки. Если такие части существуют, то каждая из них должна быть конечным объектом неявной связи из части "слайд" (§13.3.8).
Пример. Следующий элемент связи части слайда содержит связь с частью слайда заметок, которая хранится в ЭЛЕМЕНТе ZIP ../notesSlides/notesSlide1.xml
:
<Relationships xmlns="…">
<Relationship Id="rId3"
Type="https://…/notesSlide"
Target="../notesSlides/notesSlide1.xml"/>
</Relationships>
Корневым элементом части с таким содержимым должен быть элемент notes. Пример:
<p:notes xmlns:p="…">
<p:cSld name="">
…
</p:cSld>
<p:clrMapOvr>
<a:masterClrMapping/>
</p:clrMapOvr>
</p:notes>
Часть "заметки к слайду" должна находиться в пакете, содержащем часть связей (если выразить это с точки зрения синтаксиса, атрибут TargetMode элемента "связь" должен иметь значение Internal).
Часть "заметки к слайду" может иметь неявные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Дополнительные характеристики (§15.2.1)
- Литература (§15.2.3)
- Пользовательское хранилище данных XML (§15.2.4)
- Хозяин заметок (§13.3.4)
- Переопределение темы (§14.2.8)
- Эскиз (§15.2.16)
Часть "заметки к слайду" может иметь явные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Аудио (§15.2.2)
- Диаграмма (§14.2.1)
- Часть содержимого (§15.2.4)
- Схемы: цвета диаграммы (§14.2.3), данные диаграммы (§14.2.4), определение макета схемы (§14.2.5) и стили диаграмм (§14.2.6)
- Сохраняемость внедренного элемента управления (§15.2.9)
- Внедренный объект (§15.2.10)
- Внедренный пакет (§15.2.11)
- Гиперссылка (§15.3)
- Изображение (§15.2.14)
- Видео (§15.2.15)
Часть "заметки к слайду" не должна иметь неявных или явных связей с какими-либо другими частями, определяемыми спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Часть "образец выдач"
Корневым элементом части "Хозяин раздаточных материалов" является <handoutMaster/>
элемент .
Спецификация ISO/IEC 29500 описывает главную часть раздаточных материалов Open XML PresentationML следующим образом:
Экземпляр части этого типа содержит вид, положение и размер слайдов, заметки, текст верхних и нижних колонтитулов, дату или номер страницы в раздаточных материалах презентации.
Пакет должен содержать не более одной части "образец выдач", и эта часть должна быть конечным объектом явной связи из части "презентация" (§13.3.6).
Пример. Следующий элемент связей части Presentation содержит связь с главной частью раздаточных материалов, которая хранится в ЭЛЕМЕНТе ZIP handoutMasters/handoutMaster1.xml
:
<Relationships xmlns="…">
<Relationship Id="rId5"
Type="https://…/handoutMaster"
Target="handoutMasters/handoutMaster1.xml"/>
</Relationships>
Корневым элементом части с таким содержимым должен быть элемент handoutMaster. Пример:
<p:handoutMaster xmlns:p="…">
<p:cSld name="">
…
</p:cSld\>
<p:clrMap … >
</p:handoutMaster>
Часть "образец выдач" должна находиться в пакете, содержащем часть связей (если выразить это с точки зрения синтаксиса, атрибут TargetMode элемента "связь" должен иметь значение Internal).
Часть "образец выдач" может иметь неявные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Дополнительные характеристики (§15.2.1)
- Литература (§15.2.3)
- Пользовательское хранилище данных XML (§15.2.4)
- Тема (§14.2.7)
- Эскиз (§15.2.16)
Часть "образец выдач" может иметь явные связи со следующими частями, определяемыми спецификацией ISO/IEC 29500:
- Аудио (§15.2.2)
- Диаграмма (§14.2.1)
- Часть содержимого (§15.2.4)
- Схемы: цвета диаграммы (§14.2.3), данные диаграммы (§14.2.4), определение макета схемы (§14.2.5) и стили диаграмм (§14.2.6)
- Сохраняемость внедренного элемента управления (§15.2.9)
- Внедренный объект (§15.2.10)
- Внедренный пакет (§15.2.11)
- Гиперссылка (§15.3)
- Изображение (§15.2.14)
- Видео (§15.2.15)
Часть "образец выдач" не должна иметь неявных или явных связей с какими-либо другими частями, определяемыми спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Часть "комментарии"
Корневым элементом части Comments является <cmLst/>
элемент .
Спецификация ISO/IEC 29500 описывает часть комментариев Open XML PresentationML следующим образом:
Экземпляр части этого типа содержит комментарии для одного слайда. Каждый комментарий связан с автором посредством идентификатора автора. Каждое сочетание значения индекса и идентификатора автора является уникальным.
Пакет должен содержать одну часть "комментарии" для каждого слайда, содержащего один или несколько комментариев, и каждая из этих частей должна быть конечным объектом неявной связи из соответствующей части "слайд" (§13.3.8).
Пример. Следующий элемент отношения части слайда содержит связь с частью Comments, которая хранится в ЭЛЕМЕНТе ZIP ../comments/comment2.xml
:
<Relationships xmlns="…">
<Relationship Id="rId4"
Type="https://…/comments"
Target="../comments/comment2.xml"/>
</Relationships>
Корневой элемент для части этого типа контента должен иметь значение <cmLst/>
.
Пример. Часть "Примечания" содержит три примечания, два из них созданы одним автором, а один — другим, все в указанные даты и время. Значения индексов назначаются по авторам, начиная с 1 для первого комментария автора:
<p:cmLst xmlns:p="…" …>
<p:cm authorId="0" dt="2005-11-13T17:00:22.071" idx="1">
<p:pos x="4486" y="1342"/>
<p:text>Comment text goes here.</p:text>
</p:cm>
<p:cm authorId="0" dt="2005-11-13T17:00:34.849" idx="2">
<p:pos x="3607" y="1867"/>
<p:text>Another comment's text goes here.</p:text>
</p:cm>
<p:cm authorId="1" dt="2005-11-15T00:06:46.919" idx="1">
<p:pos x="1493" y="2927"/>
<p:text>comment …</p:text>
</p:cm>
</p:cmLst>
Часть "комментарии" должна находиться в пакете, содержащем часть связей (если выразить это с точки зрения синтаксиса, атрибут TargetMode элемента "связь" должен иметь значение Internal).
Часть "комментарии" не должна иметь неявных или явных связей с какими-либо другими частями, определяемыми спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Часть "автор комментариев"
Корневым элементом части "Автор комментариев" является <cmAuthorLst/>
элемент .
Спецификация ISO/IEC 29500 описывает часть "Автор комментариев Open XML PresentationML" следующим образом:
Экземпляр части этого типа содержит информацию о каждом авторе, добавившем комментарий в документ. Эта информация включает имя автора, инициалы, уникальный идентификатор автора, значение последнего используемого индекса комментария и цвет отображения. (При отображении комментариев можно использовать цвет, чтобы различать комментарии разных авторов.)
Пакет должен содержать не более одной части "автор комментариев". Если такая часть существует, она должна быть конечным объектом неявной связи из части "презентация" (§13.3.6).
Пример. Следующий элемент связи части Презентации содержит связь с частью "Авторы комментариев", которая хранится в ЭЛЕМЕНТе ZIP commentAuthors.xml
:
<Relationships xmlns="…">
<Relationship Id="rId8"
Type="https://…/commentAuthors" Target="commentAuthors.xml"/>
</Relationships>
Корневой элемент для части этого типа контента должен иметь значение <cmAuthorLst/>
.
Пример. Два человека написали комментарии в этом документе: Мэри Смит и Питер Джонс. Ее инициалы "mas", ее идентификатор автора равен 0, а индекс цвета отображения ее комментариев равен 0. Так как последнее значение индекса комментария Мэри используется 3, следующий индекс комментариев, который будет использоваться для нее, равен 4. Его инициалы " pjj", его идентификатор автора 1, и его комментарии цветной индекс отображения 1. Так как значение последнего примечания-индекса Питера равно 1, следующий индекс комментариев, который будет использоваться для него, равен 2:
<p:cmAuthorLst xmlns:p="…" …>
<p:cmAuthor id="0" name="Mary Smith" initials="mas" lastIdx="3"
clrIdx="0"/>
<p:cmAuthor id="1" name="Peter Jones" initials="pjj" lastIdx="1"
clrIdx="1"/>
</p:cmAuthorLst>
Часть "автор комментариев" должна находиться в пакете, содержащем часть связей (если выразить это с точки зрения синтаксиса, атрибут TargetMode элемента "связь" должен иметь значение Internal).
Часть "автор комментариев" не должна иметь неявных или явных связей с какими-либо другими частями, определяемыми спецификацией ISO/IEC 29500.
© ISO/IEC 29500: 2016
Структура файла минимальной презентации
Теперь, когда вы познакомились с частями документа PresentationML, посмотрим, как некоторые из этих частей реализованы и взаимодействуют в реальном файле презентации. Как показано в статье Практическое руководство. Создание документа презентации, указав имя файла, можно использовать API Open XML для создания минимального файла презентации, частично.
Файл минимальной презентации состоит из части "презентация", представленной файлом presentation.xml, а также части "свойства презентации" (presProps.xml), части "образец слайда" (slideMaster.xml), части "разметка слайда" (slideLayout.xml) и части "тема" (theme.xml). Он может также включать одну или несколько частей "слайд" (slide.xml), но это не обязательно.
В структуру пакета документа презентации входят несколько ссылок между частями, включая некоторые циклические ссылки. Например, разметки слайдов ссылаются на образцы слайдов, а образцы слайдов ссылаются на разметки слайдов.
Созданный XML-код документа PresentationML
После запуска кода пакета SDK Open XML для создания презентации можно просмотреть содержимое пакета .zip, чтобы просмотреть XML-код PresentationML. Чтобы просмотреть пакет .zip, переименуйте расширение в минимальной презентации с .pptx
на .zip
. Внутри ZIP-пакета имеется несколько частей, составляющих минимальную презентацию.
На рисунке 1 показана структура в папке ppt
ZIP-пакета для минимальной презентации, содержащей один слайд.
Рис. 1. Структура папки минимальной презентации
Файл presentation.xml содержит <sld/>
элементы (Slide), ссылающиеся на слайды в презентации. Каждый слайд связан с презентацией посредством идентификатора слайда и идентификатора связи. — slideID
это идентификатор, используемый в пакете для идентификации слайда и должен быть уникальным в презентации. Атрибут id
— это идентификатор связи, который идентифицирует определение части слайда, связанное с слайдом. Дополнительные сведения о части слайдов см. в разделе Работа со слайдами презентации.
Ниже приведен XML-код документа PresentationML, представляющий часть "презентация" документа презентации, содержащего один слайд. Этот код создается при запуске кода open XML SDK для создания минимальной презентации.
<?xml version="1.0" encoding="utf-8"?>
<p:presentation xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
<p:sldMasterIdLst>
<p:sldMasterId id="2147483648"
r:id="rId1"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" />
</p:sldMasterIdLst>
<p:sldIdLst>
<p:sldId id="256"
r:id="rId2"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" />
</p:sldIdLst>
<p:sldSz cx="9144000"
cy="6858000"
type="screen4x3" />
<p:notesSz cx="6858000"
cy="9144000" />
<p:defaultTextStyle />
</p:presentation>
Следующий XML-код документа PresentationML представляет часть "связи" документа презентации. Этот код создается при запуске пакета SDK Open XML для создания минимальной презентации.
<?xml version="1.0" encoding="utf-8"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Type="https://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"
Target="/ppt/slides/slide.xml"
Id="rId2" />
<Relationship Type="https://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster"
Target="/ppt/slideLayouts/slideMasters/slideMaster.xml"
Id="rId1" />
<Relationship Type="https://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"
Target="/ppt/slideLayouts/slideMasters/theme/theme.xml"
Id="rId5" />
</Relationships>
Следующий XML-код документа PresentationML представляет часть "слайд" документа презентации. Для каждого слайда презентации имеется связанная с ним часть "слайд". Этот код создается при запуске пакета SDK Open XML для создания минимальной презентации.
<?xml version="1.0" encoding="utf-8"?>
<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
<p:cSld>
<p:spTree>
<p:nvGrpSpPr>
<p:cNvPr id="1"
name="" />
<p:cNvGrpSpPr />
<p:nvPr />
</p:nvGrpSpPr>
<p:grpSpPr>
<a:xfrm xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
</p:grpSpPr>
<p:sp>
<p:nvSpPr>
<p:cNvPr id="2"
name="Title 1" />
<p:cNvSpPr>
<a:spLocks noGrp="1"
xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
</p:cNvSpPr>
<p:nvPr>
<p:ph />
</p:nvPr>
</p:nvSpPr>
<p:spPr />
<p:txBody>
<a:bodyPr xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
<a:lstStyle xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
<a:p xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<a:endParaRPr lang="en-US" />
</a:p>
</p:txBody>
</p:sp>
</p:spTree>
</p:cSld>
<p:clrMapOvr>
<a:masterClrMapping xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" />
</p:clrMapOvr>
</p:sld>
Типичный сценарий презентации
Типичная презентация не ограничена минимальной конфигурацией. Такая презентация может содержать несколько слайдов, каждый из которых ссылается на разметки слайдов и образцы слайдов, а также может содержать комментарии. Помимо этого презентация может содержать отдельные части с раздаточными материалами и заметками к слайдам. Эти дополнительные части содержатся в ZIP-пакете документа презентации.
На рис. 2 показано большинство элементов, которые можно найти в типичной презентации.
Рис. 2. Элементы файла PresentationML
См. также
Практическое руководство. Создание документа презентации путем предоставления имени файлаРабота с презентациямиРабота с слайдами презентаций Работа с образцамислайдовРабота с макетами слайдов