Form von WordprocessingML-Dokumenten (C#)Shape of WordprocessingML Documents (C#)

Dieses Thema enthält eine Einführung in die XML-Form von WordprocessingML-Dokumenten.This topic introduces the XML shape of a WordprocessingML document.

Microsoft Office-FormateMicrosoft Office Formats

Das systemeigene Dateiformat für das 2007 Microsoft Office-System ist Office Open XML (häufig als Open XML bezeichnet).The native file format for the 2007 Microsoft Office system is Office Open XML (commonly called Open XML). Open XML ist ein XML-basiertes Format, das von der Ecma als Standard übernommen wurde und für das die ISO-IEC-Standardisierung beantragt wurde.Open XML is an XML-based format that an Ecma standard and is currently going through the ISO-IEC standards process. Die Markupsprache für Textverarbeitungsdateien innerhalb von Open XML heißt WordprocessingML.The markup language for word processing files within Open XML is called WordprocessingML. Dieses Lernprogramm verwendet als Eingabe für die Beispiele WordprocessingML-Quelldateien.This tutorial uses WordprocessingML source files as input for the examples.

Benutzer von Microsoft Office 2003 müssen Microsoft Office Compatibility Pack für Word, Excel und PowerPoint 2007-Dateiformate installiert haben, um Dokumente im Office Open XML-Format speichern zu können.If you are using Microsoft Office 2003, you can save documents in the Office Open XML format if you have installed the Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats.

Form der WordprocessingML-DokumenteThe Shape of WordprocessingML Documents

Als Erstes sollten Sie die Form von WordprocessingML-Dokumenten verstehen.The first thing to understand is the shape of WordprocessingML documents. WordprocessingML-Dokumente enthalten ein Textkörperelement (mit der Bezeichnung w:body) mit den Absätzen des Dokuments.A WordprocessingML document contains a body element (named w:body) that contains the paragraphs of the document. Jeder Absatz enthält mindestens einen Textrun (mit der Bezeichnung w:r).Each paragraph contains one or more text runs (named w:r). Jeder Textrun enthält mindestens ein Textstück (mit der Bezeichnung w:t).Each text run contains one or more text pieces (named w:t).

Das folgende Beispiel ist ein sehr einfaches WordprocessingML-Dokument:The following is a very simple WordprocessingML document:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<w:document  
xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006"  
xmlns:o="urn:schemas-microsoft-com:office:office"  
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"  
xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"  
xmlns:v="urn:schemas-microsoft-com:vml"  
xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"  
xmlns:w10="urn:schemas-microsoft-com:office:word"  
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"  
xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml">  
  <w:body>  
    <w:p w:rsidR="00E22EB6"  
         w:rsidRDefault="00E22EB6">  
      <w:r>  
        <w:t>This is a paragraph.</w:t>  
      </w:r>  
    </w:p>  
    <w:p w:rsidR="00E22EB6"  
         w:rsidRDefault="00E22EB6">  
      <w:r>  
        <w:t>This is another paragraph.</w:t>  
      </w:r>  
    </w:p>  
  </w:body>  
</w:document>  

Dieses Dokument besteht aus zwei Absätzen.This document contains two paragraphs. Beide Absätze enthalten genau einen Textrun, und jeder Textrun enthält genau ein Textstück.They both contain a single text run, and each text run contains a single text piece.

Die einfachste Möglichkeit, sich den Inhalt eines WordprocessingML-Dokuments in XML-Form anzusehen, besteht darin, ein WordprocessingML-Dokument in Microsoft Word zu erstellen, das Dokument zu speichern und dann das folgende Programm zum Ausgeben des XML-Codes auf der Konsole auszuführen:The easiest way to see the contents of a WordprocessingML document in XML form is to create one using Microsoft Word, save it, and then run the following program that prints the XML to the console.

Dieses Beispiel verwendet Klassen aus der WindowsBase-Assembly.This example uses classes found in the WindowsBase assembly. Außerdem werden Typen im System.IO.Packaging-Namespace verwendet.It uses types in the System.IO.Packaging namespace.

const string documentRelationshipType =  
  "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument";  
const string wordmlNamespace =  
  "http://schemas.openxmlformats.org/wordprocessingml/2006/main";  
XNamespace w = wordmlNamespace;  

using (Package wdPackage = Package.Open("SampleDoc.docx", FileMode.Open, FileAccess.Read))  
{  
    PackageRelationship relationship =  
        wdPackage  
        .GetRelationshipsByType(documentRelationshipType)  
        .FirstOrDefault();  
    if (relationship != null)  
    {  
        Uri documentUri =  
            PackUriHelper.ResolvePartUri(  
                new Uri("/", UriKind.Relative),  
                relationship.TargetUri);  
        PackagePart documentPart = wdPackage.GetPart(documentUri);  

        //  Get the officeDocument part from the package.  
        //  Load the XML in the part into an XDocument instance.  
        XDocument xdoc =  
            XDocument.Load(XmlReader.Create(documentPart.GetStream()));  
        Console.WriteLine(xdoc.Root);  
    }  
}  

Externe RessourcenExternal Resources

Einführung in die Microsoft Office (2007) Open XML-DateiformateIntroducing the Office (2007) Open XML File Formats

Übersicht über WordprocessingMLOverview of WordprocessingML

Office 2003: Downloadseite für die XML-ReferenzschemasOffice 2003: XML Reference Schemas Download page

Siehe auchSee Also

Tutorial: Manipulating Content in a WordprocessingML Document (C#) (Tutorial: Bearbeiten von Inhalten in einem WordprocessingML-Dokument (C#))Tutorial: Manipulating Content in a WordprocessingML Document (C#)