XML et UIMLMulti-accès avec XML 


Plan

      Généralités
      Le langage XML
      Le langage UIML
      Les commentaires sur cet article

Généralités

Le développement d'une application pour de multiples terminaux (postes de travail traditionnels, téléphones, visiophones, PDA) impose de grandes contraintes. En effet, chaque périphérique a des caractéristiques propres comme la taille de l'écran, la présence ou non d'une souris ou d'un stylet ou bien le langage qu'il comprend. Il ne faut pas développer une application destinée à son micro-ordinateur en HTML puis redévelopper la même application en WML pour son téléphone. Il faut utiliser un langage capable de différencier données et styles. De ce fait, chaque page contenant des données sera unique pour tous les devices, seulement une page d'agencement de ces données sera spécifique à chaque terminal.

Le langage XML

La réponse technologique se trouve dans XML. En effet, HTML mélangeant les données et la présentation (une balise <P> caractérise un paragraphe en le faisant précéder d'un retour chariot, saut de ligne). Un fichier XML renferme les données encapsulées dans des balises sémantiques. La composition du fichier xml (balises utilisées...) est spécifiée dans une DTD ou SCHEMA (la nouvelle version des DTD, conforme aux normes xml, permet entre autre le typage). Les fichiers XSL (T ou FO suivant la destination du fichiers xml) se chargent de récupérer les données du xml (filtrages et triages possibles) et de les agencer.

Le langage UIML

On a donc vu qu'il faut des Interfaces Homme-Machine (IHM) cohérentes entre les différents systèmes, périphéries, langages... mais un seul langage afin de faciliter le développement, et les mises à jour.
UIML pour User Interface Markup Language (Langage de Marquage des Interfaces Utilisateur) est un langage conforme au xml (dtd disponible à http://www.uiml.org/dtds/UIML2_0a.dtd).
Il est également compatible avec les espaces de nommage xml ce qui permet de le mêler avec d'autres langages XML. Voici par exemple un fragment de code mélangeant HTML et UIML :
<property name="content" part-name="A"> <!-- langage : UIML -->
<html:b xmlns:html="http://www.w3.org/TR/REC-html40"> Texte en gras </html:b> <!-- langage : HTML4 -->
</property> <!-- langage : UIML -->


UIML sert à définir les composants de l'interface (boutons, menus...) ainsi qu'à décrire les événements (cliquer, parler, enfoncer une touche...).
UIML interprète donc puis transcode vers du WML, HTML, Java, C++ ou autres langages spécifiques aux périphéries.

Spécifications 2.0a (17/01/2000) disponibles : http://www.uiml.org/docs/uiml20-17Jan00.pdf

Exemple de code UIML

Ce petit exemple vous permettra d'approcher quelques unes des balises xml de uiml et d'entrevoir les possibilités de ce nouveau langage.

<?xml version="1.0" ?>
<uiml version="2.0">
 <interface>

   <structure>
     <part name="groupe1" class="panel">
      <part name="Civilite" class="combobox">
      </part>
      <part name="nomClient" class="champ">
      </part>
     </part>
     <!-- Definition des parties fonctionnelles de l'interface ->     
   </structure>
   
   <style>
    <property part-name="nomClient name="taille" >10car</property >
    <!-- Definition des propriétés de présentation des parties fonctionnelles via un vocabulaire neutre->
    <!-- (=pas de propriété spécifique à un langage de programmation car définition des styles commune ->
    <!-- à tous les langages) ->     
   </style>

   <content> 
    <constant name="Sound" source="http://www.uiml.org/uiml.wav" />
    <constant name="Civilite" > Mr Mme Mlle </constant> 
    <!-- Le combobox Civilite proposera les choix Mr, Mme et Mlle ->     
   </content> 

   <behavior>
    <!-- Action des boutons, par exemple, effacage de tous les champs à la sélection du bouton reset ->     
   </behavior>

 </interface>
 <peers>
  <presentation name="Java" source="http://www.uiml.org/toolkits/Java20Swing.ui"/> 
  <presentation name="wml" source="http://www.uiml.org/toolkits/wml.ui"/> 
  <presentation name="vxml" source="http://www.uiml.org/toolkits/vxml.ui"/> 
  <!-- Matching entre les termes génériques de l'interface en uiml et le vocabulaire spécifique ->
  <!-- de chaque langage->
  <!-- C'est ici que l'on va dire qu'un 'champ' est un input en html ou un TextField en Java->
 </peers>
 
</uiml>

Pour plus d'informations sur l'UIML, accéder à la visio-conférence animée par Monsieur Didier Courtaud en cliquant ici

v1  
Dernière MAJ : 28 février 2002  
Contact : Cédric Carbone  


Les articles du Forum traitant du même sujet
N'hésitez pas à faire un commentaire sur ce sujet en cliquant sur le lien suivant

Co2Informatique : www.cedric.carbone14.org/co2info/ Valid HTML 4.0! Valid CSS! Espace professeur de Cédric Carbone