Exporter (0) Imprimer
Développer tout

XML et Windows CE 3.0

Michael Reeves
Microsoft Corporation
Novembre 2000

Résumé : le système d'exploitation Windows CE 3.0 étend la gamme des options disponibles pour les développeurs en proposant un sous-ensemble de la fonctionnalité XML (Extensible Markup Language). Ce document décrit les fonctionnalités XML qui ont été incorporées à Windows CE et les différences entre l'utilisation de XML sur une plate-forme Windows CE et sur un ordinateur de bureau équipé de Windows.

Sommaire

Introduction
Le XML
   Services Web et XML
XML pour Windows CE
   Validation de données
   Gestion de documents
   Mise en forme de données complexes pour la présentation
   XMLHTTP
   Instanciation d'objets COM via XSL



Introduction

Le système d'exploitation Windows® CE 3.0 étend la gamme des options disponibles pour les développeurs en proposant un sous-ensemble de la fonctionnalité XML (Extensible Markup Language). Ce document décrit les fonctionnalités XML qui ont été incorporées à Windows CE et les différences entre l'utilisation de XML sur une plate-forme Windows CE et sur un ordinateur de bureau équipé de Windows. Pour des informations générales sur XML, consultez les ressources pour les développeurs XML sur MSDN et l'Atelier Web en ligne MSDN leave-site.gif Site en anglais, ainsi que la documentation du kit du développeur Microsoft XML version 2.5 disponible dans la Bibliothèque en ligne MSDN leave-site.gif Site en anglais. Notez que, dans cet article, MSXML se rapporte à l'analyseur XML disponible auprès de Microsoft et XML se rapporte au langage de marquage.



Le XML

XML est un langage de méta-marquage qui propose un format de description des données structurées et permet aux développeurs de décrire facilement et de fournir des données formatées et structurées à partir de n'importe quelle application, et ce, d'une manière standardisée et cohérente. XML simplifie la création de déclarations de contenu plus précises et offre des résultats de recherche plus pertinents sur plusieurs plates-formes. En outre, XML donne naissance à une nouvelle génération d'applications Web pour l'affichage et la manipulation des données.

La puissance et l'attrait de XML vient du fait qu'il entretient la séparation entre l'interface utilisateur et les données structurées. Alors que les balises HTML peuvent afficher un mot en caractères gras ou italiques, XML propose une structure de balisage des données structurées. Une balise XML peut indiquer que les données associées à la balise sont un prix au détail, une taxe, un titre de livre, une mesure de précipitations ou toute autre donnée de votre choix. Les balises XML étant adoptées par les entreprises pour leurs intranets et par d'autres acteurs sur Internet, la possibilité de rechercher et de manipuler des données va s'accroître, quelles que soient les applications dans lesquelles elles résident. Une fois qu'une application a localisé les données XML, elle peut fournir les données par le réseau et présenter les données dans un navigateur Web (tel que Microsoft® Internet Explorer) de nombreuses manières. L'application peut également transmettre les données à d'autres applications pour un traitement et un affichage ultérieurs.

Véritable standard de données pour coder le contenu, la sémantique et la schématisation d'une large variété de cas, simples ou complexes, XML permet de marquer les éléments suivants :

  • un document ordinaire ;

  • un enregistrement structuré, tel qu'un rendez-vous ou un bon de commande ;

  • un objet avec des données et des méthodes, tel que le formulaire tenace d'un objet Java ou un contrôle ActiveX® ;

  • un enregistrement de données, tel que les résultats d'une requête ;

  • le métacontenu sur un site Web, tel que les fichiers CDF (Channel Definition Format) ;

  • une présentation graphique, telle que l'interface utilisateur d'une application ;

  • les entités et types de schéma standard ;

  • tous les liens entre les informations et les personnes sur le Web.

Une fois que les données se trouvent sur le bureau du client, elles peuvent être manipulées, modifiées et présentées sous diverses formes sans allers-retours multiples vers le serveur. Les serveurs sont désormais plus évolutifs, en raison de charges de calcul et de bande passante réduites. Enfin, comme les données sont échangées au format XML, elles peuvent être facilement fusionnées à partir de plusieurs sources.

