BizTalk Utilities CV ,   Jobs ,   Code library  
 
 
Lê isto em Português Lea esto en Español Lire cet article en Français Read this in English

Apprendre XML

Qu'est ce que vous devez déjà savoir ?
Qu'est ce qu'est XML ?
Comment fonctionne XML ?
XML et les navigateurs web
Les Entités, les Eléments et les Attributs
Comment programmer avec XML
La communication avec les serveurs en utilisant HTTP Request
Comment travailler avec ADO et XML
Bien joué !

Qu'est ce que vous devez déjà savoir ?

Pour lire et comprendre ceci, une connaissance de base d'HTML serait utile. Pour comprendre le code fourni, vous devez connaître VB ou ASP.

Qu'est ce qu'est XML ?

XML est l'acronyme d'eXtensible Markup Language. Il a été approuvé par le World Wide Web Consortium (W3C) en février 1998.

XML n'est pas réellement un nouveau langage, c'est un méta-langage qui est utilisé pour définir d'autres langages.

XML crée des documents qui sont bien structurés et par extension tous les langages basés sur XML sont aussi correctement structurés, ce qui signifie que les données XML sont plus faciles à utiliser.

Ainsi, dans la mesure où il permet aux sociétés et à leurs ordinateurs de communiquer plus facilement, XML est le socle d'un ensemble de nouvelles façons de communiquer au travers d'Internet.

XML est utilisé pour créer d'autres langages de balisage

XML est utilisé pour créer d'autres langages de balisage dont l'un des plus connus est XSL.
La relation entre XML et XSL est importante. Elle l'est d'autant plus que si XML est destiné à structurer les données, XSL est utilisé pour transformer les données XML en un format de données utilisable. Par exemple, XSL peut être utilisé pour mettre en couleur des données XML, ou pour les transformer.

Le développement du "standard" XML est dirigé par le W3C.

Qu'est ce que le W3C (World Wide Web Consortium) ?

Le W3C a été fondé en 1994. Son but est de développer des protocoles communs à travers un "consortium industriel international" http://www.w3.org/.

Au W3C, vous pouvez trouver :

  • un archivage de toute l'information sur le World Wide Web, disponible pour les développeurs et les utilisateurs.
  • les références concernant l'implémentation du code de différents "standards".
  • ainsi que différents prototypes et exemples d'applications démontrant l'usage des nouvelles technologies encouragées par le W3C.

Le W3C est un ensemble qui regroupe les différentes parties intéressées par la valorisation de nouvelles technologies Internet. Son processus de travail, presque rigide et collectif, vise à prendre des décisions consensuelles (il circule toutefois sur le Web des histoires sur les moyens coercitifs utilisés dans certains groupes de travail), même si le résultat final n'est pas statique et arrêté dans le temps.

Comment travaille le W3C ?

Au départ, quelqu'un (un groupe, une société, une personne) soumet au W3C, une technologie ou un sujet concernant un point technique. Après de NOMBREUSES discussions et consultations, un document de travail est proposé. Avec de la chance et beaucoup de travail, on arrive à l'achèvement d'une recommandation. A ce stade, la technologie est considérée comme prête pour une diffusion en vue d'un usage industriel.

Les Notes

Les Notes sont juste des idées - il n'y a aucun engagement sur le fait qu'elles soient suivies d'effet.

Les Documents de travail

Ils représentent le travail en cours - ils témoignent du fait qu'un groupe travaille activement sur le sujet concerné au sein du W3C.

Les Recommandations proposées

Un consensus apparaît au sein du groupe de travail. Il est soumis à l'avis de tous.

Les Recommandations

L'idée qui avait débutée en tant que Note est maintenant devenue un document "officiel". Pour le W3C, la technologie concernée est prête pour être utilisée.

Ce que n'est pas le W3C ?

Le W3C n'est pas un "agent de police du Web". Il ne contraint pas au respect des engagements pris et des technologies élaborées. Chacune des parties impliquées peuvent (elles le font parfois) "étendre" ou "améliorer" ce qui a déjà été développé.

Pour en savoir plus

Pour tout connaître des activités et des projets du W3C, vous pouvez vous rendre à l'adresse suivante : http://www.w3.org/Consortium/Activities/ .

Comment fonctionne XML ?

