Body Class

Document Body.When the object is serialized out as xml, its qualified name is w:body.

Inheritance Hierarchy

System.Object
  DocumentFormat.OpenXml.OpenXmlElement
    DocumentFormat.OpenXml.OpenXmlCompositeElement
      DocumentFormat.OpenXml.Wordprocessing.BodyType
        DocumentFormat.OpenXml.Wordprocessing.Body

Namespace:  DocumentFormat.OpenXml.Wordprocessing
Assembly:  DocumentFormat.OpenXml (in DocumentFormat.OpenXml.dll)

Syntax

'Declaration
Public Class Body _
    Inherits BodyType
'Usage
Dim instance As Body
public class Body : BodyType

Remarks

The following table lists the possible child types:

  • AltChunk <w:altChunk>

  • CustomXmlBlock <w:customXml>

  • SdtBlock <w:sdt>

  • Paragraph <w:p>

  • Table <w:tbl>

  • ProofError <w:proofErr>

  • PermStart <w:permStart>

  • PermEnd <w:permEnd>

  • BookmarkStart <w:bookmarkStart>

  • BookmarkEnd <w:bookmarkEnd>

  • CommentRangeStart <w:commentRangeStart>

  • CommentRangeEnd <w:commentRangeEnd>

  • MoveFromRangeStart <w:moveFromRangeStart>

  • MoveFromRangeEnd <w:moveFromRangeEnd>

  • MoveToRangeStart <w:moveToRangeStart>

  • MoveToRangeEnd <w:moveToRangeEnd>

  • CustomXmlInsRangeStart <w:customXmlInsRangeStart>

  • CustomXmlInsRangeEnd <w:customXmlInsRangeEnd>

  • CustomXmlDelRangeStart <w:customXmlDelRangeStart>

  • CustomXmlDelRangeEnd <w:customXmlDelRangeEnd>

  • CustomXmlMoveFromRangeStart <w:customXmlMoveFromRangeStart>

  • CustomXmlMoveFromRangeEnd <w:customXmlMoveFromRangeEnd>

  • CustomXmlMoveToRangeStart <w:customXmlMoveToRangeStart>

  • CustomXmlMoveToRangeEnd <w:customXmlMoveToRangeEnd>

  • DocumentFormat.OpenXml.Office2010.Word.CustomXmlConflictInsertionRangeStart <w14:customXmlConflictInsRangeStart>

  • DocumentFormat.OpenXml.Office2010.Word.CustomXmlConflictInsertionRangeEnd <w14:customXmlConflictInsRangeEnd>

  • DocumentFormat.OpenXml.Office2010.Word.CustomXmlConflictDeletionRangeStart <w14:customXmlConflictDelRangeStart>

  • DocumentFormat.OpenXml.Office2010.Word.CustomXmlConflictDeletionRangeEnd <w14:customXmlConflictDelRangeEnd>

  • InsertedRun <w:ins>

  • DeletedRun <w:del>

  • MoveFromRun <w:moveFrom>

  • MoveToRun <w:moveTo>

  • ContentPart <w:contentPart>

  • DocumentFormat.OpenXml.Office2010.Word.RunConflictInsertion <w14:conflictIns>

  • DocumentFormat.OpenXml.Office2010.Word.RunConflictDeletion <w14:conflictDel>

  • SectionProperties <w:sectPr>

[ISO/IEC 29500-1 1st Edition]

17.2.2 body (Document Body)

This element specifies the contents of the body of the document - the main document editing surface.

The document body contains what is referred to as block-level markup - markup which can exist as a sibling element to paragraphs in a WordprocessingML document.

[Example: Consider a document with a single paragraph in the main document story. This document would require the following WordprocessingML in its main document part:

<w:document>
  <w:body>
    <w:p/>
  </w:body>
</w:document>

The fact that the paragraph is inside the body element makes it part of the main document story. end example]

Parent Elements

document (§17.2.3)

Child Elements

Subclause

altChunk (Anchor for Imported External Content)

§17.17.2.1

bookmarkEnd (Bookmark End)

§17.13.6.1

bookmarkStart (Bookmark Start)

§17.13.6.2

commentRangeEnd (Comment Anchor Range End)

§17.13.4.3

commentRangeStart (Comment Anchor Range Start)

§17.13.4.4

customXml (Block-Level Custom XML Element)

§17.5.1.6

customXmlDelRangeEnd (Custom XML Markup Deletion End)

