Estrutura de um documento do PresentationML

A estrutura do documento de um documento PresentationML consiste no <presentation/> elemento (Apresentação) que contém <sldMaster/> elementos (Slide Mestre), <sldLayout/> (Layout do Slide), <sld/> (Slide) e <theme/> (Tema) que fazem referência aos slides na apresentação. (O elemento Theme é o elemento raiz da parte DrawingMLTheme.) Esses elementos são os elementos mínimos necessários para um documento de apresentação válido.

Além disso, um documento de apresentação pode conter <notes/> (Slide de Anotações), <handoutMaster/> (Folheto Mestre), <sp/> (Forma), <pic/> (Imagem), <tbl/> (Tabela) e outros elementos relacionados ao slide. (Os elementos da tabela são definidos no esquema DrawingML.)

Outros recursos que um documento PresentationML pode conter incluem o seguinte: animação, áudio, vídeo e transições entre slides.

Um documento PresentationML não é armazenado como um corpo grande em uma única parte. Em vez disso, os elementos que implementam determinados agrupamentos de funcionalidade são armazenados em partes separadas. Por exemplo, todos os comentários em um documento são armazenados em uma parte de comentário, enquanto cada slide tem sua própria parte. Um arquivo XML separado é criado para cada slide.

Partes importantes da apresentação

Usando o SDK do Open XML, você pode criar estrutura e conteúdo de documentos que usam classes fortemente tipadas que correspondem a elementos PresentationML. Você pode encontrar essas classes no DocumentFormat.OpenXml.Presentation namespace. A tabela a seguir lista os nomes das classes que correspondem a alguns dos elementos importantes da apresentação.

Parte do Pacote Elemento PresentationML de nível superior Classe Open XML SDK Descrição*
Apresentação <presentation/> Presentation O elemento raiz da parte de apresentação. Esse elemento especifica dentro dele propriedades fundamentais de toda a apresentação.
Propriedades de apresentação <presentationPr/> PresentationProperties O elemento raiz da parte Propriedades da Apresentação. Esse elemento funciona como um elemento pai no qual propriedades adicionais do documento em toda a apresentação estão contidas.
Slide Mestre <sldMaster/> SlideMaster O elemento raiz da parte do Slide Mestre. Dentro de um slide master estão contidos todos os elementos que descrevem os objetos e sua formatação correspondente dentro de um slide de apresentação. Para obter mais informações, consulte Trabalhando com slides mestres.
Slide Layout <sldLayout/> SlideLayout O elemento raiz da parte Layout do Slide. Este elemento especifica as informações de relação para cada layout de slide usado no slide master. Para obter mais informações, consulte Trabalhando com layouts de slide.
Tema <officeStyleSheet/> Theme O elemento raiz da parte Tema. Esse elemento contém todas as diferentes opções de formatação disponíveis para um documento por meio de um tema e define a aparência geral do documento quando objetos temáticos são usados dentro do documento.
Slide <sld/> Slide O elemento raiz da parte Slide. Esse elemento especifica um slide dentro de uma lista de slides. Para obter mais informações, consulte Trabalhando com slides de apresentação.
Anotações mestras <notesMaster/> NotesMaster O elemento raiz da parte de Anotações Mestras. Dentro de um slide master de anotações estão contidos todos os elementos que descrevem os objetos e sua formatação correspondente dentro de um slide de anotações.
Slide de Anotações <notes/> NotesSlide O elemento raiz da parte do Slide de Anotações. Este elemento especifica a existência de um slide de anotações junto com seus dados correspondentes. Contidos em um slide de anotações estão todos os elementos comuns do slide, juntamente com as propriedades de adição que são específicas para o elemento de anotações. Para obter mais informações, consulte Trabalhando com slides de anotações.
Folheto mestre <handoutMaster/> HandoutMaster O elemento raiz da parte do Folheto Mestre. Dentro de um folheto master slide estão contidos todos os elementos que descrevem os objetos e sua formatação correspondente dentro de um slide de folheto. Para obter mais informações, consulte Trabalhar com folhetos master slides.
Comments <cmLst/> CommentList O elemento raiz da parte Comentários. Esse elemento especifica uma lista de comentários para um slide específico. Para obter mais informações, consulte Trabalhando com comentários.
Autor de comentários <cmAuthorLst/> CommentAuthorList O elemento raiz da parte Autor de comentários. Esse elemento especifica uma lista de autores com comentários no documento atual. Para obter mais informações, consulte Trabalhando com comentários.

