Présentation de la compatibilité du balisage
Cette rubrique présente les fonctionnalités de compatibilité de balisage incluses dans le Kit de développement logiciel (SDK) Open XML pour Office.
Introduction
Supposons que vous disposez d’un document Microsoft Word 365 qui utilise une fonctionnalité introduite dans Microsoft Office 365. Lorsque vous ouvrez ce document dans Microsoft Word 2016, une version antérieure, que doit-il se passer ? Dans l’idéal, vous souhaitez que le document reste interopérable avec Word 2016, même si Word 2016 ne comprendront pas la nouvelle fonctionnalité.
Réfléchissez également à ce qui doit se passer si vous ouvrez ce document dans une version ultérieure hypothétique d’Office. Là encore, il faudrait que le document fonctionne comme prévu. Autrement dit, vous souhaitez que la version ultérieure d’Office comprenne et prend en charge une fonctionnalité utilisée dans un document produit par Word 365.
Open XML prévoit ces scénarios. La spécification Des formats de fichier Office Open XML décrit les fonctionnalités permettant d’atteindre les résultats souhaités ci-dessus dans ECMA-376, Deuxième édition, Partie 3 - Compatibilité et extensibilité des marques.
Le Kit de développement logiciel (SDK) Open XML prend en charge la compatibilité du balisage d’une manière qui vous permet d’atteindre facilement les résultats souhaités ci-dessus pour et Office 365 sans avoir à nécessairement devenir un expert dans les détails de la spécification.
Qu’est-ce que la compatibilité des marques ?
Open XML définit des formats pour les documents de traitement de texte, de feuilles de calcul et de présentation sous la forme de langages de balisage spécifiques nommés WordprocessingML, SpreadsheetML et PresentationML. En ce qui concerne les formats de fichiers Open XML, la compatibilité du balisage est la capacité d’un document exprimé dans l’un des langages mentionnés ci-dessus à faciliter l’interopérabilité entre des applications, ou des versions d’une application, avec différents jeux de fonctionnalités. Ceci est pris en charge grâce à l’utilisation d’un ensemble défini d’éléments et d’attributs XML dans l’espace de noms de Compatibilité du balisage de la spécification Open XML. Notez que bien que le balisage soit pris en charge dans le format de document, les producteurs et consommateurs (tels que Microsoft Word) doivent également le prendre en charge. Autrement dit, l’interopérabilité est une fonction de prise en charge à la fois dans le format de fichier et par les applications.
Compatibilité des marques dans la spécification des formats de fichier Open XML
La compatibilité des marques est abordée dans ECMA-376, Deuxième édition, Partie 3 - Compatibilité et extensibilité des marques, qui est recommandée pour comprendre la compatibilité des marques. La spécification définit des attributs XML pour exprimer des règles de compatibilité et des éléments XML pour spécifier un autre contenu. Par exemple, l’attribut Ignorable
spécifie des espaces de noms qui peuvent être ignorés lorsqu’ils ne sont pas compris par l’application consommatrice. Les éléments Alternate-Content spécifient des alternatives de balisage qui peuvent être choisies par une application au moment de l’exécution. Par exemple, Word 2013 peut choisir uniquement l’alternative de balisage qu’il reconnaît. Pour plus de détails et pour obtenir la liste complète des attributs de règles de compatibilité et des éléments alternate-content, consultez la spécification.
Prise en charge du Kit de développement logiciel (SDK) Open XML pour la compatibilité des marques
Le travail du Kit de développement logiciel (SDK) Open XML pour la compatibilité du balisage est détaillé et subtil. Toutefois, l’objectif peut être résumé comme suit : à l’aide de paramètres que vous assignez lors de l’ouverture d’un document, prétraiter le document de façon à :
- Filtrer ou supprimer des éléments d’espaces de noms qui ne seront pas compris (par exemple, Office 365 document ouvert dans le contexte Office 2016)
- traiter tout élément et attribut de compatibilité du balisage comme indiqué dans la spécification Open XML.
Le prétraitement effectué est conforme à la spécification ECMA-376, Seconde édition : Partie 3.13.
La prise en charge du Kit de développement logiciel (SDK) Open XML pour la compatibilité des balisages se présente principalement sous la forme de deux classes et de la manière dont le contenu est prétraité conformément à ECMA-376, Second Edition. Les deux classes sont OpenSettings
et MarkupCompatibilityProcessSettings
. Utilisez la première pour fournir des paramètres qui s’appliquent au comportement global du kit SDK. Utilisez la seconde pour fournir une partie de ces paramètres, plus précisément ceux qui s’appliquent à la compatibilité du balisage.
Définir l’étape à l’ouverture
Lorsque vous ouvrez un document à l’aide du Kit de développement logiciel (SDK) Open XML, vous avez la possibilité d’utiliser une surcharge avec une signature qui accepte un instance de la OpenSettings classe en tant que paramètre. Vous utilisez la classe de paramètres d’ouverture pour fournir certains paramètres importants qui régissent le comportement du kit SDK. Un ensemble de paramètres en particulier, stocké dans la MarkupCompatibilityProcessSettings propriété , détermine la façon dont les éléments et attributs de compatibilité de balisage sont traités. Vous définissez la propriété sur un instance de la MarkupCompatibilityProcessSettings classe avant d’ouvrir un document.
La classe possède les propriétés suivantes :
ProcessMode - Détermine les parties qui sont prétraitées.
TargetFileFormatVersions - Spécifie le contexte qui s’applique au prétraitement.
Par défaut, les documents ne sont pas prétraités. Si toutefois vous spécifiez des paramètres d’ouverture et des paramètres de traitement de compatibilité du balisage, le document est prétraité conformément à ces paramètres.
L’exemple de code suivant montre comment appeler la méthode Open avec une instance de la classe de paramètres d’ouverture comme paramètre. Notez que les ProcessMode
propriétés et TargetFileFormatVersions
sont initialisées dans le cadre du MarkupCompatiblityProcessSettings
constructeur.
// Create instance of OpenSettings
OpenSettings openSettings = new OpenSettings();
// Add the MarkupCompatibilityProcessSettings
openSettings.MarkupCompatibilityProcessSettings = new MarkupCompatibilityProcessSettings(
MarkupCompatibilityProcessMode.ProcessAllParts,
FileFormatVersions.Office2007);
// Open the document with OpenSettings
using (WordprocessingDocument wordDocument = WordprocessingDocument.Open(filename, true, openSettings))
{
// ... more code here
}
Que se passe-t-il pendant le prétraitement
Pendant le prétraitement, le Kit de développement logiciel (SDK) Open XML supprime les éléments et les attributs dans l’espace de noms de compatibilité du balisage, supprime le contenu des éléments de contenu de substitution non sélectionnés et interprète les attributs de règle de compatibilité le cas échéant. Ce travail est guidé par les propriétés de mode de traitement et de versions de formats de fichiers cibles.
La ProcessMode
propriété détermine les parties à prétraiter. Le contenu de ces parties est filtré pour contenir uniquement les éléments compris par la version de l’application indiquée dans la TargetFileFormatVersions
propriété .
Avertissement
Le prétraitement affecte ce qui est enregistré. Lorsque vous enregistrez un fichier, le seul balisage enregistré est celui qui reste une fois le prétraitement effectué.
Comprendre le mode de processus
Le mode de traitement spécifie les composants de document qui doivent être prétraités. Vous définissez cette propriété sur un membre de l’énumération MarkupCompatibilityProcessMode . La valeur par défaut, NoProcess
, indique qu’aucun prétraitement n’est effectué. Votre application doit être en mesure de comprendre et de gérer tous les éléments et attributs présents dans le balisage de document, y compris ceux de l’espace de noms de Compatibilité du balisage.
Vous souhaiterez peut-être travailler sur des parties de document spécifiques tout en laissant le reste intact. Par exemple, vous souhaiterez peut-être garantir une modification minimale du fichier. Dans ce cas, spécifiez ProcessLoadedPartsOnly
pour le mode de processus. Avec ce paramètre, le prétraitement et le filtrage associé sont appliqués uniquement aux parties de document chargées, et non à l’intégralité du document.
Enfin, il y ProcessAllParts
a , qui spécifie ce que le nom implique. Lorsque vous choisissez cette valeur, l’intégralité du document est prétraitée.
Définir la version du format de fichier cible
La propriété versions de format de fichier cible vous permet de choisir de traiter le contenu de compatibilité du balisage dans le contexte d’une version d’Office spécifique, par exemple Office 365. Définissez la TargetFileFormatVersions
propriété sur un membre de l’énumération FileFormatVersions .
La valeur par défaut, , Office2007
signifie que le Kit de développement logiciel (SDK) suppose que les espaces de noms définis dans Office 2007 sont compris, mais pas les espaces de noms définis dans Office 2010 ou version ultérieure. Par conséquent, pendant le prétraitement, le KIT de développement logiciel (SDK) ignore les espaces de noms définis dans les versions plus récentes d’Office et choisit le contenu de remplacement compatible avec Office 2007.
Lorsque vous définissez la propriété Office2013
versions de format de fichier cible sur , le Kit de développement logiciel (SDK) Open XML suppose que tous les espaces de noms définis dans Office 2010 et Office 2013 sont compris, n’ignore aucun contenu défini sous Office 2013 et choisit le contenu de remplacement compatible avec Office 2013.