Laurent Kempé
Les namespaces XML de Word 2003
Comment changer à l'aide de code les Namespaces XML associés à Word 2003
Par Laurent Kempé publié le 27/04/2005 à 20:45, lu 12645 fois,
Visual Studio for Office 2003 expose un ensemble d'objets permettant d'interagir avec Word 2003. Afin de changer les Namespaces référencés par Word 2003 il nous suffit d'utiliser la collection ThisApplication.XMLNamespaces comme ceci :
using System;
using System.Collections;
using System.IO;
using System.Reflection;
using Microsoft.Office.Core;
using Microsoft.Office.Interop.Word;
using TechHeadBrothers.Configuration;

namespace THBPublisher
{
    /// <summary>
    /// Utilities class 
    /// </summary>
    public class Utilities
    {
        private static object oMissing = Missing.Value;

        /// <summary>
        /// configure les namespace XML de Word
        /// </summary>
        /// <param name="ThisApplication">L'application</param>
        /// <param name="ThisDocument">Le document</param>
        public static void configureXMLNamespaces(ref Application ThisApplication, ref Document ThisDocument)
        {
            //Effacer tous les namespaces existants
            foreach (XMLNamespace ns in ThisApplication.XMLNamespaces)
            {
                ns.Delete();
            }

            //Normalement on lit dans un fichier de configuration les namespaces
            //IDictionary settings = ((IDictionary) AssemblySettings.GetConfig("Document"));

            string alias = "THB Article 3.0"; //(string) settings["schemaalias"];

            string asmpath = Assembly.GetCallingAssembly().CodeBase;

            string pathschema = Path.GetDirectoryName(asmpath) + "\\" + "WordFormat30.xsd"; //(string) settings["schema"];

            object t = alias;

            XMLNamespace xmlnamespace = ThisApplication.XMLNamespaces.Add(pathschema, ref oMissing, ref t, false);

            object document = ThisDocument;
            xmlnamespace.AttachToDocument(ref document);
        }
    }
}
Et donc plus particulièrement la méthode ThisApplication.XMLNamespaces.Add.
 
» Démarrer une discussion