Struktur eines WordprocessingML-Dokuments

In diesem Thema werden die Grundstruktur eines WordprocessingML-Dokuments und wichtige Open XML SDK-Klassen behandelt, die zumeist zum Erstellen von WordprocessingML-Dokumenten verwendet werden.

Die grundlegende Struktur eines WordProcessingML-Dokuments besteht aus den <document>- und <body>-Elementen, gefolgt von einem oder mehreren Block-Level-Elementen wie <p>, das für einen Absatz steht. Ein Absatz enthält ein oder mehrere <r>-Elemente. <r> steht für ausführen und meint einen Textbereich mit gemeinsamen Eigenschaften wie Formatierung. Eine Ausführung besteht aus einem oder mehreren <t>-Elementen. Das <t>-Element enthält einen Textbereich.

Wichtige WordprocessingML-Komponenten

Die Open XML SDK-API stellt stark typisierte Klassen im DocumentFormat.OpenXML.WordprocessingML-Namespace bereit, die WordprocessingML-Elementen entsprechen.

In der folgenden Tabelle sind einige wichtige WordprocessingML-Elemente , der WordprocessingML-Dokumentpaketteil , dem das Element entspricht (sofern zutreffend), und die verwaltete Klasse aufgeführt, die das Element in der Open XML SDK-API darstellt.

Paketkomponente WordprocessingML-Element Open XML SDK-Klasse Beschreibung
Hauptdokument document Document Das Stammelement des Hauptdokumentteils.
Kommentare Kommentare Comments Das Stammelement des Kommentarteils.
Dokumenteinstellungen settings Settings Das Stammelement des Dokumenteinstellungsteils.
Endnoten endnotes Endnotes Das Stammelement des Endnotenteils.
Fußzeile ftr Footer Das Stammelement des Fußzeilenteils.
Fußnoten footnotes Footnotes Das Stammelement des Fußnotenteils.
Glossardokument glossaryDocument GlossaryDocument Das Stammelement des Glossardokumentteils.
Kopfzeile hdr Header Das Stammelement des Kopfzeilenteils.
Formatvorlagendefinitionen styles Styles Das Stammelement des Teils mit Formatvorlagendefinitionen.

Szenario mit den Mindestkriterien eines Dokuments

Ein WordprocessingML-Dokument ist gemäß eines Textabschnittkonzepts strukturiert. Ein Textabschnitt ist ein Inhaltsbereich eines WordprocessingML-Dokuments. WordprocessingML-Textabschnitte enthalten Folgendes:

  • Kommentar

  • Endnote

  • Fußzeile

  • Fußnote

  • Rahmen, Glossardokument

  • Kopfzeile

  • Hauptartikel

  • Unterdokument

  • Textfeld

In einem WordprocessingML-Dokument müssen nicht alle Textabschnitte vorhanden sein. Das einfachste gültige WordprocessingML-Dokument benötigt nur einen einzelnen Textabschnitt, den Hauptdokumentabschnitt. In WordprocessingML wird der Hauptdokumentabschnitt vom Hauptdokumentteil dargestellt. Fügen Sie zum Erstellen eines gültigen WordprocessingML-Dokuments mithilfe von Code dem Dokument zumindest einen Hauptdokumentteil hinzu.

Die folgenden Informationen aus der Spezifikation ISO/IEC 29500 bieten eine Einführung in die WordprocessingML-Elemente, die im Hauptdokumentteil erforderlich sind, um die Mindestkriterien dieses Szenarios zu erfüllen.

Der Hauptdokumentabschnitt des einfachsten WordprocessingML-Dokuments besteht aus den folgenden XML-Elementen:

document - Das Stammelement eines WordprocessingML-Hauptdokumentteils, das den Hauptdokumentabschnitt definiert.

body - Der Container der Auflistung der Strukturen auf Blockebene, die den Haupttextabschnitt bilden.

p - Ein Absatz (Paragraph).

r - Ein Lauf (Run).

t - Ein Textbereich.

© ISO/IEC29500: 2008.

Open XML SDK-Codebeispiel

Im folgenden Code wird das Open XML SDK verwendet, um ein einfaches WordprocessingML-Dokument zu erstellen, das den Text "Hello, Word!" enthält.

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

CreateWordDoc(args[0], args[1]);

static void CreateWordDoc(string filepath, string msg)
{
    using (WordprocessingDocument doc = WordprocessingDocument.Create(filepath, DocumentFormat.OpenXml.WordprocessingDocumentType.Document))
    {
        // Add a main document part. 
        MainDocumentPart mainPart = doc.AddMainDocumentPart();

        // Create the document structure and add some text.
        mainPart.Document = new Document();
        Body body = mainPart.Document.AppendChild(new Body());
        Paragraph para = body.AppendChild(new Paragraph());
        Run run = para.AppendChild(new Run());

        // String msg contains the text, "Hello, Word!"
        run.AppendChild(new Text(msg));
    }
}