OFFICE OPEN XML Überblick

 
WEITER LESEN
OFFICE OPEN XML Überblick
ECMA TC 45
Verfasser: Tom Ngo

Die nachfolgenden Ausführungen basieren auf einem Whitepaper der ECMA, das in Teilen
zusammengefasst und übersetzt wurde.

1 Einleitung
Office Open XML (OpenXML) ist als offener Standard für Text verarbeitende Dokumente,
Präsentationen und Tabellenkalkulationen vorgeschlagen worden, der frei auf unterschiedlichen
Anwendungen und Plattformen implementiert werden kann. Die Veröffentlichung unterstützt
Organisationen, welche ein Interesse daran haben mit ihren Applikationen das Format zu nutzen.
Dies gilt auch für kommerzielle und Verwaltungsbereiche, die Software auf dieser Basis beschaffen,
sowie Lehrer oder Autoren, die dieses Format unterrichten wollen. Grundsätzlich sollen alle Nutzer
von einem offenen XML Standard für ihre Dokumente, in Bezug auf Stabilität, Kontinuität,
Interoperabilität und fortlaufender Weiterentwicklung, profitieren.
Die Standardisierungsarbeiten zu Open XML (OOXML) wurden über ECMA International im
Technischen Committee 45 ausgeführt. Daran beteiligt waren Vertreter der folgenden
Unternehmen und Organisationen: Apple, Barclays Capital, BP, The British Library, Essilor, Intel,
Microsoft, NextPage, Novell, Statoil, Toshiba, und andere.

Die nachfolgenden Ausführungen sollen OOXML dem Leser näher bringen. Dies beinhaltet:
     - Den Zweck von OOXML, sowie die Struktur der Spezifikation zu verstehen,
     - Wissen über die Eigenschaften von OOXML zu vermitteln, wie z.B. Rückwärts-
        Kompatibilität, Stabilität und Kontinuität, Erweiterungsfähigkeit, Benutzer spezifische
        Schemata, Plattformunterstützung, Internationalisierung, sowie Zugänglichkeit.
     - Verstehen, wie die Strukturen einer jeden OOXML-Datei aufgebaut sind.

2 Zweck des Standards
OpenXML wurde von Anfang an zur präzisen Darstellung von vorhandenem Text in Dokumenten,
Präsentationen und Tabellenkalkulationen, die im Binärformat von Microsoft vorlagen, entwickelt.
Der Standardisierungsprozess beinhaltete die Spiegelung der existierenden Eigenschaften in XML,
deren Erweiterung, die Dokumentation und die Sicherstellung der Interoperabilität. Allein in der
Entwicklungszeit des Standards generierten über 400 Millionen Benutzer mehr als 40 Milliarden
Dokumente im “alten” Binärformat. Jedes Jahr kommen weitere Milliarden dazu.
Das originäre Binärformat wurde in einer Zeit erstellt, als Hardwareressourcen und –Leistungen dem
Benutzer noch in einem unzureichenden Umfang zur Verfügung standen. Moderne Hardware,
Netzwerke und Standardinfrastrukturen benutzen XML und fördern Implementierungen durch
verschiedene Hersteller auf verschiedenen Plattformen. Diese technologischen Fortschritte führen zu
einer „neuen“ Art von Applikationen, die über die herkömmliche Textverarbeitung deutlich
hinausgehen.
Zukünftig werden Applikationen automatisch Dokumente aus Geschäftsdaten generieren. Es
werden Geschäftsdaten aus Dokumenten herausgezogen und Geschäftsanwendungen zur
Weiterbearbeitung zur Verfügung gestellt. Es werden einzelnen Dokumentenbereiche editiert
werden. Die Unterstützung für Behinderte muss gegeben sein. Die Lauffähigkeit auf diverser
Hardware inklusive mobiler Geräte muss sichergestellt werden. Eine der zentralen Anforderungen
an derartige Standards wird es sein, die Langzeitkonservierung und damit die Verfügbarkeit der
Daten sicherzustellen.
Das Ziel muss sein, bestehende und zukünftige Daten unabhängig von den Applikationen zu
machen, damit diese auch in 10 oder 20 Jahren noch ohne signifikante Verluste gelesen werden
können. Die Standardisierung von OOXML soll sicherstellen, dass alle diese Rahmendingungen auch
zukünftig eingehalten werden.
Es existieren heute schon eine Reihe von Dokumentenstandards und Spezifikationen, wie HTML,
XHTML, PDF, ODF, DocBook, DITA und RTF. Dazu noch diverse Standards, die Bitmaps
berücksichtigen, wie TIFF/IT, TIFF/EP, JPEG 2000, PHG, u. a. Jeder dieser Standards wurde für
bestimmte Anforderungen entwickelt. Der OOXML Standard adressiert die Notwendigkeit aus
bestehenden Dokumenten jedwede Eigenschaft der Binärformate abzubilden und zu unterstützen.

3 Struktur des Standards
OpenXML definiert Formate für Text verarbeitende Dokumente, Präsentationen und
Tabellenkalkulationen.    Jeder   Dokumententyp       ist   spezifiziert durch eine primäre
Auszeichnungssprache: WordprocessingML, PresentationML, oder SpreadsheetML. Eingebetete
Mechanismen sorgen dafür, dass jeder Dokumententyp in seinem Sprachraum bleibt. Die
Spezifikation beinhaltet zum einen die Unterlagen, die OOXML beschreiben und zum Anderen
Informationen für den Leser, um das Verständnis zu vertiefen.

Die Unterlagen sind folgendermaßen strukturiert: “Auszug: OPENXML Whitepaper ECMA”

Part 1 – Grundlagen       - Definition des Vokabulars sowie der Schreibweisen und Abkürzungen
165 Seiten                - Zusammenfassung der drei primären Auszeichnungssprachen und der
                            unterstützenden Auszeichnungssprachen
                          - Festlegung der Konditionen für Konformität und Richtlinien für die
                            Interoperabilität
                          - Beschreibung der Randbedingungen der Open Packaging Conventions
                            die auf die einzelnen Dokumententypen zutreffen
