Der Grundaufbau

Das folgende Hallo Welt-Beispiel wurde manuell erzeugt und stellt die kürzeste Variante eines WordML-Dokumentes mit einem Absatz dar:

<?xml version="1.0"?>
<?mso-application progid="Word.Document"?>                (1)
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"> (2)
   <w:body>                                  (3)
      <w:p>                                  (4)
         <w:r>                               (5)
            <w:t>Hallo Welt!</w:t>           (6)
         </w:r>
      </w:p>
   </w:body>
</w:wordDocument>

(1) Die PI (Processing Instruction) dient dem Betriebssystem dazu, das Dokument als WordML-Dokument zu erkennen. Statt eines XML-Editors oder des Internet Explorer wird nun Word 2003 gestartet. Außerdem ermöglicht die PI dem Internet Explorer, das WordML-Dokument als Word-Dokument gerendert darzustellen, statt es wie ein beliebiges XML-Dokument in der Hierarchiedarstellung anzuzeigen. Für die Anzeige von WordML-Dokumenten mit dem Internet Explorer müssen Sie, falls Word 2003 nicht vorhanden ist, einen Viewer installieren. Diesen können Sie kostenlos auf der englischsprachigen Seite von Microsoft finden. Sie müssen hierzu die Suchbegriffe »Word 2003 XML Viewer« eingeben.

Anzeige im Internet Explorer

Abb. Anzeige im Internet Explorer

(2) Das Wurzelelement mit der Namensraumdeklaration für WordML.

(3) <w:body> enthält den Inhalt eines WordML-Dokumentes.

(4) <w:p> (paragraph) ist das Absatzelement in WordML.

(5) <w:r> steht für Run-Text, also den Fließtext eines Absatzes.

(6) <w:t> (text) enthält den eigentlichen textlichen Inhalt.

Da in diesem Beispiel keine Formatvorlagen angegeben wurden, wird der Absatz Hallo Welt! in der Standardeinstellung mit der Standardschrift, Standardschriftgröße etc. angezeigt.

Zum Vergleich folgt ein Hallo Welt-Beispiel, das nicht manuell erstellt wurde, sondern bei dem der Text in ein leeres Word-Dokument eingegeben und mit der Speichern unter-Option als XML (WordML) abgespeichert wurde.