XML peut non seulement contenir vos données, mais aussi la structure et une classification de l'information à l'intérieur de votre document. En utilisant XML, votre document transporte donc de l'information à propos de l'information qu'il contient.

Ceci est possible parce qu'avec XML vous pouvez définir vos propres éléments de balisage. C'est ce qui en fait un meilleur langage qu'HTML qui n'a à sa disposition qu'un nombre limité d'éléments destinés à l'affichage des données - XML vise plus loin que le seul affichage des données.

Créer de nouveaux éléments XML

Tant que vous suivez certaines règles, vous pouvez facilement créer de nouveaux éléments XML.

Les éléments XML ressemblent souvent aux éléments HTML. Voici quelques exemples :

<titre_livre>XML PROGRAMMING WITH VB AND ASP</titre_livre>
<auteur>Mark Wilson and Tracey Wilson</auteur>
<editeur>Manning Publications</editeur>
<annee_publication>2000</annee_publication>
<prix>$1,000,000</prix>
<ISBN> 1884777872</ISBN>

Quelles sont les règles d'XML ?

XML possède dix règles de base qui ressortent des objectifs fixés par le W3C :

  • XML doit être directement utilisable sur Internet.
  • XML doit pouvoir supporter une large variété d'applications.
  • XML doit être compatible avec SGML.
  • Il doit être facile d'écrire des programmes qui puissent traiter les documents XML.
  • Le nombre des caractéristiques optionnelles d'XML doit être minimum, idéalement il doit même être nul.
  • Les documents XML doivent être humainement lisibles et raisonnablement clairs.
  • La construction de documents XML doit pouvoir être préparée rapidement.
  • Elle doit être formelle et concise.
  • Les documents XML doivent être facile à créer.
  • La concision dans les éléments de marquage est sans importance.

XML et les navigateurs

Il est important d'insister ici sur le fait que tout ceci n'est qu'un début. Peu de sites Web utilisent encore XML, pour la simple et bonne raison que peu de navigateurs le supporte.

Microsoft Internet Explorer 4.0, 5.0, 5.5 et la version prochaine version 6.0 supportent tous XML.

Netscape supporte XML dans son Communicator/Navigator 6.0, ainsi qu'RDF (Ressource Description Format) qui est présenté par Netscape comme "une complète intégration de l'information sur votre plate-forme".

RDF

RDF est une application XML qui est idéalement adaptée à la manipulation de données. Grâce au support de Netscape et à l'Open Directory Project (http://www.dmoz.org/), RDF est utilisé pour cataloguer l'Internet.

Les Entités, les Eléments et les Attributs.

Les Eléments

Les Eléments ressemblent à ceci :

<LIVRE>...<TITRE>XML programming for VB and ASP developers</TITRE>...</LIVRE>

Les Attributs

Les Attributs sont des parties ou des propriétés des éléments :

<LIVRE TITRE="XML programming for VB and ASP developers">...</LIVRE>

Une intéressante similarité entre les attributs et les éléments est que cet élément <LIVRE> peut aussi contenir un attribut éditeur :

<LIVRE EDITEUR="Manning">XML programming for VB et ASP developers</LIVRE>

Rappelez vous toutefois que les attributs ne peuvent être hiérarchiques - ils ne peuvent contenir de sous-éléments. Cependant, vous pouvez changer les attributs en éléments. Pour ce faire, vous utiliserez :

<Publication>
         <Livre>XML programming for VB and ASP developers</Livre>
         <Editeur>Manning</Editeur>
</Publication>

Les Entités

N'importe quel fichier (ou ressource) qui peut être "inclu" dans un fichier XML est une entité. Une entité est aussi utilisée pour faire référence à la représentation d'un caractère spécial, à une chaîne de caractères et à une inclusion.

Voici un exemple qui utilise une entité pour remplacer une chaîne de caractères :

<!ENTITY NomDuLivre "XML programming for VB and ASP developers">

De sorte que maintenant vous pouvez utiliser l'entité &NomDuLivre ; dans un document et à chaque fois que vous y ferez référence, la chaîne de caractères "XML programming for VB and ASP developers" lui sera substituée. Ce qui est similaire à une constante VB.

Comment programmer avec XML

Voyons quelques exemples de programmation avec XML.

Créer des objets XML