*Descrições adaptadas da especificação ISO/IEC 29500 , © ISO/IEC 29500:2016

Parte de apresentação

A parte principal de um pacote PresentationML começa com um <presentation/> elemento raiz. Esse elemento contém uma apresentação que, por sua vez, se refere a uma lista de slides, uma lista master de slides, uma lista master de anotações e uma lista master de folheto. A lista de slides refere-se a todos os slides na apresentação. A lista de master de slides refere-se a todo o conjunto de slides mestres usados na apresentação. O notes master contém informações sobre a formatação das páginas de notes. O folheto master descreve a aparência de um folheto. (Um folheto é um conjunto impresso de slides que pode ser entregue a um público para referência futura.)

Parte de Propriedades de Apresentação

O elemento raiz da parte Propriedades da apresentação é o <presentationPr/> elemento.

A especificação ISO/IEC 29500 descreve a parte Propriedades de Apresentação do Open XML PresentationML da seguinte forma:

Uma instância desse tipo de peça contém todas as propriedades da apresentação.

Um pacote deve conter exatamente uma parte Propriedades de Apresentação, e essa parte deve ser o destino de uma relação implícita da parte Apresentação (§13.3.6).

Exemplo: o seguinte item de relação da parte da apresentação contém uma relação com a parte Propriedades da apresentação, que é armazenada no item ZIP presProps.xml:

<Relationships xmlns="…">  
    <Relationship Id="rId6"  
        Type="https://…/presProps" Target="presProps.xml"/>  
</Relationships>

O elemento raiz de uma parte desse tipo de conteúdo deve ser presentationPr. Exemplo:

<p:presentationPr xmlns:p="…" …>  
    <p:clrMru>  
        …  
    </p:clrMru>  
    …  
</p:presentationPr>

Uma parte Propriedades de Apresentação deve estar localizada dentro do pacote que contém a parte de relações (expressa sintaticamente, o atributo TargetMode do elemento Relação deve ser Interno).

Uma peça de Propriedades de Apresentação não deve ter relações implícitas ou explícitas com qualquer outra parte definida pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

Slide Mestre Parte

O elemento raiz da parte do Slide Mestre é o <sldMaster/> elemento.

A ISO/IEC 29500 descreve a parte do Open XML PresentationML Slide Master da seguinte maneira:

Uma instância desse tipo de parte contém a definição master de formatação, texto e objetos que aparecem em cada slide na apresentação derivada desse slide master.

Um pacote deve conter uma ou mais partes do Slide Mestre, cada uma das quais deve ser o destino de um relacionamento explícito da parte de Apresentação (§13.3.6), bem como um relacionamento implícito de qualquer parte do Layout de Slide (§13.3.9) em que esse layout de slide é definido com base nesse slide master. Opcionalmente, cada um também pode ser o destino de uma relação em uma parte de Layout de Slide (§13.3.9).

Exemplo: o seguinte item de relação de parte da apresentação contém uma relação com a parte de Slide Mestre, que é armazenada no item ZIP slideMasters/slideMaster1.xml:

<Relationships xmlns="…">  
    <Relationship Id="rId1"  
        Type="https://…/slideMaster"
Target="slideMasters/slideMaster1.xml"/>  
</Relationships>

O elemento raiz de uma parte desse tipo de conteúdo deve ser sldMaster. Exemplo:

<p:sldMaster xmlns:p="…">  
    <p:cSld name="">  
        …  
    </p:cSld>  
    <p:clrMap … />  
</p:sldMaster>

Uma parte do Slide Mestre deve estar localizada dentro do pacote que contém a parte de relações (expressa sintaticamente, o atributo TargetMode do elemento Relação deve ser Interno).

Uma peça do Slide Mestre pode ter relações implícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Características adicionais (§15.2.1)
  • Bibliografia (§15.2.3)
  • Armazenamento de dados XML personalizado (§15.2.4)
  • Tema (§14.2.7)
  • Miniatura (§15.2.16)

Uma peça do Slide Mestre pode ter relações explícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Áudio (§15.2.2)
  • Gráfico (§14.2.1)
  • Parte de conteúdo (§15.2.4)
  • Diagramas: cores do diagrama (§14.2.3), dados do diagrama (§14.2.4), definição de layout do diagrama (§14.2.5) e estilos de diagrama (§14.2.6)
  • Persistência de Controle Inserido (§15.2.9)
  • Objeto incorporado (§15.2.10)
  • Pacote Embedded (§15.2.11)
  • Hiperlink (§15.3)
  • Imagem (§15.2.14)
  • Layout do slide (§13.3.9)
  • Vídeo (§15.2.15)

