What you see is what you tag

Das proprietäre Dateiformat von Microsofts Word war oft Anlass für Klagen über mangelnde Austauschbarkeit mit anderen Anwendungen. Seit der Version 2003 kann Word mit XML umgehen. Wie das praktisch aussieht, zeigt der dritte Teil des Office-Tutorials.

vorlesen Druckansicht 13 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Christoph Leisegang
  • Stefan Mintert

Die XML-Unterstützung in der aktuellen Version von Word zeigt sich in zwei Ausprägungen: Einerseits ist der Benutzer nun in der Lage, Dokumente zu schreiben, die als XML gespeichert den Regeln eines benutzereigenen Schemas folgen. Auf der anderen Seite kann Word Inhalt und Formatierungsinformationen eines Dokuments in XML-Form speichern. Dabei entsprechen die Daten einem Microsoft-Schema, genannt WordML. Dank Namespaces lassen sich beide Formen der Auszeichnungen (eigenes Schema und WordML) gemeinsam in einer Datei unterbringen.

Zunächst soll es darum gehen, wie die Arbeit mit einem eigenen Schema aussieht. Dazu muss eins her. Zu Testzwecken dient hier das einfache Artikelschema aus Listing 1.

Mehr Infos

Listing 1: Artikelschema

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="absatz">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="hervorhebung"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="abschnitt">
<xs:complexType>
<xs:sequence>
<xs:element ref="ueberschrift"/>
<xs:choice>
<xs:element ref="absatz" maxOccurs="unbounded"/>
<xs:element ref="unterabschnitt" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="artikel">
<xs:complexType>
<xs:sequence>
<xs:element ref="titel"/>
<xs:element ref="autor" maxOccurs="unbounded"/>
<xs:element ref="zusammenfassung" minOccurs="0"/>
<xs:element ref="abschnitt" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="autor">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="email" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="hervorhebung" type="xs:string"/>
<xs:element name="titel" type="xs:string"/>
<xs:element name="ueberschrift" type="xs:string"/>
<xs:element name="unterabschnitt">
<xs:complexType>
<xs:sequence>
<xs:element ref="ueberschrift"/>
<xs:element ref="absatz" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="zusammenfassung" type="xs:string"/>
</xs:schema>

Download des Listings

Ein Word-Dokument, allerdings noch ohne XML-Auszeichnungen (Abb. 1).

Als Nächstes stellt sich die Frage, ob ein neuer Text entstehen oder ein vorhandener Text eine XML-Form bekommen soll. Der Normalfall dürfte das Schreiben eines neuen Textes sein. Der zweite Fall ist angesichts der großen Zahl vorhandener Word-Dokumente allerdings nicht unrealistisch. Darüber hinaus ist er im Rahmen dieses Artikels sinnvoller, da die folgenden Screenshots mit etwas Inhalt aussagekräftiger sind. Ausgangspunkt ist deshalb ein Word-Dokument, das in Abbildung 1 zu sehen ist.

Auf dem Weg zu XML besteht der erste Schritt in der Auswahl des Schemas. Die Funktion ist im Menü „Extras -> Vorlagen und Add-ins“ zu finden. Sofern Word das Schema nicht bereits kennt, fügt es der Anwender hier hinzu (siehe die Abbildungen 2 und 3).

Bekanntmachung eines benutzereigenen Schemas und Auswahl des Schemas fĂĽr das aktuelle Dokument (Abb. 2 und 3)

Abb. 3

Die Auswahl des Schemas lässt auf der rechten Seite den Aufgabenbereich „XML-Struktur“ erscheinen. Darin zunächst die Bemerkung, dass noch keine Elemente für das Dokument „übernommen“ seien. Nun markiert der Benutzer Bereiche des Dokuments und weist ihnen Elemente aus dem Schema zu. Word zeigt die verfügbaren Elementtypen rechts unten an. Für das Wurzelelement, das eine Klammer um das gesamte Dokument darstellt, markiert man zunächst den gesamten Text und wählt in diesem Beispiel den Elementtyp artikel. Mit wiederkehrenden, gleichartigen Schritten zeichnet der Benutzer nun weitere Teile des Textes, wie den Titel, den Autor, Abschnitte, Überschriften und Absätze aus. Es versteht sich von selbst, dass der vorliegende Text zu den Regeln des Schemas passen muss. Nach einem ersten Durchlauf sieht das Dokument wie in Abbildung 4 aus.

Das mit XML-Auszeichnungen versehene Word-Dokument; Schemaverletzungen sind mit gelben Warnsymbolen im Elementbaum auf der rechten Seite versehen (Abb. 4).

An diesem Screenshot sind mehrere Dinge zu bemerken. Zunächst ist festzustellen, dass der XML-ausgezeichnete Text gut aussieht; durchaus vergleichbar mit spezialisierten XML-Editoren. Hier ist jedoch wichtig, dass die Auszeichnungen keine Implikation für die Darstellung besitzen. Das gute Aussehen ist der Tatsache zu verdanken, dass der Text schon vor der XML-ifizierung formatiert war.

Ein XML-ausgezeichnetes Dokument, das zuvor nicht mit Word formatiert war (Abb. 5)

Zum Vergleich der Versuch, ein neues Dokument mit XML-Tags zu versehen. Die Vorgehensweise ist identisch mit der bisherigen Beschreibung. Fügt der Benutzer daher genauso XML-Elemente ein und füllt sie mit dem gleichen Inhalt, erhält er eine Darstellung wie in Abbildung 5. Das sieht vergleichsweise unschön aus. Um dieselbe Darstellung wie zuvor zu bekommen, muss der Benutzer die von der Textverarbeitung bekannten Schritte vollziehen (beispielsweise Anwenden von Formaten). Im Gegensatz zu XML-Editoren wie XMetal oder Epic gestattet Word keine unmittelbare Verknüpfung von Elementtypen und ihrer Darstellung. Später mehr dazu, wie die Textverarbeitung dies mit einem XSLT-Programm bewerkstelligen kann.

Zurück zu Abbildung 4 und den daran ablesbaren Dingen: Rechts unten bietet das Programm die Auswahl eines XML-Elements an. Hier stehen in der Regel nur Kindelemente des aktuellen Elements; es sei denn, der Benutzer deaktiviert die dazugehörige Option (siehe Checkbox unten). Damit bietet Word eine eingeschränkt kontextabhängige Elementauswahl. Eingeschränkt deshalb, weil nicht immer jeder Kindelementtyp an jeder Cursorposition erlaubt ist, die Textverarbeitung jedoch Reihenfolgebeschränkungen des Schemas ignoriert. Gleiches gilt für Häufigkeitsvorgaben. So erlaubt Word die Eingabe von zwei Titeln eines Artikels, obwohl nur einer zugelassen ist. Hier bleibt die Software deutlich hinter dem Benutzerkomfort von validierenden XML-Editoren, wie den oben genannten, zurück. Letztere sind in dieser Hinsicht eindeutig besser geeignet für Benutzer, die von einem Editor eine Eingabeunterstützung erwarten.

Den vollständigen Text finden Sie in der aktuellen Printausgabe.

Mehr Infos

Tutorial-Inhalt

Teil I Infopath: Entwurf von Formularen, Bindung an ein XML-Schema und DOM-Scripting

Teil II Excel: Datenaustausch zwischen Excel und XML

Teil III Word: Erfassen von Dokumenten mit eigenen XML-Schemata und Datenaustausch zwischen Word und XML


(hb)