Part 2 – Open Packaging   - Definition der Open Packaging Conventions (OPC). Jede OpenXML
Conventions                 Datei beinhaltet eine Ansammlung von Datenketten die als Bereiche
125 Seiten                  (parts) bezeichnet werden und in einem Packet zusammengefasst
                            sind. Das Verpackungsformat wird von dem OPC bestimmt.
                          - Beschreibung der empfohlenen physischen Implementierung des OPC
                            unter Verwendung des ZIP Archive Formates
                          - In einem Anhang der nur in digitalen Form herausgegeben wird,
                            finden sich Beschreibungen des XML Schema für OPF in Form von
                            XML Schemata Definitionen (XSD) (2). Dieser Anhang beinhaltet
                            darüber hinaus nicht-normative Repräsentationen der Schemata unter
                            Zuhilfenahme von RELAX NG (ISO/IEC 19757-2) (3).
Part 3 – Primer           - Einführung in die Eigenschaften der Auszeichnungssprachen, durch
466 Seiten                  Beispiele und Diagramme veranschaulicht. Dieser Teil ist rein
                            informativ (nicht-normativ)
                          - Beschreibt die Möglichkeit Kunden XML Daten innerhalb eines
                            Paketes zu speichern, um die Integrierung von Business Daten zu
                            unterstützen.
Part 4 – Referenzen der    - Definition der einzelnen Elemente und Attribute, der Hierarchie von
Auszeichnungssprachen        Eltern-Kind-Verwandschaften der Elemente, und zusätzliche Semantik
5756 Seiten                  wenn soweit erforderlich. Dieser Part dient als Referenz um
                             vollständige Details über ein Element oder ein Attribute zu finden.
                           - Definition der Mittel um Kunden XML Daten zu speichern.
                           - Digitaler Anhang, siehe Part2
Part 5 – Kompatibilität    - Beschreibt die Möglichkeiten Open XML Dokumente zu erweitern.
der Auszeichnungs-         - Beschreibt spezifische Elemente und Attribute durch die
sprachen und deren           Anwendungen mit anderen Dateierweiterungen miteinander agieren
Erweiterbarkeit              können
34 Seiten                  - Erweiterungsregeln NVDL (ISO/IEC 19757-4) (4).

Um das Lesen und Navigieren durch diese Dokumente zu vereinfachen, ist die elektronische Version
mit aktiven Links versehen. Speziell Part 4 enthält Links zu den einzelnen Sprachelementen.

4 Eigenschaften des Standards
Dieser Abschnitt soll auf den Umgang mit OOXML vorbereiten, insbesondere die übergreifenden
Eigenschaften auf ihre Wirksamkeit verdeutlichen. Jeder Einzelabschnitt beschreibt die Eigenschaft
und bezieht sich auf die speziellen Bereiche in OOXML.
    1. “Interoperabilität” beschreibt, wie OOXML die Unabhängigkeit von proprietären Formaten,
       Funktionen und Laufzeitumgebung sicherstellt und Entwicklern damit viele Möglichkeiten
       eröffnet.
    2. “Internationalisierung” bedeutet, in welcher Form und auf welchen Wegen OOXML jede
       Sprachegruppe unterstützt.
    3. “Umfang der Entwickleranforderungen”, “Kompaktheit”, und “Modularität” beschreibt
       spezifische Hindernisse beim praktischen Umgang mit OOXML.
    4. “Wiedergabetreue bei Migrationen” beschreibt, wie OOXML die Darstellung in der
       Baumstruktur des Dateiformates realisiert.
    5. “Integration der Geschäftsdaten” beschreibt, wie OOXML Geschäftsinformationen in
       benutzerdefinierte Schemata integriert und den Informationsaustausch von Daten zwischen
       Geschäftsanwendungen und Informationssystemen.
    6. “Raum für Innovationen” beschreibt, wie OOXML auf Erweiterungen vorbereitet ist, mit
       dem Ziel, die Interoperabilität zwischen Anwendungen mit unterschiedlichem
       Funktionsumfang zu ermöglichen.

Die übrigen Bereiche des Dokumentes sind ein thematischer Führer durch OOXML. Verweise auf die
Spezifikation erscheinen in der Form § Part:section.subsection; z. B. §1:2.5 verweist auf Part 1,
Section 2.5 der Spezifikation.

4.1 Interoperabilität
Entwickler können Anwendungen schreiben, die OOXML auf verschiedenen Plattformen verarbeiten
und produzieren. Die Interoperabilität von OOXML wurde sichergestellt durch viele Beiträge,
Modifikationen und Reviews der Spezifikation der Mitglieder des Ecma T45 Commitee, die
unterschiedliche Anforderungen und unternehmensspezifischer Interessen vertraten.
    • Hersteller, Verkäufer (Apple, Intel, Microsoft, NextPage, Novell, and Toshiba) vertreten mit
        diversen Betriebssystemen (Linux, MacOS, und Windows), sowie unterschiedlichen
        Verwendungsanforderungen von OOXML
    • Unternehmen (BP, Barclays Capital, Essilor, Statoil) mit hohem Interesse am bestehenden
        Inhaltsdaten, inklusive geschäftskritischen Transaktionssystemen.
•   The British Library und the United States Library of Congress, beide mit einem sehr starken
       Interesse an der “Datenerhaltung, -konservierung”.

In der Vorbereitung, haben die Committee Mitglieder Hunderte von Punkten hinsichtlich Richtlinien,
Eindeutigkeit, Semantik und möglichen Abhängigkeiten zur Systemumgebung aufgeworfen und
geklärt. Nachfolgend sind die Bereiche aufgeführt, welche im Prozess behandelt worden sind:
    • Funktionen, die die Plattformunabhängigkeit unterstützen, welche im original Binärformat
        Proprietär (MS-spezifisch) gelöst waren
    • Konformitätsbedingungen
    • Schemainhalte
    • Alternative Darstellungen für Schemata und Erweiterungsmechanismen die RELAX NG
        (ISO/IEC 19757-2) und NVDL (ISO/IEC 19757-4) (4) nutzen
    • Entwicklungstools für die automatische Analyse und Visualisierung der Schemata
    • Internationalisierung
    • Vollständigkeit, Korrektheit und Klarheit der Beschreibungen in der Spezifikation. Vieles
        resultierte aus Teststellungen und Implementierungen