Uma peça do Slide Mestre não deve ter relações implícitas ou explícitas com qualquer outra parte definida pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

Parte do Layout do Slide

O elemento raiz da parte Layout do Slide é o <sldLayout/> elemento.

A ISO /IEC 29500 descreve a parte do Layout de Slide do Open XML PresentationML da seguinte maneira:

Uma instância desse tipo de peça contém a definição de um modelo de layout de slide para esta apresentação. Este modelo define a aparência padrão e o posicionamento dos objetos de desenho nesse tipo de slide quando ele é criado.

Um pacote deve conter uma ou mais partes do Layout do Slide, e cada uma dessas partes deve ser o destino de um relacionamento explícito na parte do Slide Mestre (§13.3.10), bem como um relacionamento implícito de cada uma das partes do Slide (§13.3.8) associadas a esse layout de slide.

Exemplo: O seguinte item de relação parcial do Slide Mestre contém relações com várias partes do Layout do Slide, que são armazenadas nos itens ../slideLayouts/slideLayoutN.xmlZIP:

<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>

O elemento raiz de uma parte desse tipo de conteúdo deve ser sldLayout. Exemplo:

<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>

Uma parte do Layout do Slide pode ter relações implícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Características adicionais (§15.2.1)
  • Bibliografia (§15.2.3)
  • Armazenamento de dados XML personalizado (§15.2.4)
  • Slide Mestre (§13.3.10)
  • Substituição de tema (§14.2.8)
  • Miniatura (§15.2.16)

Uma parte do Layout do Slide pode ter relações explícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Áudio (§15.2.2)
  • Gráfico (§14.2.1)
  • Parte de conteúdo (§15.2.4)
  • Diagramas: cores do diagrama (§14.2.3), dados do diagrama (§14.2.4), definição de layout do diagrama (§14.2.5) e estilos de diagrama (§14.2.6)
  • Persistência de Controle Inserido (§15.2.9)
  • Objeto incorporado (§15.2.10)
  • Pacote Embedded (§15.2.11)
  • Hiperlink (§15.3)
  • Imagem (§15.2.14)
  • Vídeo (§15.2.15)

Uma parte do Layout de Slide não deve ter relações implícitas ou explícitas com qualquer outra parte definida pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

Parte do Slide

O elemento raiz da parte do slide é o <sld/> elemento.

Além de texto e elementos gráficos, cada slide pode conter comentários e anotações, pode ter um layout e pode fazer parte de uma ou mais apresentações personalizadas. Um comentário é uma anotação destinada à pessoa que mantém o conjunto de slides da apresentação. Uma anotação é um lembrete ou parte do texto destinado ao apresentador ou ao público.

A ISO /IEC 29500 descreve a parte do Slide de Apresentação do Open XML da seguinte maneira:

Uma parte do slide contém o conteúdo de um único slide.

Um pacote deve conter uma parte do slide por slide, e cada uma dessas partes deve ser o alvo de um relacionamento explícito da parte da apresentação (§13.3.6).

Exemplo: considere um documento PresentationML com dois slides. O item de relação da parte da apresentação correspondente contém duas relações com as partes do slide, que são armazenadas nos itens slides/slide1.xml and slides/slide2.xmlZIP:

<Relationships xmlns="…">  
    <Relationship Id="rId2"  
        Type="https://…/slide" Target="slides/slide1.xml"/>  
    <Relationship Id="rId3"  
        Type="https://…/slide" Target="slides/slide2.xml"/>  
</Relationships>

O elemento raiz de uma parte desse tipo de conteúdo deve ser <sld/>.

Exemplo: slides/slide1.xml contém:

<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>

Uma parte Slide deve estar localizada dentro do pacote que contém a parte de relações (expressa sintaticamente, o atributo TargetMode do elemento Relação deve ser Interno).

Uma parte do slide pode ter relações implícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Características adicionais (§15.2.1)
  • Bibliografia (§15.2.3)
  • Comentários (§13.3.2)
  • Armazenamento de dados XML personalizado (§15.2.4)
  • Slide de anotações (§13.3.5)
  • Substituição de tema (§14.2.8)
  • Miniatura (§15.2.16)
  • Layout do slide (§13.3.9)
  • Dados de sincronização de slides (§13.3.11)

