次の方法で共有


WordprocessingML ドキュメントの構造

このトピックでは、 WordprocessingML ドキュメントの基本構造、および WordprocessingML ドキュメントの作成に最もよく使用される重要な Open XML SDK クラスについて説明します。

WordProcessingML ドキュメントの基本的なドキュメント構造は、<document>要素と<body>要素で構成され、その後に段落を表す <p> などの 1 つ以上のブロック レベル要素が続きます。 段落には、1 つ以上の <r> 要素が含まれています。 <r>は、書式設定などのプロパティの共通セットを持つテキストの領域である run を表します。 実行には、1 つ以上の <t> 要素が含まれています。 <t>要素には、テキストの範囲が含まれています。

重要な WordprocessingML パーツ

Open XML SDK API は、 WordprocessingML 要素に対応する DocumentFormat.OpenXML.WordprocessingML 名前空間で厳密に型指定されたクラスを提供します。

次の表に、 重要な WordprocessingML 要素、要素が対応する WordprocessingML ドキュメント パッケージ パーツ (該当する場合)、および Open XML SDK API の要素を表すマネージド クラスを示します。

パッケージのパーツ WordprocessingML の要素 Open XML SDK クラス 説明
メイン ドキュメント document Document メイン ドキュメント パーツのルート要素。
コメント comments Comments コメント パーツのルート要素。
ドキュメント設定 settings Settings ドキュメント設定パーツのルート要素。
文末脚注 endnotes Endnotes 文末脚注パーツのルート要素。
フッター ftr Footer フッター パーツのルート要素。
脚注 footnotes Footnotes 脚注パーツのルート要素。
グロッサリ文書 glossaryDocument GlossaryDocument グロッサリ文書パーツのルート要素。
ヘッダー hdr Header ヘッダー パーツのルート要素。
スタイル定義 styles Styles スタイル定義パーツのルート要素。

最低限のドキュメントのシナリオ

WordprocessingML ドキュメントは、ストーリーの概念を中心にして組み立てられます。 ストーリーは、 WordprocessingML ドキュメントのコンテンツの領域です。 WordprocessingML のストーリーには次のものが含まれます。

  • comment

  • 文末脚注

  • フッター

  • 脚注

  • フレーム、グロッサリ文書

  • ヘッダー

  • メイン ストーリー

  • サブドキュメント

  • テキスト ボックス

有効な WordprocessingML ドキュメントにすべてのストーリーが存在している必要はありません。 最も単純で有効な WordprocessingML ドキュメントに必要なものは、単一のストーリーつまりメイン ドキュメント ストーリーだけです。 WordprocessingML では、メイン ドキュメント ストーリーはメイン ドキュメント パーツによって表されます。 コードを使用して WordprocessingML ドキュメントを作成する場合は、少なくとも、メイン ドキュメント パーツをドキュメントに追加します。

次に示す ISO/IEC 29500 の情報では、最低限のドキュメント シナリオを完成するためにメイン ドキュメント パーツに必要な WordprocessingML 要素について説明します。

最も単純な WordprocessingML ドキュメントのメイン ドキュメント ストーリーは、次の XML 要素で構成されます。

  • document— WordprocessingML のメインドキュメント パーツのルート要素。これは、メインドキュメント ストーリーを定義します。

  • body— メイン ストーリーを構成するブロック レベルの構造体のコレクションのコンテナー。

  • p — 段落。

  • r — 実行。

  • t — テキストの範囲。

© ISO/IEC 29500: 2016

Open XML SDK コード例

次のコードでは、Open XML SDK を使用して、2 番目のパラメーターとして渡されたテキストを含む単純な WordprocessingML ドキュメントを作成します

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

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 from the msg parameter"
        run.AppendChild(new Text(msg));
    }
}

生成された WordprocessingML

前のセクションで Open XML SDK コードを実行してドキュメントを生成した後、.zip パッケージの内容を調べて WordprocessingML XML コードを表示できます。 To view the .zip package, rename the extension on the minimum document from .docx to .zip. .zip パッケージには、ドキュメントを構成するパーツが含まれます。 この例では、コードで最低限の WordprocessingML ドキュメントを作成したので、1 つのパーツ、つまりメイン ドキュメント パーツだけが存在します。次の図は、テキストを 1 行だけ含む最低限のドキュメントの .zip パッケージの word フォルダーの下位構造を示しています。Art プレースホルダーdocument.xml ファイルは、WordprocessingML のメイン ドキュメント パーツに対応しており、ドキュメントの本文のコンテンツを格納しているのはこのパーツです。 前のセクションで Open XML SDK コードを実行すると、次の XML コードが document.xml ファイルに生成されます。

<?xml version="1.0" encoding="utf-8"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:body>
    <w:p>
      <w:r>
        <w:t>The text passed as the second parameter goes here</w:t>
      </w:r>
    </w:p>
  </w:body>
</w:document>

標準的なドキュメントのシナリオ

標準的なドキュメントは、ブランクの最低限のドキュメントではありません。 標準的なドキュメントには、コメント、ヘッダー、フッター、脚注、文末脚注などが含まれる場合があります。 これらの各追加パーツは、ワープロ ドキュメントの zip パッケージに含まれます。

次の図では、標準的なドキュメントに含まれるさまざまなパーツを示します。

図 1. 標準的なドキュメントの構造

WordprocessingML ドキュメントの構造