Site:  Cours VB.net  
2.70 Annexe:

XML

 

Qu'est ce que le XML ?

XML est l'abréviation de Extensible Markup Language( langage de balisage extensible).

XML a été mis au point par le XML Working Group sous l'égide du W3C dès 1996. (http://www.w3.org/XML/)

XML est un sous ensemble, une simplification de SGML (Standard Generalized Markup Language)pour le rendre  utilisable sur le web!

 XML décrit le contenu plutôt que la présentation (contrairement À HTML). Ainsi, XML permet de séparer le contenu de la présentation .. ce qui permet par exemple d'afficher un même document sur des applications ou des périphériques différents sans pour autant nécessiter de créer autant de versions du document que l'on nécessite de représentations.

 

Qu'est ce qu'une balise ?

'Élément Sémantique de base' des langages de balisage.

Une balise est un 'mot clé', un élément, comprise entre crochets <    > qui possède un nom et parfois des attributs.

Toutes les balises doivent être ouvertes puis refermées (contrairement à l'HTML ou certaines balises n'ont pas besoin d'être refermées). On retrouvera donc toujours une balise de début et une balise de fin. La balise de fin porte le même nom que la balise de début à l'exception du nom du la balise qui est précédé du signe /. 

Exemple:

 <titre> cours de XML </titre>

Si une balise est vide on peut combiner balise de début et de fin:

<reponse />

Le nom de la balise et le nom des attributs (contenu entre les crochets) doit être en majuscule ou minuscule. Les noms de balise peuvent comporter des lettres, des chiffres, des tirets, des traits de soulignement, des deux-points ou des points. Le caractère deux-points (:) ne peut être utilisé que dans le cas particulier où il sert à séparer des espaces de noms. Un nom de balise ne doit pas commencer par xml ou XML.

Les caractères < et & ne peuvent pas être utilisés dans le texte, car ils sont utilisés dans le balisage. Si vous devez employer ces caractères, utilisez &lt; à la place de < et &amp; à la place de &

Sinon utiliser <![CDATA[....]]> , dans ce cas on peut mettre les caractères interdits:

<![CDATA[ <aaa><]]>

Un attribut est le nom d'une propriété de la balise souvent associé à une valeur, il est mis dans la balise d'ouverture après le nom de la balise, il est en minuscule ou majuscule, la valeur est entre " ou entre ':

Les attributs: <élément attribut="valeur"/>

Exemple:

<reponse = "oui" />

La balise ne sera pas vu si on affiche le document dans un navigateur. 

 

Il n'y a aucun nom d'élément réservé.(quelques noms d'attributs le sont)

Les noms d'élément sont choisis librement par l'auteur du document.

 

Un document XML se compose:

a- d'un prologue, facultatif, il contient des déclarations.

b- d'un arbre d'éléments.(contenu proprement dit du document).

c- de commentaires ou d'instructions de traitement facultatifs.

 

a- PROLOGUE XML.

 

Les documents doivent commencer par une déclaration indiquant la version de l'XML.

<?xml version="1.0"?>

 <text>Ce document respecte la spécification XML 1.0.</text>


On peut ajouter le type de codage des caractères:

 

<?xml version="1.0" encoding="UTF-8"?>  'Ici les caractères sont codés en UTF-8

 

Les caractères >, " , et ' peuvent également être remplacés par &gt; , &quot; et &apos; respectivement

 

On peut aussi ajouter une déclaration de type de document (DTD).

Si le document doit se conformer à une structure particulière, on doit l'indiquer:

Exemple: le document est de type rapportmedical et sa structure doit se conformer à la structure type définie dans la ressource "rapportmedical.dtd"

<!DOCTYPE rapportmedical SYSTEM "rapportmedical.dtd" [  déclarations ]> 

 

b- Structure en arbre:

Il peut y avoir plusieurs balises intriquées, mais attention à l'ordre des balises de fin qui doivent être dans l'ordre inverse (première balise ouverte, dernière fermée).


  <article>
   <para>
        ......

     </para>
 </article>

Tout élément fils est inclus dans l'élément père.

 

Il doit y avoir un élément racine qui englobe tous les autres:

<livre>

  <chapitre>Item 1</chapitre>

  <chapitre>Item 2</chapitre>

  <chapitre>Item 3</chapitre>

</livre>

Ici l'élément racine est livre , peut importe le nom, pourvu qu'il englobe tout.

 

On remarque qu'il y a plusieurs balises chapitre.

 

 

c- Commentaires et instructions de traitement.

 

Il existe des instructions de traitement qui contiennent des instructions destinées aux applications.

<?perl lower-to-upper-case  ?>

 

On peut mettre des commentaires:

<!-- Commentaire -->

 

Dissocier la forme et le fond:

Les balises XML indiqueront le contenu, la signification (la sémantique) des éléments de la page et non pas comment les afficher.

Le HTML lui comportait des informations sur la forme, la manière dont était affichée la page, l'apparence du site. 

Soit un document:

Soit un document HTML, les balises définissent pour ce document ce qui est en gras( balise <b>), en italique ( balise <i>)... 

Soit un document XML, les balises définissent le contenu. Ainsi une oeuvre est contenu entre la balise <oeuvre> et la balise </oeuvre>; de même les balises <date> et <auteur> permettent de dresser une liste des auteurs et des dates. La présentation sera, si nécessaire, indiquée dans une feuille de style CSS. 

Ce document XML est enregistré dans un fichier .xml

Vous pouvez avoir des noms de balise propre à votre document (en HTML, les noms sont prédéfinis).

 

DTD

On peut aussi ajouter une déclaration de type de document (DTD).

Si le document doit se conformer à une structure particulière, on doit l'indiquer:

Exemple: le document est de type rapportmedical et sa structure doit se conformer à la structure type définie dans la ressource "rapportmedical.dtd"

<!DOCTYPE rapportmedical SYSTEM "rapportmedical.dtd" [  déclarations ]> 

 

 

Feuille de style.

La feuille de style, ou CSS est l'abréviation de Cascading Style Sheets. Cette feuille nous sert uniquement à présenter la page web. C'est en CSS que l'on dira : "Mes titres sont en vert et sont soulignés, le nom doit être affiché en gras..

La feuille de style est dans un fichier .css

 

 

 

XML dans VB

A partir de VB 2008 on peut créer directement de l'XML dans le code.
On peut créer un élément XML:
Dim contact1 As XElement = _
    <contact>
      <name>Patrick Dupont</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

On peut créer un document XML:
Dim contactDoc As XDocument = _
    <?xml version="1.0"?>
    <contact>
      <name>Patrick Dupont</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

On peut mettre dans le XML  des expressions qui sont évaluées au cours de l'exécution, ces expressions sont de la forme: <%= expression %>.

Exemple: Inclure dans l'élément XML un nombre et une date:

Dim MyNumber As String = "12345" 

Dim MyDate As String = "3/5/2006" 

Dim livre As XElement = _ 

<livre category="fiction" isbn=<%= MyNumber %>> <TheDate><%= MyDate %></TheDate> </livre>

 

On peut aussi créer une String et la transformer en XML.


Dim MyString = "<Cours id=""1"">" & vbCrLf & _

 " <Author>Philippe</Author>" & vbCrLf & _

 " <Title>Cours VB</Title>" & vbCrLf & _

" <Price>0</Price>" & vbCrLf & _

 "</Cours>"

Dim xmlElem = XElement.Parse(MyString)

 

On peut charger un document à partir d'un fichier.

Dim books = XDocument.Load("books.xml")

 

ou à partir d'un Stream:

Dim reader = System.Xml.XmlReader.Create("books.xml")

reader.MoveToContent()

Dim inputXml = XDocument.ReadFrom(reader)