Pour plus d'informations sur le XML et ses utilisations possibles, consultez Pourquoi le XML ?.

Services Web et XML

Contrairement aux technologies de composant courantes, les services Web n'utilisent pas de protocoles spécifiques aux modèles d'objet comme DCOM, RMI ou IIOP qui requièrent des infrastructures spécifiques et homogènes à la fois sur le client et sur la machine assurant les services. Les implémentations étroitement couplées aux technologies de composant spécifiques sont certes parfaitement acceptables dans un environnement contrôlé, mais totalement impraticables sur le Web. Au fur et mesure que l'ensemble des participants d'un processus commercial intégré change et que la technologie évolue, il devient très difficile de garantir une infrastructure unique et unifiée pour tous les participants. Les services Web adoptent une approche différente : ils communiquent à l'aide de protocoles Web et de formats de données omniprésents tels que HTTP et XML. N'importe quel système prenant en charge ces standards Web pourra également prendre en charge les services Web.

De plus, un contrat de service Web décrit les services fournis en termes de messages acceptés et générés par le service Web plutôt que par la manière dont le service Web est implémenté. En se concentrant uniquement sur les messages, le modèle des services Web est complètement indépendant du langage, de la plate-forme et du modèle d'objet utilisés. Un service Web peut être implémenté en utilisant l'ensemble des fonctions de n'importe quel langage de programmation, plate-forme ou modèle d'objet.

XML constitue le choix évident pour définir un langage, certes standard mais néanmoins extensible, de représentation des commandes et des données tapées. Alors que les règles de représentation des commandes et des données tapées utilisant d'autres techniques (telles que le codage sous forme de chaîne de requête) pouvaient être définies, XML est spécifiquement conçu comme un métalangage standard de description des données.

XML s'impose également comme la technologie permettant les contrats de service Web. Le langage SCL (Service Contract Language) est une grammaire XML qui documente des contrats de service Web. SCL étant basé sur XML, les contrats sont faciles à créer et à interpréter, à la fois pour les développeurs et pour leurs outils.

Pour des informations supplémentaires sur les services Web Microsoft, consultez Le Web programmable : les services Web offrent des blocs de construction pour la structure Microsoft .NET leave-site.gif Site en anglais.



XML pour Windows CE

Microsoft Windows CE 3.0 prend en charge un sous-ensemble de fonctionnalités MSXML 2.0. Plus précisément, Windows CE ne prend pas en charge les fonctions suivantes :

  • les types de données simples sur les attributs ;

  • l'ajout d'un type de données "id" aux éléments ;

  • l'affectation de types de données à travers les noms d'élément ;

  • les îlots de données ;

  • la liaison de données ;

  • l'afficheur de type Mime ;

  • la compatibilité ascendante avec le modèle d'objet de document (DOM) Microsoft XML pris en charge par Microsoft Internet Explorer 4.0.

En outre, Windows CE n'offre qu'une sécurité XML limitée.

Les fonctions MSXML 2.0 prises en charge par Windows CE sont les suivantes :

  • la validation XML par la prise en charge des schémas, des espaces de noms et des types de données ;

  • la possibilité de construire et de gérer des documents et données complexes par la prise en charge du modèle d'objet de document (DOM) ;

  • la mise en forme des navigateurs Web par la prise en charge de XSL ;

  • les demandes de document et fonctions d'analyse automatisées par l'utilisation de fonctions XMLHTTP.

Windows CE prend également en charge la possibilité d'instancier les objets COM dans des blocs de script XSL, ce qui constitue une fonction de MSXML 2.5.

Validation de données

MSXML pour Windows CE prend en charge une version d'aperçu technique des schémas XML. La prise en charge du schéma XML est un sous-ensemble de la soumission de données XML W3C (Worldwide Web Consortium) et est très proche d'un point de vue fonctionnel de la soumission DCD (Document Content Description) W3C.