Uma parte de slide pode ter relações explícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Áudio (§15.2.2)
  • Gráfico (§14.2.1)
  • Parte de conteúdo (§15.2.4)
  • Diagramas: cores do diagrama (§14.2.3), dados do diagrama (§14.2.4), definição de layout do diagrama (§14.2.5) e estilos de diagrama (§14.2.6)
  • Persistência de Controle Inserido (§15.2.9)
  • Objeto incorporado (§15.2.10)
  • Pacote Embedded (§15.2.11)
  • Hiperlink (§15.3)
  • Imagem (§15.2.14)
  • Marcas definidas pelo usuário (§13.3.12)
  • Vídeo (§15.2.15)

Uma parte do slide não deve ter relações implícitas ou explícitas com qualquer outra parte definida pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

Parte do tema

O elemento raiz da parte Tema é o <officeStyleSheet/> elemento.

A especificação ISO/IEC 29500 descreve a parte do tema Open XML DrawingML da seguinte forma:

Uma instância desse tipo de parte contém informações sobre o tema de um documento, que é uma combinação de esquema de cores, esquema de fontes e esquema de formato (este último também é chamado de efeitos). Para um documento WordprocessingML, a escolha do tema afeta a cor e o estilo dos títulos, entre outras coisas. Para um documento SpreadsheetML, a escolha do tema afeta a cor e o estilo do conteúdo da célula e dos gráficos, entre outras coisas. Para um documento PresentationML, a escolha do tema afeta a formatação de slides, folhetos e anotações por meio do master associado, além de outras coisas.

Um pacote WordprocessingML ou SpreadsheetML deve conter zero ou uma parte do Tema, que deve ser o destino de uma relação implícita em uma parte do Documento Principal (§11.3.10) ou Pasta de Trabalho (§12.3.23). Um pacote PresentationML deve conter zero ou uma parte do Tema por Folheto Mestre (§13.3.3), Anotações Mestras (§13.3.4), Slide Mestre (§13.3.10) ou Apresentação (§13.3.6) por meio de uma relação implícita.

Exemplo: o seguinte item de relacionamento da parte do documento principal do WordprocessingML contém uma relação com a parte do tema, que é armazenada no item theme/theme1.xmlZIP:

<Relationships xmlns="…">  
    <Relationship Id="rId4"  
        Type="https://…/theme" Target="theme/theme1.xml"/>  
    </Relationships>

O elemento raiz de uma parte desse tipo de conteúdo deve ser officeStyleSheet.

Exemplo: theme1.xml contém o seguinte, em que os atributos de nome dos elementos clrScheme, fontScheme e fmtScheme correspondem ao esquema de cores, esquema de fonte e esquema de formato do documento, respectivamente:

<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>

Uma parte do Tema deve estar localizada dentro do pacote que contém a parte das relações (expressa sintaticamente, o atributo TargetMode do elemento Relação deve ser Interno).

Uma parte temática pode conter relações explícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Imagem (§15.2.14)

Uma parte temática não deve ter nenhuma relação implícita ou explícita com outras partes definidas pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

Partes mestras de anotações

O elemento raiz da parte do Notes Master é o <notesMaster/> elemento.

A especificação ISO/IEC 29500 descreve a parte mestra do Open XML PresentationML Notes da seguinte forma:

Uma instância desse tipo de parte contém informações sobre o conteúdo e a formatação de todas as páginas de anotações.

Um pacote deve conter no máximo uma parte do Notes Master, e essa parte deve ser o destino de um relacionamento implícito da parte do Notes Slide (§13.3.5), bem como um relacionamento explícito da parte da Apresentação (§13.3.6).

Exemplo: O seguinte item de relação de parte de apresentação contém uma relação com a parte de Notes Master, que é armazenada no item ZIP notesMasters/notesMaster1.xml:

<Relationships xmlns="…">  
    <Relationship Id="rId4"  
        Type="https://…/notesMaster"
Target="notesMasters/notesMaster1.xml"/>  
</Relationships>

O elemento raiz de uma parte desse tipo de conteúdo deve ser notesMaster. Exemplo:

<p:notesMaster xmlns:p="…">  
    <p:cSld name="">  
        …  
    </p:cSld\>  
    <p:clrMap … />  
</p:notesMaster>

