1.1 Der PPTX-Container

Wie bereits erwähnt, handelt es sich bei PPTX um eine als ZIP-Container komprimierte Datei. Dies bedeutet, wird eine PPTX-Datei mit einem ZIP-fähigen Programm dekomprimiert, erhält man eine festgelegte Ordnerstruktur, in der alle notwendigen Informationen des PowerPoint-Dokumentes als eine Sammlung von XML-Dateien und auch nicht-XML-Dateien gespeichert sind. Die Struktur des ZIP-Containers ist als Open Packaging Conventions (OPC) ein Teil der OOXML-Standardisierung.

 

Abb. 1: Grafik PPTX-Container nach Dekomprimierung

Abb. 1: Der PPTX-Container nach der Dekomprimierung


Jede Datei im ZIP-Container stellt einen Part dar. Parts haben einen Namen, der aus dem Pfad der Datei innerhalb des Containers und dem Dateinamen besteht, werden einem vordefinierten Content Type zugeordnet, der die Inhaltsstruktur angibt und können optional einen „Grow Hint“ erhalten, der angibt wie viel Speicherplatz ein Part benötigen könnte, damit Speicherplatz reserviert werden kann und so die Fragmentierung des Parts vermieden wird.


Jedes Dokument hat einen Mainpart. Er ist gewöhnlich im PPTX-ZIP-Container im Ordner ppt in der Datei presentation.xml zu finden. Der Name des Mainparts lautet also: „ppt/presenation.xml“. Diese Datei enthält eine Liste aller verwendeter Folien, eine Referenz auf das verwendete Masterfolien-Set und weitere Einstellungen. In eigene, im Verzeichnis ppt angelegte Parts werden u.a. folgende Inhalte ausgelagert:

Abb. 2: Folienmaster in PowerPoint

Abb. 2: Folienmaster in PowerPoint

Für jede Folie in der Präsentation wird ein im Verzeichnis ppt/slides ein Slide[N].xml12 angelegt. Das [N] steht – wie auch bei folgend beschriebenen Part-Sammlungen – für eine Ganzzahl, die die Position des Objektes innerhalb des Dokumentes angibt.

Der Part-Name der ersten Folie im Dokument lautet also immer „ppt/slides/slide1.xml“. Der Inhalt einer Folie wird in dem entsprechenden Part ausgelagert.

Für jeden Folienmaster wird in ppt/slideMasters ein slideMaster[N].xml12 erstellt. Dieser Slide-Master-Part enthält jedoch nicht die einzelnen im Folienmaster definierten Folien-Layouts.

Abb. 3: Folien-Layouts in PowerPoint

Abb. 3: Folien-Layouts in PowerPoint

Die Folien-Layouts, die im Folienmaster definiert werden, erhalten jeweils ein ppt/slideLayouts/slideLayout[N].xml. Hier sind alle Layout-Eigenschaften der Masterfolie festgehalten.

Der statische Inhalt der Fuß- und Kopfzeile wird im Verzeichnis ppt/notesMasters in notesMasters[N].xml gespeichert. Jeder Kommentar erhält einen Part namens ppt/comments/comments[N].xml.

Die über die entsprechende Funktion eingefügten speziellen Handzettelkopfzeilen und –fußzeilen werden im Verzeichnis ppt/notesSlides in notesSlides[N].xml hinterlegt.

Abb. 4: Funktion zur Einfügung von Handzettelkopfzeilen

Abb. 4: Funktion zur Einfügung von Handzettelkopfzeilen/-fußzeilen

Für Diagramme, sogenannte „SmartArt“(-Diagramme), eingebundene Grafiken und das Inhaltsverzeichnis werden jeweils Unterordner erzeugt:


Unter ppt/charts/chart[N].xml12 sind die notwendigen Daten für die Diagramme zu finden. Beim Bezug auf eine Excel-Tabelle wird die entsprechende Excel-Datei im Unterordner vom ppt-Ordner embeddings eingebunden.


Der Verweis auf eingebundene Grafiken findet in den Parts der entsprechenden Folien statt. Die eingebundenen Grafiken sind dagegen als Kopie der Originaldatei im Verzeichnis ppt/media zu finden. Der Datentyp ist variabel, der Name dagegen wir standardisiert auf „image[N]“ 12 mit der entsprechenden Dateiendung (z.B. „.jpg“).


Neben den regulären Parts gibt es Relationship-Parts, die für die Verknüpfung der einzelnen Parts zuständig sind. Relationship-Parts sind immer einem anderen Part zugeordnet. Einzige Ausnahme ist die Datei .rels im _rels Ordner (in der obersten Ebene des PPTX-Containers). Diese legt den Mainpart fest. Abgesehen von der Ausnahme der .rels-Datei folgen die Relationship-Parts einem einheitlichen Prinzip: Der Ordner, der den Part enthält für den der Relationship-Part bestimmt ist, enthält einen Unterordner namens _rels. Dieser enthält die entsprechende Relationship-Part-Datei. Der Name der Datei ist identisch mit dem der referenzierten Part-Datei, nur mit einer zusätzlichen Endung „.rels“. Für den Part ppt/presentation.xml ist also der Relationship-Part unter ppt/_rels/presentation.xml.rels zu finden. Dem entsprechend von ppt/slides/slide1.xml unter ppt/slides/_rels/slide1.xml.rels. Obwohl die Dateien „.rels“-Endungen haben, handelt es sich hierbei um wohlgeformte XML-Dokumente.


Die Relationship-Parts beschreiben die zielführenden Beziehungen des entsprechenden Parts zu eingebundenen Dateien und anderen Parts. Das bedeutet, werden Teile eines anderen Parts in den referenzierten Part integriert, wird die entsprechende Beziehung in dem Relationship-Item notiert. Wird aber der referenzierte Part in einen anderen Part integriert, wird dies nicht im entsprechenden Relationship-Part vermerkt. Da einige Parts nur in andere integriert werden, nicht aber selbst Parts einbinden, haben diese keinen zugehörigen Relationship-Part.

<< zurück zu 1. Einführung weiter zu 1.2 Die XML-Ausgabe >>
Tipp der data2type-Redaktion:
Zum Thema PresentationML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: