Partager via


LINQ to XML et autres technologies XML

Cet article compare LINQ to XML aux technologies XML suivantes : XmlReader, XSLT, MSXML et XmlLite. Ces informations peuvent vous aider à déterminer les technologies à utiliser.

Pour une comparaison de LINQ to XML au modèle DOM (Document Object Model), consultez LINQ to XML et DOM.

LINQ to XML et XmlReader

XmlReader est un analyseur rapide, à sens unique et sans mise en cache.

LINQ to XML est implémenté sur XmlReader, et ils sont étroitement intégrés. Toutefois, vous pouvez également utiliser XmlReader directement.

Par exemple, supposons que vous créez un service Web qui analyse des centaines de documents XML par seconde et que les documents ont la même structure, ce qui signifie que vous n’avez qu’à écrire une seule implémentation du code pour analyser le code XML. Dans ce cas, vous voudriez probablement utiliser XmlReader directement.

En revanche, si vous créez un système qui analyse de nombreux documents XML plus petits, et chacun d’eux est différent, vous souhaitez tirer parti des améliorations de productivité que LINQ to XML fournit.

LINQ to XML et XSLT

LinQ to XML et XSLT fournissent des fonctionnalités de transformation de document XML étendues. XSLT est une approche déclarative basée sur des règles. Les programmeurs XSLT avancés écrivent XSLT dans un style de programmation fonctionnel qui met l’accent sur une approche sans état. Les transformations peuvent être écrites à l’aide de fonctions pures implémentées sans effets secondaires. Cette approche basée sur des règles ou fonctionnelle n’est pas familière à de nombreux développeurs et peut être difficile et fastidieuse à apprendre.

XSLT peut être un système productif qui génère des applications hautes performances. Par exemple, certaines grandes entreprises web utilisent XSLT comme moyen de générer du code HTML à partir de XML qui a été extrait de différents types de magasins de données. Le moteur XSLT managé compile XSLT en code CLR (Common Language Runtime) et fonctionne encore mieux dans certains scénarios que le moteur XSLT natif.

Toutefois, XSLT ne tire pas parti des connaissances C# et Visual Basic dont disposent de nombreux développeurs. Les développeurs doivent écrire du code dans un langage de programmation différent et complexe. L’utilisation de deux systèmes de développement non intégrés tels que C# (ou Visual Basic) et XSLT entraîne des systèmes logiciels plus difficiles à développer et à gérer.

Une fois que vous êtes devenu compétent dans l’utilisation d’expressions de requête LINQ to XML, les transformations LINQ to XML sont une technologie puissante qui est facile à utiliser. En fait, vous formez votre document XML à l’aide de la construction fonctionnelle, en extrayant des données à partir de différentes sources, en construisant dynamiquement des XElement objets et en assemblant l’ensemble dans une nouvelle arborescence XML. La transformation peut générer un document complètement nouveau. La construction de transformations dans LINQ to XML est relativement simple et intuitive, et le code résultant est lisible. Cela réduit les coûts de développement et de maintenance.

LINQ to XML n’est pas destiné à remplacer XSLT. XSLT est toujours l’outil de choix pour les transformations XML complexes et centrées sur le document, en particulier si la structure du document n’est pas bien définie.

XSLT a l’avantage d’être une norme W3C (World Wide Web Consortium). Si vous avez besoin d’utiliser uniquement des technologies qui sont des normes, XSLT peut être plus approprié.

XSLT est XML et c’est pourquoi il peut être manipulé par programmation.

LINQ to XML et MSXML

MSXML est la technologie COM pour le traitement du code XML inclus dans Microsoft Windows. MSXML fournit une implémentation native du DOM avec prise en charge de XPath et XSLT. Il contient également l’analyseur basé sur les événements SAX2 sans mise en cache.

MSXML fonctionne correctement, est sécurisé par défaut dans la plupart des scénarios et est accessible dans un navigateur pour effectuer un traitement XML côté client dans les applications de style AJAX. MSXML peut être utilisé à partir de n’importe quel langage de programmation prenant en charge COM, notamment C++, JavaScript et Visual Basic 6.0.

MSXML n’est pas recommandé pour une utilisation dans le code managé basé sur le CLR.

LINQ to XML et XmlLite

XmlLite est un analyseur de type extraction, avant uniquement et sans mise en cache. Les développeurs utilisent principalement XmlLite avec C++. Il n’est pas recommandé aux développeurs d’utiliser XmlLite avec du code managé.

L’avantage principal de XmlLite est qu’il s’agit d’un analyseur XML léger et rapide sécurisé dans la plupart des scénarios. Sa surface de menace est petite. Si vous devez analyser des documents non approuvés et que vous souhaitez vous protéger contre les attaques telles que le déni de service ou l’exposition de données, XmlLite peut être une bonne option.

XmlLite n’est pas intégré à Language-Integrated Query (LINQ). Elle ne produit pas les améliorations de productivité du programmeur qui sont la force de motivation derrière LINQ.

Voir aussi