Uma parte do Notes Master deve estar localizada dentro do pacote que contém a parte de relações (expressa sintaticamente, o atributo TargetMode do elemento Relationship deve ser Interno).

Uma peça do Notes Master pode ter relações implícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Características adicionais (§15.2.1)
  • Bibliografia (§15.2.3)
  • Armazenamento de dados XML personalizado (§15.2.4)
  • Tema (§14.2.7)
  • Miniatura (§15.2.16)

Uma peça do Notes Master pode ter relações explícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Áudio (§15.2.2)
  • Gráfico (§14.2.1)
  • Parte de conteúdo (§15.2.4)
  • Diagramas: cores do diagrama (§14.2.3), dados do diagrama (§14.2.4), definição de layout do diagrama (§14.2.5) e estilos de diagrama (§14.2.6)
  • Persistência de Controle Inserido (§15.2.9)
  • Objeto incorporado (§15.2.10)
  • Pacote Embedded (§15.2.11)
  • Hiperlink (§15.3)
  • Imagem (§15.2.14)
  • Vídeo (§15.2.15)

A parte do Notes Master não deve ter relações implícitas ou explícitas com qualquer outra parte definida pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

Anotações Parte do Slide

O elemento raiz da parte do Slide de Anotações é o <notes/> elemento.

A especificação ISO/IEC 29500 descreve a parte do Slide de Notas de Apresentação ML do Open XML da seguinte forma:

Uma instância desse tipo de parte contém as anotações de um único slide.

Um pacote deve conter uma parte do Slide de Anotações para cada slide que contenha anotações. Se existirem, cada uma dessas partes deverá ser o alvo de uma relação implícita da parte do Slide (§13.3.8).

Exemplo: O seguinte item de relação de parte do slide contém uma relação com uma parte do Slide de Anotações, que é armazenada no item ../notesSlides/notesSlide1.xmlZIP:

<Relationships xmlns="…">  
    <Relationship Id="rId3"  
        Type="https://…/notesSlide"
Target="../notesSlides/notesSlide1.xml"/>  
</Relationships>

O elemento raiz de uma parte desse tipo de conteúdo deve ser anotações. Exemplo:

<p:notes xmlns:p="…">  
    <p:cSld name="">  
         …  
    </p:cSld>  
    <p:clrMapOvr>  
        <a:masterClrMapping/>  
    </p:clrMapOvr>  
</p:notes>

Uma parte do Slide de Anotações deve estar localizada dentro do pacote que contém a parte de relações (expressa sintaticamente, o atributo TargetMode do elemento Relação deve ser Interno).

Uma parte do Slide de Anotações pode ter relações implícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Características adicionais (§15.2.1)
  • Bibliografia (§15.2.3)
  • Armazenamento de dados XML personalizado (§15.2.4)
  • Anotações mestras (§13.3.4)
  • Substituição de tema (§14.2.8)
  • Miniatura (§15.2.16)

Uma parte do Slide de Anotações pode ter relações explícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Áudio (§15.2.2)
  • Gráfico (§14.2.1)
  • Parte de conteúdo (§15.2.4)
  • Diagramas: cores do diagrama (§14.2.3), dados do diagrama (§14.2.4), definição de layout do diagrama (§14.2.5) e estilos de diagrama (§14.2.6)
  • Persistência de Controle Inserido (§15.2.9)
  • Objeto incorporado (§15.2.10)
  • Pacote Embedded (§15.2.11)
  • Hiperlink (§15.3)
  • Imagem (§15.2.14)
  • Vídeo (§15.2.15)

A parte do Slide de Anotações não deve ter relações implícitas ou explícitas com qualquer outra parte definida pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

Parte mestra do folheto

O elemento raiz da parte do Folheto Mestre é o <handoutMaster/> elemento.

A especificação ISO/IEC 29500 descreve a parte mestra do folheto Open XML PresentationML da seguinte forma:

Uma instância desse tipo de parte contém a aparência, a posição e o tamanho dos slides, anotações, texto de cabeçalho e rodapé, data ou número de página no folheto da apresentação.

Um pacote deve conter no máximo uma parte do Folheto Mestre e deve ser alvo de um relacionamento explícito da parte de Apresentação (§13.3.6).

Exemplo: o seguinte item de relação parcial da apresentação contém uma relação com a parte do folheto mestre, que é armazenada no item handoutMasters/handoutMaster1.xmlZIP:

<Relationships xmlns="…">  
    <Relationship Id="rId5"  
        Type="https://…/handoutMaster"  
        Target="handoutMasters/handoutMaster1.xml"/>  
</Relationships>

O elemento raiz de uma parte desse tipo de conteúdo deve ser handoutMaster. Exemplo:

<p:handoutMaster xmlns:p="…">  
    <p:cSld name="">  
        …  
    </p:cSld\>  
    <p:clrMap … >  
</p:handoutMaster>

Uma parte do folheto mestre deve estar localizada dentro do pacote que contém a parte de relações (expressa sintaticamente, o atributo TargetMode do elemento Relação deve ser Interno).

Uma peça de folheto mestre pode ter relações implícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Características adicionais (§15.2.1)
  • Bibliografia (§15.2.3)
  • Armazenamento de dados XML personalizado (§15.2.4)
  • Tema (§14.2.7)
  • Miniatura (§15.2.16)

Uma peça de folheto mestre pode ter relações explícitas com as seguintes partes definidas pela ISO/IEC 29500:

  • Áudio (§15.2.2)
  • Gráfico (§14.2.1)
  • Parte de conteúdo (§15.2.4)
  • Diagramas: cores do diagrama (§14.2.3), dados do diagrama (§14.2.4), definição de layout do diagrama (§14.2.5) e estilos de diagrama (§14.2.6)
  • Persistência de Controle Inserido (§15.2.9)
  • Objeto incorporado (§15.2.10)
  • Pacote Embedded (§15.2.11)
  • Hiperlink (§15.3)
  • Imagem (§15.2.14)
  • Vídeo (§15.2.15)

Uma peça de folheto mestre não deve ter relações implícitas ou explícitas com qualquer outra peça definida pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

Comentários Parte

O elemento raiz da parte Comentários é o <cmLst/> elemento.

A especificação ISO/IEC 29500 descreve a parte de Comentários de ApresentaçãoML do Open XML da seguinte forma:

Uma instância desse tipo de parte contém os comentários de um único slide. Cada comentário é vinculado ao seu autor por meio de uma ID de autor. O número de índice de cada comentário e a combinação de autor-ID são exclusivos.

Um pacote deve conter uma parte de Comentários para cada slide contendo um ou mais comentários, e cada uma dessas partes deve ser o destino de uma relação implícita de sua parte correspondente do Slide (§13.3.8).

Exemplo: O seguinte item de relação da parte do slide contém uma relação com uma parte de Comentários, que é armazenada no item ../comments/comment2.xmlZIP:

<Relationships xmlns="…">  
    <Relationship Id="rId4"  
        Type="https://…/comments"  
        Target="../comments/comment2.xml"/>  
</Relationships>

O elemento raiz de uma parte desse tipo de conteúdo deve ser <cmLst/>.

Exemplo: A parte Comentários contém três comentários, dois criados por um autor e um criado por outro, todos nas datas e horários mostrados. Os números de índice são atribuídos por autor, começando em 1 para o primeiro comentário de um autor:

<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>

Uma parte Comentários deve estar localizada dentro do pacote que contém a parte de relações (expressa sintaticamente, o atributo TargetMode do elemento Relação deve ser Interno).

Uma parte dos Comentários não deve ter relações implícitas ou explícitas com qualquer outra parte definida pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

Comentários Parte do Autor

O elemento raiz da parte Autor de comentários é o <cmAuthorLst/> elemento.

A ISO /IEC 29500 descreve a parte do autor de comentários do Open XML PresentationML da seguinte forma:

Uma instância desse tipo de peça contém informações sobre cada autor que adicionou um comentário ao documento. Essas informações incluem o nome do autor, iniciais, uma ID de autor exclusiva, uma contagem usada no índice de último comentário e uma cor de exibição. (A cor pode ser usada ao exibir comentários para distinguir comentários de diferentes autores.)

Um pacote deve conter no máximo uma parte dos Autores do Comentário. Se existir, essa parte será o alvo de uma relação implícita da parte de Apresentação (§13.3.6).

Exemplo: o seguinte item de relação da parte de apresentação contém uma relação com a parte Autores de Comentários, que é armazenada no item commentAuthors.xmlZIP:

<Relationships xmlns="…">  
    <Relationship Id="rId8"  
        Type="https://…/commentAuthors" Target="commentAuthors.xml"/>  
</Relationships>