Considérons le fichier XML suivant :

<CONTACTS>
 <CONTACT>
 <NAME>Stéphanie Martin</NAME>
 <BIRTHDATE>01-07-1971</BIRTHDATE>
 <EMAIL>stephaniem@abcdef.com</EMAIL>
 <PHONE>01 02 03 04 05</PHONE>
 </CONTACT>
 <CONTACT>
 <NAME>Jacques Cartier</NAME>
 <BIRTHDATE>17-09-1968</BIRTHDATE>
 <EMAIL>jacquesc@abcdef.com</EMAIL>
 <PHONE>01 02 03 04 05</PHONE>
 </CONTACT>
 <CONTACT>
 <NAME>Christophe Benarbia</NAME>
 <BIRTHDATE>08-09-1999</BIRTHDATE>
 <EMAIL>cbenarbia@abcdef.com</EMAIL>
 <PHONE>01 02 03 04 05</PHONE>
 </CONTACT>
</CONTACTS>

Avec la prise en charge des nouveaux schémas XML dans MSXML pour Windows CE, les données ci-dessus peuvent être validées par rapport à un schéma en déclarant l'espace de noms suivant sur l'élément root :

<CONTACTS xmlns="x-schema:contactSchema.xml">

Ceci définit le schéma contactSchema.xml comme l'espace de noms par défaut pour le document. Les autres espaces de noms peuvent être déclarés au fil du document si nécessaire mais, si aucun nom n'est spécifié, le nom par défaut s'appliquera.

Le schéma complet pour le document XML ci-dessus est le suivant :

<Schema xmlns="urn:schemas-microsoft-com:xml-data"
 xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="NAME" content="textOnly"/>
<ElementType name="BIRTHDATE"
 content="textOnly"
 dt:type="date"/>
<ElementType name="EMAIL" content="textOnly"/>
<ElementType name="PHONE" content="textOnly"/>
<ElementType name="CONTACT" content="eltOnly">
 <element type="NAME"/>
 <element type="BIRTHDATE"/>
 <element type="EMAIL"/>
 <element type="PHONE"/>
 </ElementType>
 <ElementType name="CONTACTS"
 content="eltOnly"
 order="many">
 <element type="CONTACT"/>
 </ElementType>
</Schema>

L'attribut :

xmlns='urn:schemas-microsoft-com:xml-data'

définit l'espace de noms par défaut du document XML comme l'espace de noms du schéma. Ceci signifie que le schéma doit être conforme à la syntaxe du schéma XML. De la même manière, l'attribut :

xmlns:dt='urn:schemas-microsoft-com:datatypes'

déclare l'espace de noms du type de données. Ceci signifie que les types de données peuvent désormais être déclarés dans tout le schéma (notez que le préfixe dt sur l'attribut type permet d'entrer la valeur BIRTHDATE).

Gestion de documents

Le DOM est une interface indépendante de la plate-forme et du langage, qui permet aux scripts d'accéder au contenu, à la structure et au style d'un document, et de les mettre à jour. Le DOM inclut un modèle qui décrit comment combiner des documents HTML et XML en un ensemble standard d'objets. Il intègre également une interface pour accéder à ces objets et les manipuler. L'analyseur Microsoft XML de Windows CE prend totalement en charge le DOM conformément aux recommandations du W3C. En outre, il dispose des extensions Microsoft permettant d'accéder aux informations d'espace de noms et de données tapées, de créer des nœuds par type, et ainsi de suite. L'exemple suivant est un script qui charge un document XML contenant les informations de contact et utilise les critères spéciaux XSL pour afficher le numéro de téléphone du contact avec le nom "Jacques Cartier" :

function showPhone()
{
 var root = Contacts.documentElement;
 var selectedElems = root.selectNodes("CONTACT[NAME='Jacques Cartier']");
 var billElem = selectedElems.item(0);
 var phone = billElem.childNodes.item(3).nodeTypedValue;
 alert("Le numéro de téléphone de Jacques Cartier est le " + phone);
}