Eine der zentralen Forderungen der Interoperabilität ist die vollständige Unabhängigkeit von
jeglicher Art von Inhaltsquelle, z. B.
     • OOXML beinhaltet keine Beschränkung für Fotos, Audio oder Video Typen. Z.B. können
        Fotos auf Basis von GIF, PNG, TIFF, PICT, JPEG oder jedem anderen Fototyp (§1:14.2.12)
        eingebunden werden.
     • Eingebettete Bedienelemente können jeglichen Typ repräsentieren, auf Basis von Java oder
        ActiveX (§1:15.2.8).
     • WordprocessingML-Schriftspezifikationen können Schriftmaße und PANOSE Informationen
        enthalten, um eine Schriftart durch eine andere zu ersetzen, falls die Originalschriftart nicht
        verfügbar ist.

Zusätzlich sollten OpenXML Abhängigkeiten der Laufzeitumgebung von der Anwendung, die ein
Dokument produziert, vermieden werden.
   • Schutz vor Überschreiben oder Korrumpieren von Bildern, welche durch Screenshoots mit
        externen Applikationen erstellt wurden, die aber nicht in einer bestimmten
        Systemumgebung lauffähig sind. Diese Funktionalität war schon mit dem „alten“
        Binärformat gegeben.
   • OOXML führt Mechanismen ein, “Alternate Content Block” (§3:2.18.4), die in
        unterschiedlichen Situationen genutzt werden können, in denen eine Anwendung nicht in
        der Lage ist, das Ergebnis einer anderen Anwendung zu interpretieren. Diese Funktion wird
        generell im Kontext von Erweiterungen genutzt. Der Mechanismus ist im Abschnitt „Raum
        für Innovationen“ beschrieben.
   • OOXML vermeidet jede Abhängigkeit von Parametern die bedeutsam für die
        Herstellerausstattung der Dokumente sind, aber nicht unbedingt für die Nutzerausstattung.
        Z. B. der parameter CT_SYSCOLOR ist ein Index in der Farbtabelle der Herstellerausstattung.
        Um die Übertragbarkeit in verschiedene Nutzerausstattung zu unterstützen, erlaubt es
        PresentationML dem Hersteller die Zwischenzuspeicherung der Systemfarbe für die Zeit, in
        der das Dokument erstellt wird, die benutzt wurde
Von besonderer Bedeutung ist die Konformität mit den offenen W3C Standards, wie z.B. XML und
XML Namespaces. Hierdurch wird die Grundlage für die Interoperabilität über alle Plattformen und
Betriebssysteme hinweg, die diese offenen Standards unterstützen, sichergestellt.

4.2 Internationalisierung
OOXML liefert Sprachunterstützung für diverse Sprachen, wie z. B. Arabisch, Chinesisch (drei
Dialekte), Hebräisch, Hindi, Japanisch, Koreanisch, Russisch und Türkisch. OOXML unterstützt von
sich aus Unicode, weil dieser aus XML abgeleitet ist. Zusätzlich enthält OOXM noch ein
umfangreiches Funktionsset zur Sprachunterstützung, welche sich im Laufe der Jahre gebildet hat.
Z. B. Text orientation: OOXML unterstützt left-to-right (LTR) und right-to-left (RTL) Sprachen. Ebenso
werden bidirektionale (“BiDi”) Sprachen, wie Arabisch, Farsi, Urdu, Hebräisch, und Yiddish
unterstützt.

4.3 Entwicklerunterstützung
Ein erfahrener Entwickler ist in der Lage nach einigen Stunden Spezifikationsstudium einfache
OOXML konforme Anwendungen zu schreiben. Die Spezifikation beschreibt viele Funktionen,
welche aber nicht alle bei der Applikationsentwicklung genutzt werden müssen.             Das
Konformitätsstatement (§1:2) beansprucht lediglich für den Konsumenten “not reject any
conforming documents of the document type [that it expects]” und für den konformen Hersteller
“be able to produce conforming documents” (§1:2.5). Es existieren ebenfalls “Interoperability
Guidelines” zu den sprachlichen Elementen (§1:2.6).
Eine OOXML konforme Anwendung kann auf wenige Funktionalitäten fokussiert sein.
    • Das Dateiformat ist konform zu etablierten Standards, wie XML und ZIP.
    • Das Dateiformat benutzt die Open Packaging Conventions, welche in Kombinationen von
        XML und ZIP durch Standardmechanismen Referenzen innerhalb von Dateien bilden.
        Dadurch können die Dateiinhalte oftmals ohne besondere Kenntnisse der  gefunden
        werden.
    • Die Elemente im XML Baum sind auf jeder Ebene zugänglich und können so modifiziert
        werden, das andere Bereiche des Baum unangetastet bleiben.

4.4 Komprimierung, Kompaktheit des Formates
Das OOXML Format unterstützt die Entwicklung leistungsstarker Anwendungen. In diesem
Abschnitt werden einige Designbedingungen angesprochen, die zu einer kompakten Datei geführt
haben, wie Verarbeitungsgeschwindigkeit und Syntaxanalyse. Im nächsten Abschnitt werden die
Vorteile der modularen Dateistruktur für Anwendungen verdeutlicht, wenn nur kleine
Dokumentbereiche analysiert oder modifiziert werden sollen. Eine OOXML Datei ist üblicherweise in
einem ZIP Archiv wegen Paketierungsanforderungen und Kompressionsrate gespeichert. Die Datei
genügt den Bedingungen der „Open Packaging Conventions“. Die Kompressionsraten der Dateien
liegen zwischen 25 und 75% der bisherigen Binärdateien.
    • In SpreadsheetML werden wiederkehrende Zeichenketten in einer Tabelle im Workbook
        gespeichert und über einen Index referenziert. (§3:3.3).
    • In SpreadsheetML ist ein Formular, das heruntergefahren oder zwischen verschiedenen
        Zellen als „single master“ in einer linken Zelle gespeichert ist; die anderen Zellen der
        Füllungsanzeige werden durch einen Gruppenindex daraus verwiesen. (§ 3:3.2.9.2.)
    • In DrawingML, Rahmen (§4:5.1.12.56), Text Geometrien (§4:5.1.12.76), und andere
        Voreinstellungen (Verschiedene in §3:5.8, §3:5.9, and §4:5.1.12) werden über Namen oder
        Nummern anstatt ausführlicher Beschreibungen abgebildet.