Les développeurs ASP peuvent utiliser la syntaxe suivante pour créer, de manière programmatique, un nouvel objet DOMDocument - c'est la même syntaxe CreateObject que celle utilisée pour créer d'autres objets :

<%
Dim xmlDoc
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
%>

Les programmateurs VB peuvent utiliser soit le code CreateObject vu ci-dessus, soit ajouter dans leur projet, une référence à un objet "Microsoft XML, version 3.0" et l'utiliser :

Dim xmlDoc As New DOMDocument

Comment obtenir les objets XML de Microsoft sur votre PC

Pour se servir de ces exemples de codes qui utilisent les objets XML de Microsoft (comme DOMDocument), vous devez premièrement ajouter une référence à un objet "Microsoft XML, version 3.0" dans votre projet - naturellement vous devez aussi avoir installé ces objets sur votre ordinateur de développement et sur les systèmes visés par la distribution de votre application.

Il existe deux manière d'installer ces objets sur vos systèmes. Vous pouvez soit installer IE5/5.5 (et prochainement 6.0), soit étendre les capacités d'IE4 à l'aide des fichiers de mise à jour que vous pourrez télécharger à partir du site de Microsoft.

Charger des éléments XML dans une liste de choix

Voici comment vous pouvez remplir une liste de choix déroulante avec le contenu d'un fichier XML.

Private Sub cmdRefresh_Click()
    Dim xmlCustomers As MSXML.DOMDocument
    Dim xmlNode As MSXML.IXMLDOMNode
    lstCustomers.Clear
    'on appelle une DLL pour remplir un tableau avec les valeurs
    Set xmlCustomers = objCustomer.GetCustomerList()
    For Each xmlNode In xmlCustomers.documentElement.childNodes
        lstCustomers.AddItem xmlNode.childNodes(1).firstChild.nodeValue & "_
        " &xmlNode.childNodes(2).firstChild.nodeValue
        lstCustomers.ItemData(lstCustomers.NewIndex) =_
        xmlNode.childNodes(0).firstChild.nodeValue
    Next xmlNode
End Sub

Accéder à l'XML

Si vous voulez accéder à l'XML dans votre DOMDocument, vous pouvez utiliser le code suivant avec ASP :

Response.Write(xmlDoc.xml)

et avec VB, vous utiliserez :

MsgBox xmlDoc.xml

Gérer et corriger les erreurs

La plus simple façon de corriger vos erreurs est d'utiliser la propriété "xml" d'un objet DOMDocument et de voir si vous avez réussi à charger votre document. Si celle-ci ne retourne ou n'affiche rien c'est qu'il y a eu une erreur lors du chargement. Utilisez alors la ligne de code suivante pour voir la dernière erreur :

xmlDoc.parseError.reason

La communication avec les serveurs en utilisant HTTPRequest

Une des chose intéressante à propos de l'objet XMLHTTP, réside dans la possibilité de "poster" des données vers un serveur HTTP ou d'obtenir des données XML à partir d'un serveur HTTP.

C'est une façon facile d'acquérir une indépendance vis à vis du serveur dans la mesure où votre programme ne se préoccupe pas de savoir avec quel serveur HTTP il communique ou quel est l'OS de ce dernier - la seule chose nécessaire pour le serveur HTTP est sa capacité à recevoir des appels HTTP tels que POST ou GET et de passer ensuite ces appels à une forme quelconque de programme (ASP, CGI, Java Servlets, etc...).

Ainsi, on peut assimiler l'utilisation d'XML via les appels HTTP comme une sorte de "middleware" ou de super glue qui permet de lier ensemble des systèmes distincts.

Dans notre cas, vous allez ouvrir une connexion vers le serveur web hôte (le Personnal Web Serveur 1.0a) de votre PC et utiliser ensuite un fichier ASP qui vous donnera une réponse.

Pour établir la connexion, nous utiliserons l'objet XMLHTTP qui est mis à notre disposition avec IE5. A la base, on ouvre une connexion "POST" vers notre serveur web (ce que font d'ailleurs tous les navigateurs web) et nous utilisons ensuite cette connexion. Autrement dit, nous "parlons" au fichier PEOPLEVB.ASP et celui-ci nous retourne notre liste de choix dans un format XML.

