OpenOffice

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

Auch wenn Sie Markup von Hand in einem Texteditor schreiben können, ziehen viele Nicht-Programmierer einen freundlicheren, eher WYSIWYG-artigen Ansatz vor. Es gibt keinen Grund, warum ein gewöhnliches Textverarbeitungsprogramm seine Daten nicht in XML speichern soll. Tatsächlich ist es so, dass einige das mittlerweile tun. Dazu gehören Microsoft Word 2003 und OpenOffice.org Writer. Harold hat mit OpenOffice.org Writer auch ein deutlich schmaleres Buch in XML geschrieben (Effective XML, Addison Wesley).

Anmerkung: Wenn ich im Nachhinein darüber nachdenke, was mir das gebracht hat, bereue ich die Entscheidung. Hätte ich das Buch noch einmal zu schreiben, würde ich es wie bei Processing XML with Java von Hand in XML schreiben und nicht OpenOffice verwenden. So sehr gute GUI-Werkzeuge die Produktivität verbessern können, so sehr können schlechte GUI-Werkzeuge sie bremsen. Eine schlecht entworfene GUI bietet keine Garantie für eine einfache Handhabung.
Scott und ich haben dieses Buch in Microsoft Word geschrieben. Der Grund dafür war aber vor allem, dass es früher verfügbar war als andere hochwertige Werkzeuge zum Schreiben von XML. Auch diese Entscheidung schmerzt uns jetzt. Wenn wir noch einmal neu anfangen müssten, würden wir das Buch in DocBook schreiben.

Das folgende Code-Beispiel zeigt ein recht einfaches OpenOffice-Dokument. Erneut stammt der Inhalt aus diesem Werk, "XML in a Nutshell". Es unterscheidet sich in mehrfacher Weise von TEI und DocBook – so verwendet es beispielsweise Namensräume. TEI und DocBook tun das nicht. Der Titel des Buchs und die Namen der Autoren sind hier nicht eingeschlossen, weil sie in einem eigenen XML-Dokument gespeichert werden, das nur Metadaten enthält. Indizes und Inhaltsverzeichnisse werden anhand interner Struktur, Inhalt und Markup generiert und nicht explizit hinzugefügt. Der vielleicht ungewöhnlichste Unterschied ist das Fehlen irgendeiner Art von Abschnittselementen. Stattdessen werden unterschiedliche Kapitel, Abschnitte und Unterabschnitte auf unterschiedlichen Stufen mit Hilfe des Elements text:h identifiziert. Inhalt eines Abschnitts ist alles zwischen dem aktuellen und dem nächsten text:h-Element auf derselben Stufe. Weniger offensichtlich ist, dass dieses Format allgemeiner ist, weil es so entworfen wurde, dass es außer mit einfachen narrativen Inhalten mit mehreren anderen OpenOffice-Dokumentformaten umgehen kann – einschließlich Diagrammen und Tabellen.

<!DOCTYPE office:document-content PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "office.dtd">
<office:document-content xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:fo="http://www.w3.org/1999/XSL/Format" office:class="text" office:version="1.0">
<office:script/>
<office:font-decls>
  <style:font-decl style:name="Courier" fo:font-family="Courier" style:font-pitch="variable"/>
  <style:font-decl style:name="Times" fo:font-family="Times" style:font-pitch="variable"/>
  <style:font-decl style:name="Helvetica" fo:font-family="Helvetica" style:font-family-generic="swiss" style:font-pitch="variable"/>
</office:font-decls>
<office:automatic-styles>
  <style:style style:name="P1" style:family="paragraph" style:parent-style-name="ChapterLabel" style:master-page-name="First Page">
    <style:properties style:page-number="0"/>
  </style:style>
  <style:style style:name="T1" style:family="texstyle:parent-style-name="WW-Comment Reference">
    <style:properties fo:color="#000000"/>
  </style:style>
  <style:style style:name="T2" style:family="text" style:parent-style-name="emphasis">
    <style:properties fo:language="none" fo:country="none"/>
  </style:style>
  <style:style style:name="T3" style:family="text">
    <style:properties fo:language="none" fo:country="none"/>
  </style:style>