OOXML ist entwickelt worden, um effiziente Implementierungen zu ermöglichen. Z. B. in
SpreadsheetML werden in Tabellen nur “gefüllte” Zellen zusammen mit der Eigenschaft der Zellen
zusammengefasst und als Einheit gespeichert. Die Einsparung, die die Verwendung dieser Technik
nach sich zieht, ist signifikant für verteilte Arbeitsblätter.

4.5 Modularität
Eine Anwendung kann viele Aufgaben, wie Syntaxanalyse oder Modifizierung in einem kleinen
Dokumentbereich vornehmen. Drei Funktionen des OOXML Formates unterstützen diese
Modularität von Haus aus.
    • Ein Dokument ist nicht monolithisch aufgebaut, sondern besteht aus diversen Bereichen.
    • Beziehungen zwischen den Bereichen werden wiederum in anderen Bereichen gespeichert.
    • Das ZIP Format unterstützt OOXML Dokumente und ermöglicht auch einen wahlfreien
       Zugriff auf jeden Bereich.

Beispiele:
    • Eine Anwendung kann Folien von einer Präsentation in eine andere überführen. Hierbei
        werden die Bestandteile, wie Fotos und Layouts mitgezogen, ohne das der Inhalt analysiert
        wird (§3:13.3.8). Dieses Beispiel benutzt Daten, die als explizite Beziehungen bezeichnet
        werden, um die Folien und die Ressourcen dazu zu finden. Explizite Beziehungen sind in der
        Open Packaging Convention definiert und können bei der Satzanalyse ohne Kenntnis der
        PresentationML Tag Semantic angewendet werden (§1:9.2, §2:8.3).
    • Eine Anwendung kann alle Kommentare aus einem WordprocessingML Dokument
        extrahieren, ohne den Inhalt einer Satzanalyse zu unterziehen (§1:11.3.2). Dieses Beispiel
        benutzt implizite Beziehungen, um Kommentare zu finden. Implizite Beziehungen sind
        OOXML spezifisch und verlangt einige Kenntnisse über die relevante Auszeichnungssprache
        (§1:9.2).

4.6 Wiedergabetreue bei Migrationen
OOXML wurde mit der Maßgabe entwickelt, alle Funktionalitäten der Binärformate Microsoft Office
97-2003 zu unterstützten. Dies wurde mit OOXML auch konsequent umgesetzt. Einige Formate,
wie PDF sind dazu entwickelt worden dem Endbenutzer eine originalgetreue Abbildung des fertigen
Dokumentes zu liefern. In Gegensatz dazu soll OOXML auf demselben Abstraktionsniveau, dem
Autor helfen, zukünftige Manipulationen zu vermeiden. Es gibt eine Reihe von Funktionen, die
möglicherweise durch den Autor geschützt werden sollen, z.B. die Konvertierung einer Vektorgrafik
in ein Bitmap oder die Verwendung von Zwischenergebnissen bei Berechnungen, inklusive
Fehlercodes oder Regeln für dynamische Ansichten. All diese Funktionen stehen exemplarisch für
die Fähigkeit von OOXML Teilaspekte der Binärformate, welche schon in den Binärformaten
vorhanden waren, zu unterstützen.
    • Die SpreadsheetML Beschreibung beinhaltet eine ausführliche Formel Spezifikation
       (§4:3.17.7).
    • Die WordprocessingML Beschreibung spezifiziert die Regeln unter denen Abschnitte,
       Schriftzeichen, Nummerierungen und Tabelleneigenschaften bei der direkten Formatierung
       benutzt werden (§3:2.8, insbesondere §3:2.8.10).
    • Die PresentationML Spezifikation beschreibt Animationsfunktionen (§3:4.4).

OOXML ist bestrebt Lösungen für verschiedene Implementierungen anzubieten, allerdings konnten
nicht alle Details beachtet werden. Dies ist besonders bei der numerischen Berechnung von Layouts,
animierten Darstellungen von 3-D Objekten und der formelgestützten Berechnung zu beachten. Die
Forderung nach höherer Konsistenz hätte auch höhere Implementierungsbarrieren zur Folge
gehabt, die die Entwickler hätten überwinden müssen.
Diese Erläuterungen sollen die Entscheidungen verdeutlichen, die im Technischen Committee T45 in
diesem Zusammenhang getroffen wurden.
Eine Reihe älterer Funktionen, wie VML (§3:6), sind aus Rückwärts-Kompatibilitätsgründen in
OOXML enthalten. Die Benutzung neuerer Standards, wie z. B. DrawingML (§3:5), sind für die
Erstellung neuerer Dokumente eingefügt worden.

4.7 Integration der Geschäftsdaten
OOXML befähigt Organisationen, ihre Produktivitätsanwendungen mit Informationssystemen zu
koppeln, welche Geschäftsprozesse managen, durch die Benutzung kundenspezifischer Schemata in
OOXML Dokumenten. Die Ziele der Organisationen können durch diesen Ansatz, Daten wieder
verwendbar und automatisch in Dokumenten zur Verfügung zu stellen, transparent unterstützt
werden. Viele Geschäftsanwendungen können derzeit nur begrenzt innerhalb von Dokumenten
agieren, z.B. Lesen oder Schreiben.

Die exemplarischen Anforderungen an heutige Anwendungen beinhalten:
    • Search: Ein Benutzer kann über diverse Kalkulationsblätter hinweg Unternehmen suchen,
       welche z.B. 20% Marge haben.
    • Metadata tagging: Ein Unternehmen möchte eine Zusammenstellung der Präsentationen
       erhalten, welche nach vorher definierten Regeln erstellt worden sind.
    • Document assembly: Eine Angebote erstellende Gruppe, kann rationell Angebote erstellen,
       indem die dem Angebot zugrunde liegenden Daten automatisiert aufbereitet werden.
    • Data reuse: Ein Verkaufsverantwortlicher kann Berichte über alle Verkaufabschlüsse, die eine
       definierte Marge, bestimmte Kundengruppen oder einen bestimmten Abschlußumfang
       beinhalten, generieren.
    • Line-of-business applications: Experten können ihre Ergebnisse direkt den
       Geschäftsanwendungen übergeben.

