Schéma XML de listes de balises actives

Tristan Davis
Microsoft Corporation
Janvier 2003

S'applique à :
     Microsoft® Office XP

Résumé : Découvrez le schéma MOSTL (Microsoft Office Smart Tag Lists). Ce schéma peut être utilisé pour créer des balises actives simples à l'aide de fichiers XML.

Téléchargez l'exécutable odc_mostl.exe sur le site MSDN Lien non MSDN France Site en anglais. Ce téléchargement inclut le fichier de schéma MOSTL au format XSD, ainsi qu'un modèle de fichier contenant une liste de balises actives.

Sommaire
  • Introduction
  • Le schéma XML de balises actives
  • Explication de la syntaxe du schéma XML de balises actives
  • Modèle de liste de balises actives XML
  • Validation d'une liste de balises actives
  • Conclusion

Introduction

Les balises actives sont une nouvelle fonctionnalité particulièrement performante de Microsoft Word 2002, Microsoft Excel 2002 et Microsoft Outlook® 2002 (lorsque Word est activé comme éditeur de messagerie électronique). Grâce à cette fonctionnalité, les développeurs peuvent créer des solutions personnalisées pour étiqueter du texte spécifique avec des actions contextuelles appropriées. Par exemple, un développeur peut souhaiter baliser des chaînes alphanumériques correspondant aux codes produit afin de pouvoir consulter les informations concernant l'inventaire ou des ventes relatives à un produit donné.

De nombreuses solutions, telles que dans l'exemple ci-dessus, ne requièrent pas d'avoir accès à la totalité des fonctionnalités de l'interface de balises actives. Dans ce cas, le logiciel MOSTL (Microsoft Office Smart Tag Lists) permet aux développeurs de créer des balises actives simples qui reconnaissent les chaînes de texte et permettent à l'utilisateur d'ouvrir des sites Web correspondants dans la fenêtre du navigateur. Ces balises actives sont générées par la création d'un fichier de texte XML (Extensible Markup Language) simple.

Le schéma XML de balises actives

Même si l'utilisation de fichiers de texte pour créer des balises actives simples facilite énormément le processus de développement, il est essentiel de comprendre la définition d'un fichier XML valide, afin de garantir le fonctionnement correct de ces solutions de balises actives. La syntaxe définissant un fichier XML de balise active valide est appelée schéma XML MOSTL. Ce fichier de schéma définit l'ordre des éléments que doit contenir une liste de balises actives, ainsi que le type de contenu attendu (Booléen, Chaîne, etc.). Cet article n'a pas pour objectif d'expliquer le format XML ; pour obtenir davantage d'informations sur ce format, accédez au centre de développement en ligne XML.

Explication de la syntaxe du schéma XML de balises actives

Le schéma XML des listes de balises actives comprend les informations suivantes :

  • des informations concernant le nom et la description de la solution de balise active ;
  • des informations concernant la capacité de mise à jour automatique de cette balise active ;
  • des informations concernant des balises actives spécifiques définies par ce module de reconnaissance.

Après avoir décomposé notre syntaxe de schéma en fonction de ces trois catégories, nous obtiendrons une vision claire du processus de création d'un fichier MOSTL approprié. À la suite de quoi, nous étudierons un modèle de document XML MOSTL.

L'élément racine

Tous les fichiers XML appropriés contiennent un ou plusieurs éléments racine, qui contiennent quant à eux les données de ces fichiers XML. L'élément racine doit également définir l'espace de noms XML auquel appartiennent son ou ses éléments enfants. De cette façon, nous pouvons identifier, au sein du code XML, les données contenues dans cet élément appartenant à l'interface de balises actives MOSTL.

Tableau 1. Élément racine de balises actives

Nom de l'élément Contenu de l'élément Requis ? Description détaillée
smarttaglist Contient d'autres éléments XML. Oui Élément racine d'une définition de liste de balises actives. Un attribut de cet élément définit son contenu comme appartenant à l'espace de noms MOSTL.

Éléments de nom et de description

Ces éléments sont utilisés pour fournir un nom à votre nouvelle balise active, ainsi que pour l'identifier auprès de l'utilisateur et de l'application hôte. Ces éléments sont des enfants directs de l'élément racine.

Tableau 2. Éléments de description de balises actives

Nom de l'élément Contenu de l'élément Requis ? Description détaillée
name Texte Oui Un « nom convivial » utilisé pour définir votre balise active.
lcid Liste de nombres entiers séparés par des virgules ou des astérisques (*). En option Définit auprès de l'application hôte les langues de reconnaissance des éléments de cette liste. En cas d'absence de ces informations ou si l'application hôte n'expose pas l'ID du paramètre régional en cours (par exemple, Excel), le texte sera traité sans spécifier la langue.
description Texte Oui Description plus détaillée de la fonction de cette balise active.
moreinfourl Texte En option URL dans laquelle un utilisateur peut trouver davantage d'informations sur cette balise active.

Éléments de mise à jour automatique

Les balises actives plus complexes présentent une infrastructure dédiée qui permet au développeur de spécifier quand et comment l'application cliente doit rechercher des mises à jour éventuelles de cette balise active. Afin de fournir cette fonctionnalité aux listes de balises actives, les balises suivantes sont des enfants directs de l'élément racine.

Tableau 3. Éléments de mise à jour automatique des balises actives

Nom de l'élément Contenu de l'élément Requis ? Description détaillée
updateable Booléen En option, la valeur par défaut est non. Indique si une mise à jour automatique doit être tentée sur cette balise active.
autoupdate Booléen En option, la valeur par défaut est non. Indique si la balise active doit essayer de se mettre à jour automatiquement.
lastcheckpoint Nombre entier En option ID de nombre entier indiquant la dernière version du module de reconnaissance installé. Si le module de reconnaissance est mis à jour automatiquement, cet élément est comparé à la valeur sur le serveur afin de déterminer si une mise à jour doit avoir lieu et, dans le cas d'une mise à jour, cette valeur est remplacée par la nouvelle valeur du point de contrôle.
lastupdate Nombre entier En option Nombre entier long représentant le nombre de minutes depuis 1970, dernière mise à jour du module de reconnaissance. Cette valeur est normalement réglée sur zéro et actualisée par la procédure de mise à jour.
updateurl Texte En option URL ou autre emplacement où la procédure doit rechercher des mises à jour éventuelles.
updatefrequency Nombre entier En option, la valeur par défaut est 10080 (une semaine) Nombre entier indiquant le nombre de minutes devant s'écouler entre deux appels successifs de l'URL de mise à jour mentionnée ci-dessus.

Remarque   Même si tous les éléments de cette section sont optionnels, ils doivent tous être présents pour que le processus de mise à jour puisse fonctionner correctement.

Élément parent de balise active

Tout comme l'élément racine de la liste de balises actives qui contient les données nécessaires à la définition d'une liste de balises actives et fournit l'espace de noms de l'interface de la liste de balises actives, l'élément parent d'une balise active contient ces mêmes informations pour un type de balise active donné. Cet élément parent contient les informations concernant les détails d'un type de balise active donné, ainsi que la définition d'un espace de noms unique grâce auquel les termes de ce type sont identifiés. Il s'agit d'un enfant direct de l'élément racine.

Tableau 4. Élément parent de balise active

Nom de l'élément Contenu de l'élément Requis ? Description détaillée
smarttag Contient d'autres éléments XML (voir ci-dessous). Oui Élément racine d'une définition de balise active. Un attribut de cet élément définit son contenu à l'aide d'un espace de noms unique à ce type de balise active.

Éléments de définition de balises actives

Dans un élément parent de balise active donné, les éléments suivants définissent le comportement de notre balise active.

Tableau 5. Éléments de définition de balises actives

Nom de l'élément Contenu de l'élément Requis ? Description détaillée
caption Texte Oui Légende à afficher avec les actions de cette balise active.
terms Contient d'autres éléments XML (soit termfile, soit termlist, voir ci-dessous). Oui Contient la définition des termes reconnus par cette balise active.
property Texte En option Contient une paire nom-valeur séparée par des virgules qui doit être jointe au jeu de propriétés lorsque le terme est reconnu.
actions Contient d'autres éléments XML (voir ci-dessous). Oui Contient la définition des actions disponibles pour la balise active.

Éléments de la reconnaissance de termes de balises actives

Dans une balise active, le premier composant implique la reconnaissance des termes concernés. Les balises suivantes définissent avec exactitude les termes (chaînes de texte) qui doivent être reconnus par cette balise active. Ces éléments sont contenus dans l'élément terms répertorié plus haut.

Tableau 6. Éléments de la reconnaissance de balises actives

Nom de l'élément Contenu de l'élément Requis ? Description détaillée
termfile Un seul élément : filename En option (choix requis entre termfile et termlist) Cet élément est un conteneur pour la balise filename et il indique à la liste de balises actives le nom du fichier binaire contenant la liste des termes reconnus.
filename Texte En option (requis si termfile est utilisé) Contient le nom de fichier d'un fichier binaire contenant la liste des termes reconnus.
Remarque   Aucun outil permettant de créer ces fichiers de termes binaires n'était disponible lors de la rédaction de cet article.
termlist Texte En option (choix requis entre termfile et termlist) Cet élément contient une liste textuelle entre virgules des termes qui seront reconnus par cette balise active.

Éléments d'action des balises actives

