Partager via


Structure d’un document WordprocessingML

Cette rubrique décrit la structure de base d'un document WordprocessingML et répertorie les classes Open XML SDK importantes utilisées le plus souvent pour créer des documents WordprocessingML.

La structure de base d’un document WordProcessingML se compose des éléments <document> et <body>, suivis d’un ou de plusieurs éléments de niveau bloc comme <p>, qui correspond à un paragraphe. Un paragraphe contient un ou plusieurs éléments <r>. Le <r> signifie « run », une séquence de texte dotée d’un ensemble de propriétés communes, comme la mise en forme. Une séquence « run » contient un ou plusieurs <t>. L’élément <t> contient une plage de texte.

Composants importants d’un document WordprocessingML

L’API du Kit de développement logiciel (SDK) Open XML fournit des classes fortement typées dans l’espace de noms DocumentFormat.OpenXML.WordprocessingML qui correspondent aux éléments WordprocessingML .

Le tableau suivant répertorie certains éléments WordprocessingML importants, le composant de package de document WordprocessingML auquel correspond l’élément (le cas échéant) et la classe managée qui représente l’élément dans l’API du Kit de développement logiciel (SDK) Open XML.

Composant du package Élément WordprocessingML Classe du Kit de développement logiciel (SDK) Open XML Description
Document principal document Document Élément racine de la partie principale du document.
Commentaires comments Comments Élément racine du composant de commentaires.
Paramètres de document settings Settings Élément racine du composant de paramètres de document.
Notes de fin endnotes Endnotes Élément racine du composant de notes de fin.
Pied de page ftr Footer Élément racine du composant de pied de page.
Notes footnotes Footnotes Élément racine du composant de notes.
Document de glossaire glossaryDocument GlossaryDocument Élément racine du composant de document de glossaire.
En-tête hdr Header Élément racine du composant d’en-tête.
Définitions de style styles Styles Élément racine du composant de définitions de style.

Scénario de document minimum

Un document WordprocessingML est organisé autour du concept de niveaux. Un niveau est une région de contenu dans un document WordprocessingML. Les niveaux WordprocessingML sont les suivants :

  • commentaire

  • note de fin

  • pied de page

  • note de bas de page

  • cadre, document de glossaire

  • en-tête

  • niveau principal

  • sous-document

  • zone de texte

Tous les niveaux ne sont pas forcément présents dans un document WordprocessingML valide. Le document valide WordprocessingML le plus simple requiert un seul niveau, le niveau document principal. Dans WordprocessingML, ce niveau est représenté par le composant document principal. Pour créer un document WordprocessingML valide en utilisant du code, ajoutez au moins un composant document principal à ce document.

Les informations suivantes issues des spécifications ISO/IEC 29500 introduisent les éléments WordprocessingML requis dans le composant document principal afin de réaliser le scénario de document minimum.

Le niveau principal du document WordprocessingML le plus simple est constitué des éléments XML suivants :

document : l'élément racine du composant document principal WordprocessingML, qui définit le niveau principal.

body : le conteneur de la collection de structures au niveau bloc, qui comprend le niveau principal.

p : un paragraphe.

r : une séquence.

t : une plage de texte.

© ISO/IEC29500: 2008.

Exemple de code Open XML SDK 2.0

Le code suivant utilise le Kit de développement logiciel (SDK) Open XML pour créer un document WordprocessingML simple contenant le texte « Hello, Word ! »

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