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
. 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
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
. 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
. 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