</office:automatic-styles>
<office:body>
  <text:sequence-decls>
    <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
    <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
    <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
    <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
  </text:sequence-decls>
  <text:p text:style-name="ChapterTitle">Einführung in XML</text:p>
  <text:p text:style-name="Standard"></text:p>
  <text:p text:style-name="ChapterTitle">XML als Dokumentformat</text:p>
  <text:p text:style-name="Standard">XML ist vor allen Dingen ein Dokumentformat. Es war immer für Webseiten, Bücher, wissenschaftliche Artikel, Gedichte, Kurzgeschichten, Reerenzhandbücher, Anleitungen, Lehrbücher, Plädoyers, Verträge, Gebrauchsanweisungen und andere Dokumente gedacht, die von Menschen gelesen werden. Sein Einsatz als Syntax für Computerdaten in Anwendungen wie Bestellabwicklung, Objektserialisierung, Datenbanken sowie elektronischen Datenaustauschsystemen ist eigentlich nur einglücklicher Zufall.</text:p>
  <text:h text:style-name="Heading 1" text:level="1">Das Vermächtnis von SGML####SGMLs Erbe !?###</text:h>
  <text:p text:style-name="Standard"></text:p>
  <text:h text:style-name="Heading 1" text:level="1">TEI</text:h>
  <text:p text:style-name="Standard"></text:p>
  <text:h text:style-name="Heading 1" text:level="1">DocBook</text:h>
  <text:p text:style-name="Standard">DocBook <text:alphabetical-index-mark text:string-value="DocBook" text:key1="narrative-orientierte XML-Dokumente"/><text:s/><text:alphabetical-index-mark text:string-value="DocBook"/>ist eine SGML-Anwendung, die für neue Dokumente, jedoch nicht für alte entworfen wurde.Sie ist besonders bei Computer-Dokumentationen gebräuchlich. Verschiedene O'Reilly-Bücher wurden in DocBook geschrieben, einschließlich <text:alphabetical-index-mark text:string-value="Walsh, Norman"/>Norm Walsh und Leonard <text:alphabetical-index-mark text:string-value="Muellner, Leonard"/>Muellner's <text:span text:style-name="emphasis">DocBook: The Definitive Guide</text:span>. Es sind keine besonderen Werkzeuge notwendig, um Dokumente in diesem Format zu schreiben. Ein Großteil des Texts des Linux Documentation Projects (LDP) ist in DocBook geschrieben.</text:p>
  <text:p text:style-name="ChapterTitle">XML im Web</text:p>
  <text:p text:style-name="Standard"></text:p>
</office:body>
</office:document-content>

Code-Beispiel: Ein OpenOffice-Dokument

Eigentlich ist das nur ein Teil dessen, was OpenOffice speichert (und es wurde für die Darstellung hier auch etwas gesäubert). OpenOffice bündelt mehrere aufeinander bezogene XML-Dokumente zu einer zip-Datei und speichert diese. Bevor Sie mit dem nackten XML arbeiten können, müssen Sie diese Datei entpacken. Ist sie einmal entpackt, finden Sie ein Dokument wie das hier gezeigte in der Datei namens content.xml. Andere XML-Dokumente werden verwendet, um Stilinformationen, Metadaten und Einstellungen zu speichern. Diese könnten alle in einem einzelnen office:document-Element gebündelt werden, aber das erfolgt in der Regel nicht. Die Trennung von Inhalt und Darstellung ist ein sehr nützliches Feature dieser Anwendung.

Trotzdem bleibt OpenOffice im Großen und Ganzen ein viel stärker darstellungsorientiertes Format als DocBook oder TEI. Das sorgt dafür, dass es als Dateiformat für eine WYSIWYG-Textverarbeitung gut geeignet ist. Es lässt sich deswegen aber auch schlechter mit XML-Werkzeugen wie SAX, DOM und XSLT verarbeiten. Natürlich ist es möglich, ein OpenOffice-Dokument mit diesen Werkzeugen zu verarbeiten. Aber es ist einfach so, dass das Markup weniger inhaltliche Orientierungsmöglichkeiten bietet, um damit klarzukommen. Ein Dokument besteht eigentlich aus nichts anderem als Überschriften, Absätzen, Listen und Tabellen (die beiden letzten kommen in diesem Beispiel nicht vor). Im Vergleich zu DocBook und TEI sind die elementaren Inhaltsinformationen verkümmert. In einem OpenOffice-Dokument wird ein Großteil der nützlichen Inhaltsinformationen statt in Elementnamen in Darstellungsinformationen verborgen. Hätten die Autoren keine benannten Zeichenformate verwendet, sondern ihr Dokument einfach kursiv, fett, in Heltvetica usw. formatiert, wären die Inhaltsinformationen beinahe unwiederbringlich verloren.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de