Um diesen Anforderungen zu genügen, werden die Strukturen und Datentypen, die in bestimmten
Dokumenten enthalten sein sollen, definiert, damit die gewünschten Informationen, wo auch
immer benötigt, im Workflow Dokumenten spezifisch zur Verfügung stehen. Dies berücksichtigt
auch einfache Ergebnisberichte. Eine Person kann die Datenstruktur definieren, die z.B. Felder wie
Name, Telefonnummer, Adresse, berufliche Qualifikationen, etc. enthalten kann. Ein Anderer sorgt
dafür, dass diese Informationen, wo auch immer benötigt, dann in den Dokumenten zur Verfügung
stehen. Natürlich haben unterschiedliche Geschäftsprozesse und Geschäftsbereiche unterschiedliche
Anforderungen an die Datenstrukturen und Datenfelder. OOXML erlaubt es, derartige Prozesse mit
unterschiedlichen Anforderungen, immer in dergleichen Art und Weise aufzusetzen. Organisationen
können in diesem Zusammenhang, durch die Industrie standardisierte Schemata, wie XBRL für
Finanzberichte oder HL7 für Arztinformationen im Gesundheitswesen nutzen.
Erstens: Schemata, die im Public Sektor, in Unternehmen, oder als Industriestandards verwendet
werden, können in entsprechende Prozesse eingebunden werden, wie z.B. die Verwendung einer
Geburtsurkunde für Versicherungszwecke. Jedes andere Schema ist einbindbar, solange es der XSD
Form genügt.
Zweitens: Kundendaten werden in jedem OOXML Dokument in einen Kunden XML Bereich (§3.7.3)
eingebettet und können über den Bereich Kunden XML Dateneigenschaften beschrieben werden
(§4:7.5).

4.8 Raum für Innovationen
OOXML soll Entwickler ermutigen neue Anwendungen zu entwickeln, die Dateiformatunabhängig
sind. Über die Erweiterung der Mechanismen wurden im technischen Committee intensive
Diskussionen geführt, die die Interoperabilität zwischen Anwendungen mit unterschiedlichem
Funktionsumfang ermöglichen sollen. Dies betrifft auch Anwendungen (up-level), welche z.B.
Funktionen nutzen, die nicht in OOXML enthalten sind, aber mit Anwendungen (down-level)
zusammenarbeiten müssen, die diese Funktionen nicht beinhalten.

Die primären Ziele im Umgang mit derartigen Erweiterungen sind:
    • Visual fidelity: Die Fähigkeit von down-level Anwendungen, das sichtbar zu machen, was
        von up-level Anwendungen sichtbar gemacht wird. Dies setzt zwingend voraus, dass in
        einer Datei unterschiedliche Repräsentationen derselben Daten gespeichert werden können.
    • Privacy: Die Fähigkeit sicherzustellen, dass alte Datenbestände nicht auf andere
        Datenbestände verweisen und während des Editierens anwenderbezogene Informationen
        herausgegeben werden, die den Benutzer in die Irre führen (Änderungsmeldungen oder
        Meldungen über Löschungen). Eine Anwendung kann dies über Löschprozeduren oder
        Synchronisieren der Datenbestände sicherstellen.

Entwickler haben zwei Optionen um OOXML zu erweitern:
   • Alternative content block: Ein alternativer Inhaltsblock (§3:2.18.4 and §5:9.2) speichert
       verschiedene Datenbestände, die denselben Inhalt ausweisen. Jeder Inhalt wird in einem
       eigenen “Entscheidungs- oder Fallblock” gespeichert. Down-level Anwendungen lesen die
       Bereiche aus, die sie lesen können. Beim Schreibvorgang werden alle Blöcke beschrieben,
       die beschreibbar sind.
   • Extension lists: Eine Erweiterungsliste (§3:2.6) speichert beliebiges Kundenspezifisches XML
       ohne Visualisierungsdaten.

Für Entwickler bestehend darüber hinaus weitere Möglichkeiten:
    • Alternative interaction paradigms: OOXML spezifiziert naturgemäß mehr die Dokumenten
       Syntax als das Anwendungsverhalten. Wie schon unter dem Punkt Konformität
       (Conformance statement) beschrieben, konzentriert OOXML sich auf die Semantik (§1:2.2,
       §1.2.3). Konsequenterweise, kann eine konforme Anwendung auf unterschiedlichen Wegen
       mit einem Anwender kommunizieren oder auch nicht, solange sie die spezifizierte Semantik
       benutzt.
    • Novel computing environments: Das Konformitätsstatement berücksichtigt Anwendungen,
       die geringe Kapazitäten benötigen, um z. B. auf mobilen Geräten lauffähig zu sein, und
       auch Anwendungen, die nur einen Teilbereich von OOXML benutzen (§1:2.6). Zusätzliche
       Mechanismen erlauben Anwendungen, ihre Kapazitätsgrenzen den Systemen mitzuteilen
       (§3:8.1).

Wie im vorherigen Abschnitt dargestellt, beinhalten die wesentlichen Möglichkeiten für
Innovationen nicht, die Dokumentendarstellung, sondern beziehen sich vielmehr auf die Maschine-
zu-Maschine Kommunikation, unter besonderer Berücksichtigung der XML Nachrichtenformate, wie
z.B. XML Web Services. Hierzu sind die folgende Abschnitte von Bedeutung: §1:2.4, §1:2.5 und
§1:2.6.
 Da nicht alle Benutzerszenarien im Umfeld Kundenspezifischer XML Prozesse aufgeführt werden
können, sollen hier nur die wichtigsten XML-spezifischen Services wie XML Digital Signature, XML
Encryption, oder XSLT Transformationen angesprochen werden. OOXML enthält keinerlei
Restriktionen gegenüber implementierten Prozessen, die derartige Services nutzen.
5 Struktur eines Office Open XML Dokumentes
Eines der Hauptziele dieses Whitepapers ist es, den Leser mit der übergreifenden Struktur eines
jeden OpenXML Dokumentes vertraut zu machen. Um dies zu erreichen, werden die Einzelheiten
des Open Packaging Conventions (OPC) im angemessenen Umfang beschrieben, wobei nur im
geringeren Umfang auf die einzelnen Auszeichnungssprachen eingegangen wird.

