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));
}
}