Recevoir un objet XML DOMDocument avec VB

Dans la partie VB de cet exemple, le code pour se connecter au serveur est le suivant :

'On crée les objets
Dim xmlHttp As new XMLHTTPRequest
Dim xmlDoc As DOMDocument
'On ouvre la connexion POST (ou GET) avec le serveur web
xmlHttp.Open "POST", "http://localhost/xmlcode/demo.asp", False
'On établit la connexion
xmlHttp.Send
'On reçoit la réponse - remarquez que différents types de réponse
'(binaire, texte, etc...) sont supportés.
Set xmlDoc = xmlHttp.responseXML

Du côté serveur, nous utiliserons un code ASP dans le fichier demo.asp qui vient d'être appelé. Assurez vous que votre fichier ASP établisse bien le ContentType sur "text/xml" et pour retourner l'XML vers le client, utilisez le code suivant :

<%
    'On déclare un objet variant
    Dim xmlDoc
    'On place le DOMDocument dans l'objet xmlDoc
    Set xmlDoc = Server.CreateObject("MSXML.DOMDocument")
    'On charge le document XML
    xmlDoc.load Server.MapPath("people.xml")
    'On établit le type de la réponse
    Response.contenttype = "text/xml"
    'On retourne vers le client le DOMDocument que l'on a chargé plus haut
    response.write xmlDoc
%>

Maintenant vous avez une simple application VB, qui communique avec un fichier ASP situé sur un serveur et qui reçoit, en réponse, un DOMDocument.

Comment travailler avec ADO et XML

Si vous utilisez ADO 2.1, vous pouvez sauvegarder votre recordset dans un fichier XML en utilisant la méthode Save sur l'objet ADO recordset.

La méthode Save accepte deux arguments, FileName, et PersistFormat pour lequel vous pouvez utiliser "adPersistADTG" pour créer un format binaire et "adPersistXML" pour créer un format XML.

Essayez ce code VB pour sauvegarder votre recordset ADO en XML :

Private Sub cmdSaveAdoFile_Click()
    Dim People As ADODB.Recordset
    Dim ObjConn As New ADODB.Connection
    'On ouvre une connexion ODBC avec la base de données
    ObjConn.Open "VBXML"
    'On exécute une requête SELECT sur la base de données
    Set People = ObjConn.Execute("select * from People")
    'On sauvegarde le recordset sous forme XML
    People.Save "c:\adodemo.xml", adPersistXML
End Sub

Maintenant, pour charger ce fichier XML dans un recordset ADO, vous pouvez utiliser ce code pour un bouton load :

Private Sub cmdLoadAdoFile_Click()
    Dim People As ADODB.Recordset
    Set People = New ADODB.Recordset
    'On ouvre le fichier XML et on le charge
    People.Open "c:\adodemo.xml", "Provider=MSPersist"
    'On affiche le nombre d'enregistrements dans un message 
    MsgBox People.RecordCount
End Sub

Voilà, c'est tout ce qu'il y avait faire. De sorte que vous savez maintenant comment sauvegarder et charger un recordset dans un fichier XML en quelques lignes de code.

Bien joué !

Vous êtes désormais en bonne voie pour comprendre et travailler avec XML. Aussi, n'hésitez pas à lire les autres exemples de la section XML du site.


Traduction : Philippe Janvier

 

Recent Jobs

Sr. Software Engineer - Analytics
Immediate Mainframe openings for Ch
Immediate TANDEM-TAL openings for C
Immediate ASP.NET/C# Openings for C
Sr. Software Engineer

View all Jobs (Add yours)
View all CV (Add yours)



international conference call
water softener
Teleconference
Host Department NOLIMIT Web Hosting
MSN
sunglasses
it help desk


    Email TopXML  

Front Page Daily Stuff TopXML Forum XML blogs XML Newsgroups BizTalk Biztalk Utilities Biztalk Utilities Tutorial B2B SAP XML Microsoft .NET Dotnet System XML Soapformatter SQLXML XMLserializer XQuery PHP PHP SimpleXML PHP XML Dom PHP XML RPC PHP XSLT Java Java Java XML Xalan Microsoft ASP ASP Schemas XML SQL Server XML XMLDom XSL XSL Tutorial XSLT Stylesheets General Javascript CSS XHTML WAP