5.1 Open Packaging Conventions
Die Open Packaging Conventions (OPC) ermöglicht es verschiedene Inhaltskomponenten (z.B. XML,
Bilder und Metadaten) in einem Paket zusammenzufassen, wie zum Beispiel als ZIP Archiv, um ein
Dokument lückenlos wiederzugeben. Sie beschreiben ein logisches Model zur Wiedergabe von
Inhalten und Beziehungen.
Die empfohlene Implementierung von OPC verwendet das ZIP Archive Format. Die Struktur eines
jeden OpenXML Dokumentes kann mit Hilfe eines ZIP Programms sichtbar gemacht werden. Zum
besseren Verständnis ist es hilfreich sich den Inhalt eines kleinen Open XML Dokumentes auf diese
Weise anzusehen, während Sie diese Erläuterung lesen. Unter Windows muss man lediglich die
Erweiterung „.zip“ dem Dateinamen hinzufügen und diese Datei dann öffnen.

Logischerweise ist jedes OpenXML Dokument ein OPC Paket (§5:8). Ein Paket ist eine
gleichberechtigte Ansammlung der einzelnen Bereiche (§5:8.1). Jeder Bereich besitzt einen case-
insensitve Bereichsnamen welcher sich aus den durch einen Slash abgegrenzten Abschnittsnamen
zusammensetzt, wie zum Beispiel „/pres/slides/slide1.xml” (§5:8.1.1). Jeder Bereich besitzt darüber
hinaus einen Content-Type (§5:8.1.2). Physisch gesehen, ist ein ZIP Archive genau ein Paket, in dem
jede ZIP-Position einen Bereich darstellt, deren Pfadnamen innerhalb des ZIP Archivs direkt den
einzelnen Abschnittsnamen entsprechen.
Die ZIP Implementierung „/[Content_Types].xml” erlaubt dem Benutzer den Inhalt jedes einzelnen
Bereich des Paketes zu bestimmen (§2:9.2.6). Die Syntax und Definition der Medien Typen folgt
Abschnitt 3.7 des RFC 2616 (13).
Pakete und Bereiche können sowohl explizite Beziehungen (§1:9.2) zu anderen Bereichen innerhalb
des Paketes umfassen, wie auch Referenzen zu externen Ressourcen. Jede explizite Beziehung
besitzt zusätzlich einen Relationship ID, die es dem Inhalt des Bereichs erlaubt darauf zu verweisen;
und eine Type, die Anwendungen hilft, die gewählte Datei zu verarbeiten. Beziehungen werden
unter Zuhilfenahme von URIs benannt, wodurch selbst nicht koordinierte Gruppen problemlos und
konfliktfrei neue Types erstellen können.

Der Satz aller expliziten Beziehungen eines gegebenen Paketes oder Bereichs wird in dem
Referenzbereich gespeichert. Der Referenzbereich eines gesamten Paketes ist durch „/_rels/.rels”
gekennzeichnet, sodass der Referenzbereich für den Bereich „/a/b/c.xml” durch
„/a/b/_rels/c.xml.rels” gekennzeichnet ist. Die Referenzbereiche (und, in der ZIP Implementierung,
die Content-Type Bereiche) sind die einzigen spezifisch benannten Bereiche in einem Paket. Um ein
Paket zu öffnen muss eine Anwendung die paketspezifischen Beziehungsbereiche analysieren und
den entsprechenden Referenzen der Typen folgen.
Alle anderen Bereiche eines OOXML setzen sich aus OpenXML, Kunden XML, sowie Inhalte
verschiedener Types, wie zum Beispiel Multimedia Objekte, zusammen. Die Möglichkeit, in einem
Bereich Kunden XML einzubauen, ist ein besonders ausgefeiltes System, um Business Daten und
Metadaten mit einzubinden.

5.2 WordprecessingML
Ein WordprocessingML Dokument setzt sich aus verschiedenen Ebenen (§3:2.1) zusammen. Jede
Ebene ist eines der folgenden Bestandteile: das Hauptdokument (§3:2.2), das Glossar (§3:2.13),
einem Subdokument (§3:2.18.2), einer Kopfzeile (§3:2.11.1), einer Fußzeile (§3:2.11.2), ein
Kommentar (§3:2.14.5), der Frame, einer Textbox (§3:2.18.1), eine Fußnote (§3:2.12.1), oder eine
Endnote (§3:2.12.2).

Die einzig wirklich erforderliche Ebene ist das Hauptdokument. Es ist das Ziel der Paketsreferenz,
dessen Inhalt lautet:

http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument

Ein typischer Pfad von der Wurzel eines XML Baumes bis zum einem Blatt, würde sich aus den
folgenden XML Elementen zusammensetzen (§3:2.2)
    • document – Das Basiselement des Hauptdokumentes (§3:2.3).
    • body – der Aufbau (§3:2.7.1) kann mehrere verschiedene Paragraphen enthalten und
        darüber hinaus Absatzeigenschaften die in sectPr Elementen festgehalten werden.
    • p – Der Paragraph (§3:2.4.1) kann eine oder mehrere Runs enthalten und darüber hinaus
        auch Paragrapheneigenschaften die in pPr Elementen festgelegt sind, welche wiederum
        Standardeinstellungen für Eigenschaften der Runs (werden auch als Zeicheneigenschaften
        bezeichnet) enthalten und bestimmt werden durch rPr Elemente (§3:2.4.4).
    • r – Ein Run (§3:2.4.2) kann verschieden Run-Inhalte aufweisen die primär aus Textbereichen
        bestehen. Ein Run ist ein elementares Konzept innerhalb von OpenXML. Ein Run ist ein
        zusammenhängender Wortbaustein mit identischen Eigenschaften, welcher keine weiteren
        Auszeichnungen aufweist. Zum Beispiel, wenn ein Satz die Sequenz „this is three runs“
        beinhaltet, dann würde es durch mindestens drei Runs dargestellt werden: „this is“,
        „three“und „runs“. In dieser Hinsicht unterscheidet sich OpenXML signifikant von anderen
        Formaten, die eine beliebige Versschachtelung von Eigenschaften zulassen, wie z.B. HTML.
    • t – Textbereiche (§3:2.4.3.1) können einen beliebig langen Text ohne Formatierung bzw.
        Non-Textelemente beinhalten. Die Formatierung des Textes wird durch die Eigenschaften
        der Runs sowie der Paragrapheneigenschaften weitergegeben. Dieses Element verwendet
        oft Attribut xml:space=“preserve“

