Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. C# 8 et Visual Studio 2019
  3. XML
Extrait - C# 8 et Visual Studio 2019 Les fondamentaux du langage
Extraits du livre
C# 8 et Visual Studio 2019 Les fondamentaux du langage Revenir à la page d'achat du livre

XML

Présentation

XML (eXtensible Markup Language) est un langage de description de données conçu et standardisé par le W3C (World Wide Web Consortium) dont la première version de la spécification a été publiée au début de l’année 1998.

Le langage XML est un langage de balisage permettant de décrire des informations d’une manière structurée, cohérente et surtout portable. Le format est en effet basé sur du texte brut, ce qui autorise sa lecture sur tout type de support sans altération. Ces différentes qualités ont fait de XML un format de prédilection pour la transmission d’informations entre applications, voire entre systèmes.

Dans un document au format XML, chacune des données est représentée par une balise ou un attribut positionné dans une arborescence. Les balises peuvent donc être imbriquées de manière à faire apparaître une relation de parenté entre deux éléments. Les attributs permettent quant à eux de lier plusieurs informations à une même balise.

La structure des fichiers XML le classe dans la même catégorie que le langage HTML. Certains points le différencient pourtant fondamentalement de ce langage :

  • XML est un langage extensible, au contraire de HTML qui n’utilise qu’un...

Structure d’un fichier XML

Avant de voir comment manipuler ce format avec C# et la plateforme .NET, nous allons détailler les différents éléments de la structure d’un fichier XML.

1. Constituants d’un document XML

Un document XML peut être composé des types de blocs suivants :

Instructions de traitement

Les instructions de traitement permettent d’ajouter des informations destinées au processeur XML ou à tout autre programme dans le corps du document. Ces instructions doivent respecter une syntaxe particulière :

<?programme instruction ?> 

La première partie de cette instruction de traitement indique le nom du programme destiné à la traiter. La seconde partie fournit l’instruction à proprement parler.

Un document XML contient la plupart du temps une instruction de traitement spéciale indiquant la version du format XML qu’il utilise ainsi que le jeu de caractères utilisé pour l’encodage du document.

<?xml version="1.0" encoding="utf-8" ?> 

Commentaires

Comme avec C#, il est possible d’inclure des commentaires dans le code XML. Ceux-ci sont destinés aux utilisateurs, le plus souvent pour les aider à comprendre la structure ou le contenu du document. Ils sont ignorés par tout programme manipulant le code.

La syntaxe de définition de commentaires XML est identique à la syntaxe utilisée pour les commentaires HTML :

<!-- Ce texte est un commentaire ignoré par le processeur XML  --> 

Éléments

Les éléments sont constitués d’une balise ouvrante et d’une balise fermante. Ils peuvent contenir des données sous la forme d’une chaîne de caractères, d’un ou plusieurs autres éléments ou bien d’attributs. La syntaxe permettant de créer un élément XML est la suivante :

<nomElement>contenu</nomElement> 

Certaines règles doivent être respectées concernant les éléments :

  • Les noms d’éléments ne doivent ni contenir d’espace, ni débuter par xml, par un chiffre ou par un signe de ponctuation.

  • Les balises de début et de fin doivent avoir la même casse.

  • Les noms d’éléments doivent débuter après...

Manipuler un document XML

Le framework .NET expose deux API ayant pour objectif la manipulation de documents XML.

Le modèle DOM existe depuis les débuts du framework .NET et est basé sur les recommandations du W3C. Chaque balise, attribut ou contenu textuel formant le document XML est ainsi considéré comme un nœud d’une structure hiérarchique. La recherche d’un nœud avec cette API peut être manuelle ou utiliser la navigation XPath. Les fonctionnalités du modèle DOM sont implémentées dans les types de l’espace de noms System.Xml.

L’apparition de la version 3.5 du framework .NET a introduit LINQ to XML, qui utilise pour sa part une approche plus moderne. Les balises, attributs ou espaces de noms sont tous considérés comme des éléments qui peuvent exister indépendamment, ce qui permet de traiter aisément des fragments de code XML. Ces éléments peuvent être interrogés de la même manière qu’une base de données à l’aide de requêtes LINQ. Les types associés à cette API sont implémentés dans l’espace de noms System.Xml.Linq.

Les exemples exposés dans cette section sont réalisés à partir du fichier commandes.xml dont le contenu est le suivant :

<?xml version="1.0" encoding="utf-8"?> 
<Clients web="http://www.masociete.com/clients/web"> 
  <web:Client Id="ALFKI"> 
    <Societe>Alfreds Futterkiste</Societe> 
    <NomContact>Alfreds Maria Anders</NomContact> 
    <Adresse>Obere Str. 57</Adresse> 
    <CodePostal>12209</CodePostal> 
    <Ville>Berlin</Ville> 
    <DerniereCommande Date="09/04/1998"> 
      <Produits> 
        <Produit> 
          <Nom>Escargots de Bourgogne</Nom> 
          <PrixUnitaire>13,25</PrixUnitaire> 
          <Quantite>40</Quantite> 
        </Produit> 
        <Produit> ...