O elemento raiz de uma parte desse tipo de conteúdo deve ser <cmAuthorLst/>.

Exemplo: Duas pessoas escreveram comentários neste documento: Mary Smith e Peter Jones. Suas iniciais são "mas", seu autor-ID é 0 e o índice de cores de exibição de seus comentários é 0. Como o valor usado pelo último comentário de Mary é 3, o próximo índice de comentários a ser usado para ela é 4. Suas iniciais são "pjj", seu ID de autor é 1 e o índice de cores de exibição de seus comentários é 1. Como o valor usado de Peter's last-comment-index é 1, o próximo comment-index a ser usado para ele é 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>

Uma parte Autores de Comentários deve estar localizada dentro do pacote que contém a parte de relações (expressa sintaticamente, o atributo TargetMode do elemento Relação deve ser Interno).

Uma parte dos Autores de Comentários não deve ter relações implícitas ou explícitas com qualquer outra parte definida pela ISO/IEC 29500.

© ISO/IEC 29500: 2016

A estrutura de um arquivo mínimo de apresentação

Agora que você está familiarizado com as partes de um documento PresentationML, considere como algumas dessas partes são implementadas e conectadas em um arquivo de apresentação real. Conforme mostrado no artigo Como criar um documento de apresentação fornecendo um nome de arquivo, você pode usar a API Open XML para criar um arquivo de apresentação mínimo, parte por parte.

Um arquivo de apresentação mínimo consiste em uma parte de apresentação, representada pelo presentation.xml de arquivo, bem como uma parte de propriedades de apresentação (presProps.xml), uma parte de master de slides (slideMaster.xml), uma parte de layout de slide (slideLayout.xml) e uma parte de tema (theme.xml). Uma ou mais partes de slide (slide.xml) são opcionais.

A estrutura de embalagem de um documento de apresentação contém várias referências entre as partes, incluindo algumas referências circulares. Por exemplo, layouts de slide fazem referência a slides mestres e slides mestres fazem referência a layouts de slide.

Código XML PresentationML gerado

Depois de executar o código Open XML SDK para gerar uma apresentação, você pode explorar o conteúdo do pacote .zip para exibir o código XML PresentationML. Para exibir o pacote .zip, renomeie a extensão na apresentação mínima de .pptx para .zip. Dentro do pacote .zip, existem várias partes que compõem a apresentação mínima.

A Figura 1 mostra a estrutura sob a ppt pasta do pacote zip para uma apresentação mínima que contém um único slide.

Figura 1. Minimum presentation folder structure

Minimum presentation folder structure

O arquivo presentation.xml contém <sld/> elementos (Slide) que fazem referência aos slides na apresentação. Cada slide é associado à apresentação por meio de uma ID de slide e uma ID de relação. É slideID o identificador (ID) usado no pacote para identificar um slide e deve ser exclusivo dentro da apresentação. O id atributo é a ID da relação que identifica a definição da parte do slide associada a um slide. Para obter mais informações sobre a parte do slide, consulte Trabalhando com slides de apresentação.

O código XML a seguir é o PresentationML que representa a parte da apresentação de um documento de apresentação que contém um único slide. Esse código é gerado quando você executa o código Open XML SDK para criar uma apresentação mínima.

    <?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>

O código XML a seguir é o PresentationML que representa a parte da relação do documento de apresentação. Esse código é gerado quando você executa o Open XML SDK para criar uma apresentação mínima.

    <?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>

O código XML a seguir é o PresentationML que representa a parte do slide do documento de apresentação. Cada slide em uma apresentação tem uma parte de slide associada a ele. Esse código é gerado quando você executa o Open XML SDK para criar uma apresentação mínima.

    <?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>

Cenário de apresentação típico

Uma apresentação típica não tem uma configuração mínima. Uma apresentação típica pode conter vários slides, cada um dos quais faz referência a layouts de slide e slides mestres, e que podem conter comentários. Além disso, uma apresentação pode conter folhetos e slides de anotações, cada um representado por partes separadas. Essas partes adicionais estão contidas no pacote zip do documento de apresentação.

A Figura 2 mostra a maioria dos elementos que você encontraria em uma apresentação típica.

Figura 2. Elements of a PresentationML file

Elements of a PresentationML file

Confira também

Como criar um documento de apresentação fornecendo um nome de arquivoTrabalhar com apresentaçõesTrabalhar com slides de apresentaçãoTrabalhar com slides mestresTrabalhar com layouts de slide