In diesem Abschnitt wurde die direkte Formatierung von Text durch das Spezifizieren von Run- und
Paragrapheneigenschaften erläutert. Direkt Formatierungen schließt sich den Anwendungen an
durch die Zeichensätze, Paragraphen, Nummerierungen, Tabellenformatierungen und auch
Standardeinstellungen gegeben werden (§3:2.8.10). Diese Stile bzw. Formate werden dann in
Hinterlassenschaftsarchiven zusammengefasst.

Der unten stehende Abschnitt „Minimal WordprocessingML Document” führt ein komplettes
WordprocessingML Dokument auf.

5.3 PresentationML
Ein PresentationML Dokument wird durch einen Präsentationsbereich                 beschrieben.   Der
Präsentationsbereich ist das Ziel der der Paketsreferenz, dessen Inhalt lautet:

http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument

Die Präsentation nimmt Bezug auf diese primären Konstruktionsbauteile (§3:4.2), die im
nachfolgenden in einer Top-Bottom-Hierarchie aufgeführt sind:
   • Folienmaster, Notizenmaster, und Handzettelmaster (§3:4.2.2), die alle Eigenschaften der
       Präsentation weitergeben
•   Folienlayout (§3:4.2.5), welches die Eigenschaften des Folienmasters übernimmt
   •   Folien (§3:4.2.3) und Notizen (§3:4.2.4), welche jeweilig die Eigenschaften des Folienlayouts
       und des Notizenmaster übernehmen

Die jeweiligen Master, Layouts und Folien werden in Ihren eigenen Bereichen gespeichert. Der
Name eines jeden Bereiches wird durch den Referenzbereich der Präsentation festgelegt. Alle sechs
Elemente der Präsentation werden auf die gleiche Weise strukturiert. Ein typischer Pfad von der
Wurzel eines XML Baumes bis zum einem Blatt, würde sich aus den folgenden XML Elementen
zusammensetzen (§3:2.2):
   • sld, sldLayout, sldMaster, notes, notesMaster oder handoutMaster – die Basiselemente
   • cSld – Folie (§4:4.4.1.15) kann DrawingML Elemente und andere Strukturelemente
       enthalten (siehe unten)
   • spTree – shape tree (§4:4.4.1.42) beinhaltet Formeneigenschaften von Gruppen in grpSpPr
       Elementen (§4:4.4.1.20) sowie nicht visuelle Formeneigenschaften von Gruppen in
       nvGrpSpPr Elementen (§4:4.4.1.28). Dieser Punkt und alle seine Verzweigungen sind
       DrawingML Elemente. Einige DrawingML Elemente werden hier aufgelistet um ihre
       ausschlaggebende Rolle in der PresentationML zu verdeutlichen.
   • sp – shape (§4:4.4.1.40) enthält Eigenschaften der Form in spPr Elementen (§4:4.4.1.41)
       sowie nicht visuelle Formen Eigenschaften in nvSpPr Elementen (§4:4.4.1.31).

Zusätzlich zu DrawingML Formeninhalten können cSlD andere strukturelle Elemente enthalten,
abhängig von den Basiselementen, die gegeben sind. Eine Zusammenfassung findet sich in
folgender Tabelle:

                              Slide    Slide     Slide     Handout Notes       Notes
                                       Layout    Master    Master  Master      page
          Common Data     X            X         X         X       X           X
          Transition      X            X         X
          Timing          X            X         X
          Headers     and              X         X         X          X
          Footers
          Matching Name                X
          Layout Type                  X
          Preserve                     X         X
          Layout List                            X
          Text Style                             X

Eigenschaften bestimmt durch Objekte, die in der Standardhierarchie niedriger eingestuft sind (z.B.
Folienmaster, Folienlayout, Folien), überschreiben die Eigenschaften von hierarchisch höher
angesiedelten Objekten. Zum Beispiel, wenn der Folienübergang nicht in der Folie selbst festgelegt
ist, wird diese Information dem Folienlayout entnommen. Sollte es dort auch nicht spezifisch
festgelegt sein, wird auf den Folienmaster zurückgegriffen.

5.4 SpreadsheetML
Ein SpreadsheetML Dokument wird durch den Arbeitsmappenbereich beschrieben. Dieser wiederum
ist das Ziel der Paketreferenz, dessen Inhalt lautet:

http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument
Der Arbeitsmappenbereich speichert Information über das Arbeitsbuch und seine Struktur, wie z.B.
die Dateiversion, die zugehörige Anwendung, und Passwörter. Logischerweise beinhaltet eine
Arbeitsmappe mehrere Blätter (§3:3.2); physisch gesehen, wird jedes Blatt seinen eigenen Bereich
zugewiesen und wird auf die bekannte Weise durch Referenzen an den Arbeitsmappenbereich
gekoppelt. Die Blätter können Worksheets, Graphen oder Dialogsheets sein. Hier werden nur die
weitverbreiteten Worksheets betrachtet.

Innerhalb eines Worksheet ist ein typischer Pfad von der Wurzel eines XML Baumes bis zum Blatt,
durch die folgenden XML Elementen beschrieben:
    • worksheet – das Basiselement eines Arbeitsblattes (§3:3.2)
    • sheetData – die Zellentabelle, welche alle nicht leeren Zellen des Worksheets repräsentiert
       (§3:3.2.4)
    • row – eine Zellenreihe in der Zellentabelle (§3:2.8)
    • c – eine Zelle (§3:3.2.9). Das Attribut r zeigt die Position der Zelle an unter Zuhilfenahme der
       A1-style Koordinaten. Die Zelle kann darüber hinaus auch einen Style-Identifizierung
       (Attribute s) sowie eine Datentypisierung (Attribute t) enthalten.
    • v und f – die Werte (§3:3.2.9.1) und optionale Formeln (§3:3.2.9.2) in den Zellen. Wenn die
       Zelle durch eine Formel belegt ist, ist der Wert das Ergebnis der letzten Kalkulation.