§17.13.5.4

customXmlDelRangeStart (Custom XML Markup Deletion Start)

§17.13.5.5

customXmlInsRangeEnd (Custom XML Markup Insertion End)

§17.13.5.6

customXmlInsRangeStart (Custom XML Markup Insertion Start)

§17.13.5.7

customXmlMoveFromRangeEnd (Custom XML Markup Move Source End)

§17.13.5.8

customXmlMoveFromRangeStart (Custom XML Markup Move Source Start)

§17.13.5.9

customXmlMoveToRangeEnd (Custom XML Markup Move Destination Location End)

§17.13.5.10

customXmlMoveToRangeStart (Custom XML Markup Move Destination Location Start)

§17.13.5.11

del (Deleted Run Content)

§17.13.5.14

ins (Inserted Run Content)

§17.13.5.18

moveFrom (Move Source Run Content)

§17.13.5.22

moveFromRangeEnd (Move Source Location Container - End)

§17.13.5.23

moveFromRangeStart (Move Source Location Container - Start)

§17.13.5.24

moveTo (Move Destination Run Content)

§17.13.5.25

moveToRangeEnd (Move Destination Location Container - End)

§17.13.5.27

moveToRangeStart (Move Destination Location Container - Start)

§17.13.5.28

oMath (Office Math)

§22.1.2.77

oMathPara (Office Math Paragraph)

§22.1.2.78

p (Paragraph)

§17.3.1.22

permEnd (Range Permission End)

§17.13.7.1

permStart (Range Permission Start)

§17.13.7.2

proofErr (Proofing Error Anchor)

§17.13.8.1

sdt (Block-Level Structured Document Tag)

§17.5.2.29

sectPr (Document Final Section Properties)

§17.6.17

tbl (Table)

§17.4.38

[Note: The W3C XML Schema definition of this element’s content model (CT_Body) is located in §A.1. end note]

© ISO/IEC29500: 2008.

Examples

The following code example creates a word-processing document by package and writes some text into it.

using System;
using System.IO.Packaging;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

namespace BodyEx
{
    class Program
    {
        // Create a document by package, and write some text in it.
        static void Main(string[] args)
        {
            string fileName = @"C:\users\public\documents\BodyEx.zip";

            // Create a word document by package. 
            Package package = Package.Open(fileName);
            WordprocessingDocument wordprocessingDocument = 
                WordprocessingDocument.Create(package, WordprocessingDocumentType.Template);

            // Make some changes to the document.
            MainDocumentPart mainDocumentPart = wordprocessingDocument.AddMainDocumentPart();
            mainDocumentPart.Document = new Document();
            Document document = mainDocumentPart.Document;
            Body body = document.AppendChild(new Body());
            Paragraph para = body.AppendChild(new Paragraph());
            Run run = para.AppendChild(new Run());
            run.AppendChild(new Text("Created text in body."));

            // Close the document and the package.
            wordprocessingDocument.Close();
            package.Close();

            Console.WriteLine("The package has been created.\nPress a key.");
            Console.ReadKey();
        }
    }
}
Imports System.IO.Packaging
Imports DocumentFormat.OpenXml
Imports DocumentFormat.OpenXml.Packaging
Imports DocumentFormat.OpenXml.Wordprocessing

Module Module1
Sub Main(args As String())
        Dim fileName As String = "C:\users\public\documents\BodyEx.zip"

        ' Create a word document by package. 
        Dim package As Package = package.Open(fileName)
        Dim wordprocessingDocument As WordprocessingDocument = _
            wordprocessingDocument.Create(package, WordprocessingDocumentType.Template)

        ' Make some changes to the document.
        Dim mainDocumentPart As MainDocumentPart = _
            wordprocessingDocument.AddMainDocumentPart()
        mainDocumentPart.Document = New Document()
        Dim document As Document = mainDocumentPart.Document
        Dim body As Body = document.AppendChild(New Body())
        Dim para As Paragraph = body.AppendChild(New Paragraph())
        Dim run As Run = para.AppendChild(New Run())
        run.AppendChild(New Text("Created text in body."))

        ' Close the document and the package.
        wordprocessingDocument.Close()
        package.Close()

        Console.WriteLine("The package has been created." & vbLf & "Press a key.")
        Console.ReadKey()
    End Sub
End Module

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

Body Members

DocumentFormat.OpenXml.Wordprocessing Namespace