La méthode selectNodes utilise les critères spéciaux XSL pour extraire une liste de nœuds. Dans ce cas précis, le script recherche tous les éléments CONTACT qui possèdent un élément NAME dont la valeur est "Jacques Cartier". Comme seul un élément y correspond, selectNodes renvoie une liste de nœuds de longueur une.

Mise en forme de données complexes pour la présentation

MSXML sur Windows CE offre également une prise en charge de XSL, et permet un affichage plus complexe des données XML. Par exemple, les informations de contact précédentes peuvent être affichées dans un format de tableau simple. La première tâche consisterait à créer une feuille de style XSL :

<xsl:stylesheet xmlns:xsl="uri:xsl">
 <xsl:template match="/">
 <H3>Contacts</H3>
 <TABLE BORDER="1" CELLPADDING="1" CELLSPACING="0">
 <TR>
 <TD BGCOLOR="#C0C0C0"><B>Nom</B></TD>
 <TD BGCOLOR="#C0C0C0"><B>Téléphone</B></TD>
 <TD BGCOLOR="#C0C0C0"><B>Adresse électronique</B></TD>
 </TR>
 <xsl:for-each select="CONTACTS/CONTACT" order-by="EMAIL">
 <TR>
 <TD><I><xsl:value-of select="NAME"/></I></TD>
 <TD><xsl:value-of select="PHONE"/></TD>
 <TD><xsl:value-of select="EMAIL"/></TD>
 </TR>
 </xsl:for-each>
 </TABLE>
 </xsl:template>
</xsl:stylesheet>

Cette feuille de style crée un tableau et utilise les valeurs des éléments XML sélectionnés pour renseigner le tableau. La feuille de style trie également les informations par nom d'adresse électronique (en utilisant l'attribut order-by sur l'élément xsl:for-each). Notez que l'ordre dans lequel sont affichées les informations de contact est différent du document XML original.

Cette feuille de style peut être appliquée au document XML par le modèle d'objet XML, qui est un ensemble d'interfaces de programmation d'application (API) permettant l'interaction avec les éléments de l'arborescence structurée XML. La méthode transformNode sur IXMLDOMNode passe dans un arbre XSL et utilise cet arbre pour transformer un nœud XML en une chaîne de résultats. Dans le cas suivant, cette chaîne sera une chaîne HTML qui sera insérée dans le document courant :

function showContacts()
{
 document.write(Contacts.transformNode(ContactsSS.documentElement);
}

Le script ci-dessus affiche ce qui suit dans le navigateur :

formattage du xml

XMLHTTP

Avec l'objet XMLHTTP, l'arbre XML lui-même peut être envoyé comme un objet. Dans le script suivant, un objet XMLHTTP est créé et envoie un arbre XML nommé "template" vers l'emplacement du serveur :

var httpOb = new ActiveXObject("Microsoft.XMLHTTP");
httpOb.Open("POST","http://myServer/postContact.asp", false);
var contact = template.XMLDocument.documentElement;
contact.childNodes.item(0).text = contactName.value;
contact.childNodes.item(1).text = contactPhone.value;
contact.childNodes.item(2).text = contactEmail.value;
httpOb.send(template.XMLDocument);

Instanciation d'objets COM via XSL

Windows CE prend en charge l'instanciation d'objets COM, tels que les contrôles ActiveX, par l'interface de script XSL. Le script suivant montre l'instanciation d'un objet COM fictif, "MyCorp" :

<xsl:script>function TestCOMObject() 
{ 
 var Obj1 = new ActiveXObject("MyCorp.MyComponent"); 
 var y = Obj1.Process(); // Créer un nouvel objet COM et l'utiliser
 // pour prendre en charge le traitement supplémentaire.
 return y; 
}
</xsl:script> 



Dernière mise à jour le mardi 6 février 2001



Pour en savoir plus
Afficher:
© 2014 Microsoft