Strings und Formeln werden in den gleich Tabellen gespeichert (§3:3.3 and §3:3.2.9.2.1) um
redundant-storage-Probleme sowie speed loads/saves zu vermeiden.

5.5 Unterstützte Auszeichnungssprachen

Etliche unterstütze Auszeichnungssprachen können verwendet werden, um den Inhalt von
OpenXML Dokumenten zu beschreiben.
     • DrawingML (§3:5) – wird benutzt, um Formen und andere graphische Elemente innerhalb
        eines Dokumentes wiederzugeben.
     • VML (§3:6) – ein Format für Vektorgraphiken, welches integriert wurde um Backwards-
        Kompatibilität zu gewähren. Diese Format wird letztendlich durch DrawingML -ersatz
        werden
     • Shared MLs: Mathematik (§3:7.1), Metadaten (§3:7.2), Kunden XML (§3:7.3), und
        Bibliografie (§3:7.4).

5.6 Minimal WordprocessingML Dokument
Dieser Abschnitt enthält eine minimale WordprocessingML Dokument das drei Teile enthält. Der
Content-Type Bereich „/[Content_Types].xml” beschreibt die Content Types von zwei weiteren
erforderlichen Bereichen.

Der Paketreferenz „/_rels/.rels” beschreibt die Beziehung zwischen dem Paket und dem
Hauptdokumentbereich.
Der Dokumentenbereich, hier „document.xml”, enthält den Dokumenteninhalt.

Diese Spezifikation liefert ein minimales Dokument und weitere Details für WordprocessingML
(§1:11.2), PresentationML (§1:13.2), und SpreadsheetML (§1:12.2).

6 Zusammenfassung
OpenXML ist das Ergebnis beachtlicher Anstrengungen von Vertretern vieler Industriezweige und
öffentlicher Einrichtungen mit unterschiedlichen Hintergründen und organisationsspezifischen
Interessen. Es umfasst nicht nur alle Merkmale die auch in diesem Dokumentenkorpus verwendet
wurden, sondern entspricht auch den Anforderungen der Internationalisierung die allen großen
Sprachräumen Weltweit innewohnen. Die Standardisierungsarbeit der Ecma TC45 (1) und die
Beiträge eingereicht in öffentlichen Stellungnahmen habe es ermöglicht ein großes Maß an
Interoperabilität und Plattformunabhängigkeit zu erreichen; und die OpenXML Dokumentation
wurde komplettiert (durch umfassendes Referenzmaterial) und zugänglich gemacht (durch nicht-
normative Beschreibung). Es beinhaltet darüber hinaus genug Informationen damit unterstützende
Anwendungen Dokumente korrekt verarbeiten können. OpenXML Implementierungen können sehr
klein sein und gezielte Funktionalität liefern oder alle Features beinhalten. Im Format enthaltene
Erweiterungsmechanismen garantieren weiteren Raum für Innovationen.

Die Standardisierung der Formatspezifikationen und deren Erhaltung stellen sicher, dass
verschiedensten Gruppen sich auf den Standard verlassen können und darauf vertrauen können,
dass weitere Entwicklungen dem Kontroll- und Balancesystem eines Open-Standard-Prozesses
entsprechen. Es besteht das zwingende Bedürfnis nach einen offenen Dokumentenstandart, der
nicht nur die Billionen von bereits erstellten Dokumenten in Binärformat sichern kann, sondern auch
die Billionen, die über die Jahre noch entstehen werden. Dies wird ermöglicht durch technologische
Fortschritte in der Hardware, im Networking und in der Standart-basierten Softwareinfrastruktur.
Die explosive Diversifizierung der Marktnachfrage, einschließlich der gewichtigsten bestehenden
Investitionen in wichtige Business Systeme, lassen den Dokumentenstandard essentiell werden.

7 Referenzen

1. Ecma international. TC45 - Office Open XML Formats. Ecma International. [Online]
http://www.ecma-international.org/memento/TC45.htm.

2. W3C. XML Schema. World Wide Web Consortium. [Online] http://www.w3.org/XML/Schema.

3. ISO. ISO/IEC 19757-2:2003. International Organization for Standardization. [Online]
http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=37605&ICS1=35&ICS
2=240&ICS3=30.
4. ISO. ISO/IEC 19757-4:2006. International Organization for Standardization. [Online]
http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=38615&ICS1=35&ICS
2=240&ICS3=30.

5. W3C. Extensible Markup Language (XML) 1.0 (Fourth Edition). World Wide Web Consortium.
[Online] 2006. http://www.w3.org/TR/2006/REC-xml-20060816/.

6. W3C. Namespaces in XML 1.0 (Second Edition). World Wide Web Consortium. [Online] 2006.
http://www.w3.org/TR/2006/REC-xml-names-20060816/.

7. XBRL International. XBRL Specifications. Extensible Business Reporting Language. [Online]
http://www.xbrl.org/Specifications/.

8. Health Level Seven. HL7 ANSI-Approved Standards. Health Level Seven. [Online]
http://www.hl7.org/about/directories.cfm?framepage=/documentcenter/public/faq/ansi_approved.ht
m.

9. W3C. W3C Web Services Architecture. World Wide Web Consortium. [Online] 2002.
http://www.w3.org/2002/ws/.

10.     W3C.   W3C     XML      Signature.   World      Wide   Web     Consortium.       [Online]
http://www.w3.org/Signature/.

11. W3C. W3C XML Encryption.             World   Wide    Web    Consortium.   [Online]     2001.
http://www.w3.org/Encryption/2001/.

12. W3C. XSL and XSLT. World Wide Web Consortium. [Online] http://www.w3.org/Style/XSL/.

13. W3C. Hypertext Transfer Protocol -- HTTP/1.1. World Wide Web Consortium. [Online]
http://www.w3.org/Protocols/rfc2616/rfc2616.html.
Sie können auch lesen