> Tech > Une autre solution : XSLT

Une autre solution : XSLT

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Le développement de XML avait comme objectif, entre autres, de permettre l'échange de données entre différents types de stockage. Si l'on écrit des procédures stockées visant à  exporter des données à  partir de SQL Server, peut-être au moyen de DTS (Data Transformation Services), on voudra convertir le XML dans le

format
cible requis, en utilisant le support
XML de SQL Server. La manière dont
Microsoft met en oeuvre XML dans SQL
Server ne rend pas cette conversion facile
pour certains types de structures
de données, même si c’est faisable.
De nombreuses architectures de
projet exigent une solution exclusivement
SQL Server, pour la production
de XML. Mais il est toujours important
de voir les choses sous un champ plus
large. Si, par exemple, vous avez un
frontal VB (Visual Basic) ou si vous utilisez
XSLT (Extensible Style Language
Transformations) pour transformer les
données, il pourrait être plus facile de
renvoyer les données XML sous forme
de XML « plat » (non hiérarchique),
puis de les convertir en XML hiérarchique
ailleurs. Pour illustrer cette
technique, voyons brièvement une solution
qui utilise XSLT.
Pour générer des données XML
plates, on peut utiliser une instruction
FOR XML RAW T-SQL simple, comme
le montre le listing 6. Si l’on exécute ce
code dans Query Analyzer, on obtient
le XML de la figure 8. Bien que le résultat
ne soit pas du XML hiérarchique, il
contient l’attribut supplémentaire
ReportsToEmployeeID, qui fournit l’information
hiérarchique. Les analyseurs
syntaxiques XML peuvent interpréter
cette information directement – en la
traitant comme simplement un autre
attribut – donc, il faut convertir le XML
plat en XML hiérarchique à  l’aide de
l’attribut ReportsToEmployeeID.
Les techniques récursives de XSLT
facilitent grandement la conversion. En
effet, XSLT offre de nombreux moyens,
d’efficacité variable, de convertir les
données. Le code que montre le listing
7
est un moyen possible, très court. Si
vous utilisez MS-XML 3.0 pour transformer
le XML de la figure 8 et le XSLT du
listing 7, vous obtenez la structure XML
que montre la figure 9 (quelque peu
mise en ordre par souci de clarté).
Le XSL a deux modèles. Le premier
correspond à  tous les noeuds de niveau
supérieur (c’est-à -dire, tous les noeuds
dans lesquels ReportsToEmployeeID
est égal à  EmployeeID). Le second modèle
évalue récursivement tous les
autres noeuds. Notez l’ajout des tags
et , grâce auxquels le
XML est bien formé. Pour plus d’informations
sur XSLT, voir le livre XSLT
Quickly par Bob Ducharme (Manning,
2001).

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010