|
XML et les butineurs grand public : le point en temps réel
|
Emmanuel
Lazinier
Création de la page : 2000-07-03
Dernière mise à jour : 2002-03-26
Dans cette rubrique nous nous proposons de chroniquer
en temps réel la manière dont XML est traité par
les butineurs grands public.
Nous nous efforcerons dans la mesure du possible de tenir cette page
à jour à mesure de l'évolution de la situation. Si
vous constatez des inexactitudes à corriger, des lacunes à
combler, ou tout simplement des évolutions à prendre en compte,
merci de
nous en faire part sans tarder.
Microsoft Internet Exploreur 5 "natif"
Microsoft Internet Exploreur 5 (MSIE5 pour le intimes), apparu en mars
1999, a été le premier butineur grand public XML-apte. A
son apparition un certain nombre de spécifications de la "galaxie"
XML, et tout particulièrement le langage de transformation appelé
depuis XSLT (qui à l'époque
n'était pas encore distingué de
XSL) n'étaient pas encore arrivées à maturité.
A mesure que celles-ci se sont stabilisées, il était donc
naturel qu'apparaissent des divergences entre l'implémentation initiale
de Microsoft et les recommandations finales du W3C. Ces divergences étaient
la rançon de la précocité. Elles étaient en
quelque sorte le prix à payer pour que nous puissions commencer
à jouer si tôt avec XML.
L'implémentation de XSLT dans
MSIE5 (MSXML 2.0 à 2.5), alias "WD-xsl"
L'ensemble de la documentation relative à XML tel que traité
dans Microsoft Internet Exploreur 5 "natif" (de MSXML 2.0 livré
avec MSIE5, à MSXML 2.5 livré avec Windows 2000) était
(et est toujours) disponible sous la forme d'un Kit
de documentation Microsoft XML 2.5 SDK téléchargeable
L'implémentation de XSLT dans MSIE5 était conforme dans
ses grandes lignes au projet (Working Draft) XSL du 16
décembre 1998 (et c'est pour cette raison qu'elle est désignée
par certains auteurs sous le vocable de "WD-xsl"). Elle différait
du Working Draft sur quelques points, résumés sur
le kit de documentation MSXML 2.5 à la page XSL Working
Draft Conformance Notes . En particulier :
-
Les règles modèle (templates) dites "internes"
qui auraient dû être implicites et qui ne l'étaient
pas -- voir dans la documentation la page Simulating Built-in Templates.
-
Le traitement des espaces blancs (white space) -- voir dans la documentation
la page Controlling White Space.
(Voir aussi sur notre site Les Trucs et
Astuces XML au paragraphe Eviter
les pièges du moteur XSLT de MSIE5.)
L'implémentation de XSLT dans MSIE5 comportait aussi, entre autres,
les extensions propriétaires MS suivantes :
-
les éléments <xsl:eval>
et <xsl: script> pour l'insertion
de scripts exécutables pendant la transformation XSLT
-
l'attribut expr dans les éléments <xsl:if>
et <xsl:when> pour l'évaluation
d'expressions boléennes formulées en script
Bogues et problèmes connus
L'analyseur (parser) XML MSXML 3.0
de Microsoft, et son intégration éventuelle dans Internet
Exploreur 5
Ainsi que mentionné plus haut, après la sortie de
MSIE5, la spécification XSL a été scindée en
deux parties :
Afin de permettre à MSIE5 d'être mis au goût du
jour, Microsoft a proposé en téléchargement
dès janvier 2000 un nouvel analyseur (parser) XML (MSXML
2.6) conforme à la spécification
XSLT 1.0. Après plusieurs versions intermédiaires, une
version "production" de cet analyseur (MSXML 3.0 -- celui-là même
qui devait être par la suite intégrée à MSIE6),
était publiée le 27 octobre 2000. Elle était (et est
toujours) séparément
téléchargeable, ainsi que sa documentation, le Kit
de documentation Microsoft XML SDK 3.0 (près de
700 pages imprimées !). (Voir aussi en français MS
XML 3.0 & MS XML SDK 3.0 Final ; MSXML
3.0 .cab File Redistribution Package.)
Note 1. Attention à
ne pas confondre ce SDK avec celui qui documente Microsoft
Internet Exploreur 5 "natif, et dont l'appellation fort semblable peut
aisément prêter à confusion.
Note 2. Une mise à jour
de MSXML 3.0, MSXML
3.0 Service Pack 1, a été proposée au téléchargement
le 16 avril 2001. Elle corrige un
certain nombre de bogues. Voir aussi Les
nouveautés de l'analyseur XML version 3.0 Service Pack 1 de Microsoft
Note 3.La documentation relative
à MSXML 3.0 est également consultable en ligne sur le site
MSDN dans le XML
Developer's Guide. Voir en particulier :
MSXML 3.0 et MSIE5 : une cohabitation complexe
Si vous disposiez de MSIE5 et que vous installiez MSXML 3.0 (jusques et
y compris la version Service
Pack 1) sur votre machine, cette installation provoquait l'écriture
dans votre répertoire système de nouvelles DLL correspondant
au nouvel analyseur. Mais elle n'écrasait pas la DLL (msxml.dll)
qui correspondait à l'analyseur d'origine de MSIE5.
Vous aviez alors le choix :
Microsoft a tardivement (septembre 2001 ?) publié
des informations (PRB:
Applications Errors Occur After You Run Xmlinst.exe on Production Servers)
qui tendaient à dissuader d'installer MSXML 3 sous MSIE5 en
mode "replacement" au moyen de l'exécutable xmlinst.exe :
cette installation pouvait rendre votre système instable et provoquer
le plantage de certaines applications ; elle mettait votre ordinateur dans
un état "non soutenu" (unsupported) ! Et peu de temps après
(21 septembre 2001) elle proposait le MSXML
Parser 3.0 Service Pack 2, qui, lui, ne connaît pas de mode "côte
à côte", et ne peut s'installer qu'en mode "remplacement".
C'est donc cette dernière version qu'il convient d'installer si
vous ne souhaitez pas (ou ne pouvez pas) installer MSIE6
sur votre machine et que vous désirez néanmoins disposer
d'un analyseur pleinement conforme aux spécifications XSLT 1.0 et
XPath 1.0.
Note 1.
Le nouvel analyseur MSXML 3.0 est rétrocompatible avec l'ancien
(MSXML 2.0 à 2.5). Ce qui veut dire si vous disposez de MSIE5
avec MSXML 3.0 installé en mode "remplacement" (ou tout simplement
de MSIE6, qui comporte MSXML 3.0 en standard) vous pouvez visualiser aussi
bien des fichiers XML associés à une feuille de style XML
:
La différence étant faite par la déclaration d'espace
de nom en tête de la feuille de style xslt :
-
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
pour les feuilles de style MSIE5 "natif"
-
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"> pour les feuilles de style XSLT 1.0
Note 2. Microsoft propose en téléchargement
l'outil XSL
to XSLT Converter pour convertir les feuilles de style écrites
pour MSIE5 "natif" en feuilles de style XSLT 1.0
Note 3. L'installation sur votre machine
de MSXML 3.0 et du SDK nécessite que Windows
Installer (MSI) ait été préalablement installé.
Consulter aussi :
Internet Explorer 6
Disponible depuis le 27 août 2001 (il l'était depuis le 28
mars 2001 en version beta), Internet
Explorer 6 comporte en standard, comme prévu, l'analyseur
MSXML 3.0 présenté comme entièrement conforme
aux spécifications XSLT,
XPath et et DOM1
du W3C. En ce qui concerne les autres spécifications du W3C, on
remarque qu'IE6 s'annonce aussi pleinement conforme à CSS1.
Quant à MathML et SVG,
leur implémentation est reportée à plus tard : il
faudra en attendant se contenter de plug-in...
Note. L'analyseur XML de MSIE6 est toujours
rétrocompatible avec celui de MSIE5
"natif", autrement dit les feuilles de style écrites en "WD-xsl"
y fonctionnent toujours.
Voir aussi :
Le "Microsoft XML Core Services (MSXML) 4.0"
Disponible depuis le 13 avril 2001, mise à jour le 16 juillet 2001,
parvenue le 15 octobre 2001, sous la nouvelle dénomination
de "Microsoft XML Core Services (MSXML) 4.0", au
stade "production quality", et enfin proposée depuis le 14 mars
2002 sous la forme d'un MSXML4
SP 1 (Microsoft XML Core Services), la version 4.0 de l'analyseur XML
de Microsoft se distingue de la précédente essentiellement
par le support de la recommandation XML
Schema du W3C (promulguée le 2 mai 2001). Contrairement à
MSXML 3.0, ce nouvel analyseur ne peut pas s'intégrer dans
MSIE : il ne peut fonctionner qu'en mode "côte à côte"
(side by side), et ne peut donc être invoqué que par
programme, en utilisant les identificateurs d'objet correspondants. (Voir
ci-dessous Comment lancer des transformations XSLT faisant
appel aux différentes versions de l'analyseur Microsoft.).
L'exécutable d'installation de MSXML 4.0 installe à la
fois les DLL et le kit de documentation (SDK) correspondant, qui sera dès
lors accessible par le menu Démarrer/Programmes/MSXLML 4.0.
Voir aussi :
Comment lancer des transformations XSLT faisant appel
aux différentes versions de l'analyseur Microsoft
La différence entre les deux scripts précédents réside
simplement dans l'appel de l'objet "document XML" :
-
WScript.CreateObject("Microsoft.XMLDOM") ou WScript.CreateObject("MSXML.DOMDocument")
pour MSXML 2.5
-
WScript.CreateObject("MSXML2.DOMDocument.3.0")
pour MSXML 3.0
Note 1. Si
la feuille de transformation utilise XSLT
1.0, et non pas l'implémentation
XSL(T) de IE5 "natif", le script proposé ci-dessus a l'inconvénient
de générer systèmatiquement une déclaration
d'encodage UTF-16, quel que soit l'encodage spécifié
dans l'instruction <xsl:output>. Si
nous voulons pouvoir générer la déclaration d'encodage
ISO-8859-1 qui convient à nos documents en français,
nous aurons donc intérêt à modifier notre script en
y remplaçant la méthode transformNode
par la méthode transformNodeToObject
:
Note 2. La méthode transformNodeToObject
n'a qu'un inconvénient : elle suppose que le résultat de
la transformation soit un fichier xml bien formé. Elle ne
peut donc fonctionner correctement si l'on a paramétré la
feuille de transformation de manière à obtenir en sortie
un fichier html (<xsl:output method="html">
ou texte (<xsl:output method="text">:-(
Heureusement, Laurent Kempé
nous a concocté un script qui obvie à
ce problème (pour MSXML 4.0, mais vous pouvez la modifier pour
MSXML 3.0) : qu'il en soit remercié :-)
Netscape Navigator 6
Netscape Navigator
6, disponible depuis avril 2000, était annoncé comme
compatible XML. Hélas, à ce jour nous n'avons pas encore
réussi :
Ne manquez pas de nous informer si vous
trouvez des informations qui infirment ce triste constat.
Note. Mozilla,
dans sa version Milestone 18 (12 octobre 2000) propose une
variante, disponible sous Windows et Linux, sachant exploiter MathML, SVG
and XSLT. Elle est assez peu stable (sous Windows) mais parvient néanmoins
à lire convenablement certaines pages XML + XSLT (sans rendu des
styles CSS toutefois). Téléchargement.
Voir aussi...
Retour à la page d'accueil.