L'aspect final de la définition de la liste de balises actives suppose que l'on définisse les actions disponibles lors de la reconnaissance du terme concerné. Dans notre exemple d'origine, les actions associées permettent à notre utilisateur de rechercher les données d'inventaire et de vente à partir d'un site Web. Les actions suivantes résident sous l'élément actions répertorié ci-dessus.

Tableau 7. Éléments d'action des balises actives

Nom de l'élément Contenu de l'élément Requis ? Description détaillée
action Contient les éléments url et caption (voir ci-dessous). Oui (possibilités d'éléments action multiples) Élément de conteneur pour une action individuelle.
url Texte Oui URL ouverte par cette action dans le navigateur. Pour inclure le texte reconnu dans l'URL, utilisez l'espace réservé {TEXT}.
caption Texte Oui Légende affichée à l'utilisateur par rapport à l'URL ci-dessus.

Modèle de liste de balises actives XML

La description de la syntaxe de la liste de balises actives terminée, nous pouvons examiner un modèle de liste pour voir comment ces éléments se combinent dans un fichier de liste de balises actives type. Ce fichier est également inclus pour référence sous le nom products.xml.

<FL:smarttaglist xmlns:FL="urn:schemas-microsoft-com:smarttags:list">
  <FL:name>Amalgamated Products Smart Tag</FL:name>
  <FL:lcid>0</FL:lcid>
  <FL:description>Provides smart tag access to Amalgamated Products'
   inventory and sales information.</FL:description>
  <FL:moreinfourl>http://amalgamated.com</FL:moreinfourl>
  <FL:updateable>true</FL:updateable>
  <FL:autoupdate>true</FL:autoupdate>
  <FL:lastcheckpoint>103</FL:lastcheckpoint>
  <FL:lastupdate>17186300</FL:lastupdate>
  <FL:updateurl>http://amalgamated.com/stagupdate.xml</FL:updateurl>
  <FL:updatefrequency>20160</FL:updatefrequency>
  <FL:smarttag type="urn:amalgamated-products#products">
   <FL:caption>Amalgamated Product ID</FL:caption>
   <FL:terms>
     <FL:termlist>AZ94496, MA92231, AS10244</FL:termlist>
   </FL:terms>
   <FL:actions>
     <FL:action id="InventoryData">
      <FL:caption>Check Inventory Data</FL:caption>
      <FL:url>http://amalgamated.com/products/{TEXT}</FL:url>
     </FL:action>
     <FL:action id="SalesData">
      <FL:caption>Check Sales Data</FL:caption>
      <FL:url>http://amalgamated.com/sales/{TEXT}</FL:url>
     </FL:action>
   </FL:actions>
  </FL:smarttag>
</FL:smarttaglist>

Comme nous pouvons le voir dans cet exemple, la balise active Amalgamated Products (produits fusionnés) fonctionne dans tout paramètre régional, se met à jour automatiquement toutes les deux semaines et , en cas de reconnaissance d'un des termes associés, présente les options utilisateur qui permettent d'accéder à un site Web interne afin de rechercher les données de vente et d'inventaire.

Validation d'une liste de balises actives

Même si nous avons apporté un grand soin à la génération de notre modèle de fichier ci-dessus, une fois la syntaxe de la liste de balises actives terminée, nous avons encore besoin d'une méthode pour valider notre fichier XML. À l'aide du schéma XML fourni, nous pouvons valider notre document en utilisant l'outil Microsoft Sample XML Validator Lien non MSDN France Site en anglais. Ce validateur vous permettra de valider vos fichiers de listes de balises actives XML par rapport au schéma XML fourni. De nombreux autres validateurs sont disponibles sur le Web ; par exemple, l'organisme chargé de la législation XML (le W3C) offre un validateur Internet à l'adresse suivante : http://www.w3.org/2001/03/webdata/xsv Lien non Microsoft Site en anglais. Grâce à l'un de ces validateurs, vous pouvez facilement vérifier la conformité de votre fichier par rapport à la syntaxe des listes de balises actives.

Remarque  La validation d'un schéma XML garantit la validité du texte XML contenu dans votre liste de balises actives, mais elle ne peut vous assurer que la balise active fonctionnera exactement comme vous le souhaitiez, étant donné que le contenu à proprement parler n'est pas défini par le schéma XML.

Conclusion

Grâce au schéma XML de liste de balises actives fourni, les développeurs peuvent rapidement vérifier que la syntaxe de leurs documents de listes de balises actives sont conformes à la définition d'un fichier de listes XML valide. Il existe de nombreux utilitaires fournis par Microsoft ou disponibles sur le Web qui, si on leur présente le schéma et un document, peuvent automatiquement fournir au développeur l'état de validation de leur document.

Dernière mise à jour le mercredi 2 avril 2003

Pour en savoir plus