Da das WordML-Dokument äußerst lang ist, werden hier nur Auszüge daraus abgedruckt.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"    (1)
 xmlns:v="urn:schemas-microsoft-com:vml" 
 xmlns:w10="urn:schemas-microsoft-com:office:word" 
 xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" 
 xmlns:aml="http://schemas.microsoft.com/aml/2001/core" 
 xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" 
 xmlns:o="urn:schemas-microsoft-com:office:office" 
 xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" 
 w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" 
 xml:space="preserve">
    <o:DocumentProperties>                       (2)
      <o:Title>Hallo Welt</o:Title>
      <o:Author>Montero</o:Author>
      <o:LastAuthor>Montero</o:LastAuthor>
      <o:Revision>3</o:Revision>
      <o:TotalTime>0</o:TotalTime>
      <o:Created>2005-12-20T14:31:00Z</o:Created>
      <o:LastSaved>2005-12-20T14:31:00Z</o:LastSaved>
      <o:Pages>1</o:Pages>
      <o:Words>1</o:Words>
      <o:Characters>11</o:Characters>
      <o:Lines>1</o:Lines>
      <o:Paragraphs>1</o:Paragraphs>
      <o:CharactersWithSpaces>11</o:CharactersWithSpaces>
      <o:Version>11.6359</o:Version>
    </o:DocumentProperties>
    <w:fonts>                                    (3)
      <w:defaultFonts w:ascii="Times New Roman" w:fareast="Times New Roman" 
       w:h-ansi="Times New Roman" w:cs="Times New Roman"/>
      <w:font w:name="Verdana">
        <w:panose-1 w:val="020B0604030504040204"/>
        <w:charset w:val="00"/>
        <w:family w:val="Swiss"/>
        <w:pitch w:val="variable"/>
        <w:sig w:usb-0="20000287" w:usb-1="00000000" w:usb-2="00000000" 
         w:usb-3="00000000" w:csb-0="0000019F" w:csb-1="00000000"/>
      </w:font>
    </w:fonts>
    <w:lists>                                    (4)
      <w:listDef w:listDefId="0">
        <w:lsid w:val="376C6A7C"/>
        <w:plt w:val="HybridMultilevel"/>
        <w:tmpl w:val="D6A4D526"/>
        <w:lvl w:ilvl="0" w:tplc="5D06413E">
          <w:start w:val="1"/>
          <w:pStyle w:val="Style3"/>
          <w:lvlText w:val="%1."/>
          <w:lvlJc w:val="left"/>
          <w:pPr>
            <w:tabs>
              <w:tab w:val="list" w:pos="720"/>
            </w:tabs>
            <w:ind w:left="720" w:hanging="360"/>
          </w:pPr>
        </w:lvl>
        <w:lvl w:ilvl="1" w:tplc="04070019" w:tentative="on">
          <w:start w:val="1"/>
    ...
      </w:list>
    </w:lists>
    <w:styles>                                   (5)
      <w:versionOfBuiltInStylenames w:val="4"/>
      <w:latentStyles w:defLockedState="off" w:latentStyleCount="156"/>
      <w:style w:type="paragraph" w:default="on" w:styleId="Normal">
        <w:name w:val="Normal"/>
        <w:autoRedefine/>
        <w:rsid w:val="00881D85"/>
        <w:pPr>
          <w:jc w:val="both"/>
        </w:pPr>
        <w:rPr>
          <w:rFonts w:ascii="Verdana" w:h-ansi="Verdana"/>
          <wx:font wx:val="Verdana"/>
          <w:sz w:val="22"/>
          <w:sz-cs w:val="24"/>
          <w:lang w:val="DE" w:fareast="DE" w:bidi="AR-SA"/>
        </w:rPr>
      </w:style>
      <w:style w:type="paragraph" w:styleId="Heading1">
        <w:name w:val="heading 1"/>
        <wx:uiName wx:val="Heading 1"/>
        <w:basedOn w:val="Normal"/>
        <w:next w:val="Normal"/>
        <w:rsid w:val="008D1824"/>
        <w:pPr>
          <w:pStyle w:val="Heading1"/>
          <w:keepNext/>
          <w:spacing w:before="240" w:after="60"/>
          <w:outlineLvl w:val="0"/>
        </w:pPr>
        <w:rPr>
          <w:rFonts w:ascii="Arial" w:h-ansi="Arial" w:cs="Arial"/>
          <wx:font wx:val="Arial"/>
          <w:b/>
          <w:b-cs/>
          <w:kern w:val="32"/>
          <w:sz w:val="32"/>
          <w:sz-cs w:val="32"/>
        </w:rPr>
      </w:style>
   ...
    </w:styles>
    <w:shapeDefaults>
      <o:shapedefaults v:ext="edit" spidmax="2050"/>
      <o:shapelayout v:ext="edit">
        <o:idmap v:ext="edit" data="1"/>
      </o:shapelayout>
    </w:shapeDefaults>
    <w:docPr>                                  (6)
      <w:view w:val="print"/>
      <w:zoom w:percent="100"/>
      <w:doNotEmbedSystemFonts/>
      <w:attachedTemplate w:val=""/>
      <w:defaultTabStop w:val="708"/>
      <w:hyphenationZone w:val="425"/>
      <w:punctuationKerning/>
      <w:characterSpacingControl w:val="DontCompress"/>
      <w:optimizeForBrowser/>
      <w:validateAgainstSchema/>
      <w:saveInvalidXML w:val="off"/>
      <w:ignoreMixedContent w:val="off"/>
      <w:alwaysShowPlaceholderText w:val="off"/>
      <w:compat>
        <w:breakWrappedTables/>
        <w:snapToGridInCell/>
        <w:wrapTextWithPunct/>
        <w:useAsianBreakRules/>
        <w:dontGrowAutofit/>
      </w:compat>
    </w:docPr>
    <w:body>                                  (7)
      <wx:sect>
        <w:p>
          <w:r>
            <w:t>Hallo Welt!</w:t>
          </w:r>
        </w:p>
        <w:sectPr>                            (8)
          <w:pgSz w:w="11906" w:h="16838"/>
          <w:pgMar w:top="1417" w:right="1417" w:bottom="1134" w:left="1417" 
           w:header="708" w:footer="708" w:gutter="0"/>
          <w:cols w:space="708"/>
          <w:docGrid w:line-pitch="360"/>
        </w:sectPr>
      </wx:sect>
    </w:body>
</w:wordDocument>

(1) Das Wurzelelement mit den Namensraumdeklarationen. Es werden immer alle Office-Namensräume eingetragen, auch wenn beispielsweise keine eingebetteten Grafiken im Word-Dokument vorkommen.

(2) Die Dokumenteigenschaften enthalten alle für das Office-Dokument wichtigen Informationen, u.a. den Namen des Erstellers, letzte Speicherung und den Namen der Datei.

(3) Die Vorgabewerte von Schriften.

(4) Die Vorgaben für Listen. Im vorliegenden Beispiel sind diese bis einschließlich der neunten Ebene definiert.

(5) Die Formatvorlagen für Absätze und Tabellen.

(6) <w:docPr> enthält eine Vielzahl von Kindelementen. Diese legen verschiedene Eigenschaften für das gesamte Dokument fest. Unter anderem wird dort angegeben, in welcher Ansicht das Dokument nach dem Öffnen angezeigt werden soll – hier in der Druckansicht (<w:view w:val="print">) – oder ob XML-Dateien (XML-Daten, die einem eigenen Schema folgen) auch nicht valide abgespeichert werden dürfen (<w:saveInvalidXML w:val="off"/>).

(7) Das <w:body>-Element enthält die inhaltlichen Informationen, wie die Texte, Tabellen, Listen etc.

(8) <w:sectPr> definiert mit seinen Kindelementen die Eigenschaften der Seiten, wie Seitengrößen (<w:pgSz>), Kopf- und Fußbereiche (<w:pgMar>) etc.

Eine solche Flut an Informationen mag abschreckend wirken, sollte es aber nicht. Zum einen spielen viele dieser Elemente für die gewöhnliche Arbeit mit WordML keine Rolle, zum anderen kann einem Word selbst helfen, diese zu erstellen. Möchten Sie beispielsweise wissen, wie eine Fußnote in WordML ausgezeichnet wird, brauchen Sie lediglich in einem leeren Word-Dokument eine Fußnote zu erzeugen und dieses Dokument als WordML abzuspeichern. Der Quellcode dieses WordML-Dokumentes zeigt Ihnen die Struktur, die Word benötigt, um eine solche Fußnote anzeigen zu können.

Damit Sie sich in einem WordML-Dokument gut zurechtfinden, wird Ihnen dieses Kapitel neben der Grundstruktur die wichtigsten Zusammenhänge zeigen.

Die allgemeine Grundstruktur eines WordML-Dokumentes mit den wichtigsten Elementen lässt sich wie folgt beschreiben:

  • Das einzig zulässige Wurzelelement heißt <w:wordDocument>, es deklariert alle Namensräume und besitzt einige Kindelemente:

  • Das optionale Element <o:DocumentProperties> enthält Metainformationen über das Dokument, wie Autor, Titel etc.

  • Das optionale Element <w:fonts> definiert die Vorgabewerte zu den verwendeten Schriftarten.

  • Das optionale Element <w:lists> enthält alle Informationen zu den Listen.

  • Das optionale Element <w:styles> beinhaltet die Formatvorlagen zu den Absätzen, inzeiligen Auszeichnungen etc.

  • Das optionale Element <w:docPr> definiert den Seitenaufbau und enthält die Angaben zu den Rändern, den Fußnoten, dem Kopfbereich, die Seitenbreite etc.

  • Das Element <w:body> enthält den eigentlichen Inhalt des Dokumentes.

 

<< zurück vor >>

 

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

Copyright © dpunkt.verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken. Ansonsten unterliegt dieses Kapitel aus dem Buch "Professionelle XML-Verarbeitung mit Word" 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.

dpunkt.verlag GmbH, Ringstraße 19B, 69115 Heidelberg, fon 06221-14830, fax 06221-148399, hallo(at)dpunkt.de