Cours VB.NET

Image non disponible


précédentsommairesuivant

XX-A. Le codage de caractères ASCII ANSI UNICODE et UTF

Ici on parle de l'informatique en général.

Chaque caractère possède un code caractère numérique. Quand on utilise une chaine de caractères sur un ordinateur ou dans une page Web, ce sont les codes des caractères qui sont enregistrés ou transmis. Quand on affiche, les caractères correspondant aux codes sont affichés.

Ce code peut être d'une longueur de 7, 8, ou 16 bits.

A chaque code correspond un glyphe qui est une représentation graphique du caractère, le glyphe fait partie d'une font.

Exemple:

En ASCII (codage ASCII ),le caractère 97 correspondant au glyphe 'a' dans la font Courier New.

XX-A-1. Codage sur 7 bits : ASCII

L' American Standard Code for Information Interchange (ASCII) est en vigueur depuis les années 1980.

C'est un ancien codage des caractères sur 7 bits (Ascii pur) au départ correspondant au clavier américain sans accentués.

Il comporte 128 caractères.

Les codes 0 à 31 correspondent aux caractères de contrôle.(Non imprimable: 9 = tabulation, 13= retour chariot)

Les codes 32 à 64 correspondent aux opérateurs et aux chiffres.( 32=' ', 43='+', 49='1')

Les codes 65 à 90 représentent les majuscules.(65='A')

Les codes 91 à 122 représentent les minuscules.(91='a')

Il a été normalisé sous le nom d'ISO 646.

XX-A-2. Codage sur 8 bits

On est ensuite passé sur 8 bits (un octet) pour l'ascii étendu contenant les accentués. On peut donc coder 256 (0 à 255) caractères.

Il a été normalisé sous le nom d'ISO 8859.

L'ISO 8859 a plusieurs cartes de caractères, ou jeu de caractères, ou page de codes(CharSet):

-La norme ISO 8859-1, dont le nom complet est ISO/CEI 8859-1 est appelée Latin-1 ou alphabet latin numéro 1. elle permet de représenter la plupart des langues de l'Europe occidentale: l'albanais, l'allemand, l'anglais, le catalan, le danois, l'espagnol, le féroïen, le finnois, le français, le galicien, l'irlandais, l'islandais, l'italien, le néerlandais, le norvégien, le portugais et le suédois.

Image non disponible

-Le jeu ISO 8859-2 est appelé Latin 2 et permet de représenter les langues slaves et d'Europe centrale qui utilisent l'alphabet latin. l'allemand, le croate, le hongrois, le polonais, le roumain, le slovaque, le slovène et le tchèque.

-Le jeu de caractère ISO 8859-3 est utilisé pour l'espéranto, le galicien, le maltais et le turc.

...

-Le jeu ISO-8859-15 ou Latin 9 est une légère modification du Latin 1 qui ajoute le symbole monétaire de l'Euro, ainsi que quelques lettres accentuées qui manquaient pour le français et le finnois. Il est destiné aux mêmes langues que le Latin-1.

-Le jeu ISO-8859-1 (remarquez le tiret supplémentaire) a été validé par l'IANA (Internet Assigned Numbers Authority), pour une utilisation sur Internet, c'est un sur-ensemble de l'ISO/CEI 8859-1.Ce jeu attribue des caractères de contrôle aux valeurs 00 à 1F, 7F, et 80 à 9F. Pour compliquer un peu les choses, le nom du jeu a souvent de nombres synonymes et équivalents (Exemple: ISO-8859-1= ISO_8859-1:1987, ISO_8859-1, ISO-8859-1, iso-ir-100, csISOLatin1, latin1, IBM819, CP819)

Windows-1252 ou CP1252 est un jeu de caractères disponible sur Microsoft Windows aux États-Unis, et dans certains pays de l'Union européenne.

Windows-1252 est une extension de l' ISO 8859-1 : il en diffère par l'utilisation de caractères imprimables, plutôt que des caractères de contrôle, dans la plage 80-9F. Windows appelle ce jeux l' ANSI, mais il peut y avoir un autre nom, comme par exemple CP1252.

MacRoman ou Mac OS ROMAN est un jeu utilisé sur les ordinateurs Mac qui diffère légèrement de jeu Latin. voir différences

Pour mémoire il existait le jeu OEM sur les premiers PC.

En codage 8 bits, pour que les caractères apparaissent correctement, il faut utiliser la bonne page de code (CharSet). Il n'y a qu'une page de code par texte.

XX-A-3. Codage sur 16 bits ou plus : Unicode

On a ensuite crée un code de 16 bits ou plus pour pouvoir coder tous les caractères du monde.

L'UCS " jeu de caractères codés universel " (Universal Coded Character Set, souvent abrégé en UCS)

Existe depuis l981.

Il y a:

- l'UCS-2 qui ne contient que 65535 codes :PMB ou 'Plan Multilingue de Base' codé sur 2 octets contenant les 'principaux' caractères.

- l'UCS-4 codé sur 4 octets contenant tous les caractères.

- L'Unicode. ou 'Unicode Standard' depuis 1991 crée par le Consortium Unicode qui collabore avec l'Iso.

Il a été normalisé sous le nom d'ISO/CEI 10646-1:1993 puis ISO/CEI 10646-1:2000.

Contient les mêmes caractères que l'UCS mais avec quelques règles en plus.

USC-4 = Unicode en simplifiant!!

L'Unicode dans sa version la plus récente (4.1.0) contient 245 000 codes différents, représentant 245000 caractères, symboles, etc.

Il contient tous les caractères d'usage courant dans les langues principales du monde. Il permet de mettre plusieurs langues dans une seule page, ce que ne permet pas le codage 8 bits.

Il a été normalisé sous le nom d'ISO/CEI 10646.

Les premiers 128 codes (0-127) Unicode correspondent aux lettres et aux symboles du clavier américain standard. Ce sont les mêmes que ceux définis par le jeu de caractères ASCII (ancien codage sur un octet). Les 128 codes suivants (128-255) représentent les caractères spéciaux, tels que les lettres de l'alphabet latin, les accents, les symboles monétaires et les fractions. Les codes restants sont utilisés pour des symboles, y compris les caractères textuels mondiaux, les signes diacritiques, ainsi que les symboles mathématiques et techniques.

Voici les 255 premiers

Image non disponible

Le petit carré indique un caractère non imprimable (non affichable), certains caractères sont des caractères de contrôle comme le numéro 9 qui correspondant à tabulation, le numéro 13 qui correspond au retour à la ligne..

La valeur d'un caractère Unicode est appelée point de code. Ainsi le caractère 'f' a un point de code égal à 102.

L'Unicode regroupe ainsi la quasi-totalité des alphabets existants (arabe, arménien, cyrillique, grec, hébreu, latin, ...) et est compatible avec le code ASCII.

Encoding:

Pour écrire de l'Unicode dans un fichier (web, html, xml..), cela serait trop simple de mettre 2 ou 3 octets pour chaque caractère. Aussi pour des problèmes de compatibilité entre plate formes les codes Unicode sont transformée en UTF.

UTF = UCS Transformation Format.(Format de transformation d'Unicode)

Il existe plusieurs méthodes de transformation l'UTF-8, l' UTF-16, l' UTF-32 qui sont des manières d'écrire de l'Unicode dans un fichier.

UTF-8

Taille variable: 1 à 4 octets, plus le nombre est grand, plus il y a d'octets.

Les caractères de numéro 0 à 127 sont codés sur un octet dont le bit de poids fort est toujours nul.

0xxxxxxx 1 octet codant 7 bits maximum

'A'= 65 en Unicode = 01000001 en UTF-8 soit 1 octet.

On remarque que dans ce cas Ascii= UTF-8

Les caractères de numéro supérieur à 127 sont codés sur plusieurs octets. Dans ce cas, les bits de poids fort du premier octet forment une suite de 1 de longueur égale au nombre d'octets utilisés pour coder le caractère, les octets suivants ayant 10 comme bits de poids fort.

 
Sélectionnez

110xxxxx 10xxxxxx 2 octets codant 8 à 11 bits 
1110xxxx 10xxxxxx 10xxxxxx 3 octets codant 12 à 16 bits 
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 4 octets codant 17 à 21 bits 

Les autres bits (notés 'x' ) codent le nombre.

Exemple

€= 8364= 11100010 10000010 10101100

Il est utilisé sur Unix et le WEB.

il est économique en terme d'octet car il permet de stocker la majorité des caractères sur un seul octet. Pour les caractères dont le point de code a une forte valeur valeurs, l'UTF-8 se chargera de déterminer s'il est nécessaire d'utiliser 1, 2, 3 ou 4 octets pour représenter sa valeur.

UTF-16

Taille fixe: 2 ou 4 octets

Il existe l'UTF-16LE et l'UTF-16BE

ils ont la même taille.(Accès rapide au caractère de position x)

L'UTF-16 est utile lorsque la place en mémoire n'est pas un facteur très important. Il facilite la manipulation de textes car le processeur sait qu'il doit analyser les deux premiers octets dans la plupart des cas (parfois 4).

Il est utilisé en Java et dans les API Windows pour la manipulation des chaînes.

UTF-32

Taille fixe: 4 octets?

Mais peu économique en mémoire, il gaspille des octets.

Tous les caractères de la terre y sont, ils ont la même taille.(Accès rapide au caractère de position x)

Gourmant en mémoire, peu utilisé.

XX-A-4. Représentation graphique des caractères : Glyphe, Font, Police

Un glyphe est une représentation graphique (un dessin) d'un signe typographique, autrement dit d'un caractère (glyphe de caractère) ou d'un accent (glyphe d'accent).

Image non disponible

Une fonte de caractères, est un ensemble de glyphes, c'est-à-dire de représentations visuelles de caractères d'une même famille, de même style, corps et graisse.

La place d'un glyphe dans une fonte est déterminée par le codage des caractères dans la fonte. Ainsi, dans une fonte encodée en ASCII le glyphe du caractère « a » se trouvera en 97e position.

Une police regroupe tous les corps et graisses d'une même famille.

Le glyphe présente le dessin, alors que le caractère( son code en informatique) représente le sens.

En informatique on utilise les caractères (leur code) pour stocker du texte en mémoire, les glyphes pour imprimer ou afficher ces caractères.

Police BitMap, 'True Type', 'Open Type'.

Avant les années 1990 il y avait des polices au format BitMap (image matricielle). Elle ne sont plus utilisées par VB.Net.

Depuis 1980 existe True Type®, un format de police multiplateforme vectorielle, développé par Apple et vendu ensuite à Microsoft. (concurrent du format Type1 de PostScript d'Adobe)

On utilise depuis 2001 OpenType® qui est un nouveau format de police multiplateforme vectorielle, développé conjointement par Adobe et Microsoft. Adobe propose plusieurs milliers de polices OpenType.

Les deux principaux atouts du format OpenType résident dans sa compatibilité multiplateforme (un seul et même fichier de polices exploitable sur les postes de travail Macintosh et Windows) et sa prise en charge de jeux de caractères et de fonctions de présentation très étendus, qui offrent de meilleures capacités linguistiques et un contrôle typographique évolué.

Une police Open Type est basée sur le numéro de caractères Unicode et peut contenir jusqu'à 65000 glyphes.

Le format OpenType est une extension du format TrueType SFNT qui gère également les données des polices Adobe® PostScript® et des fonctions typographiques inédites.

Les noms de fichier des polices OpenType contenant des données PostScript possèdent l'extension .otf, tandis que les polices OpenType de type TrueType portent l'extension .ttf.

Notion de police proportionnelle.

Il existe des fonts proportionnelles, comme l'Arial, où les différents caractères n'ont pas la même largeur (le i est plus étroit que le P)c'est plus joli.

Par contre dans les fonts non proportionnelles, comme le 'Courier New', tous les caractères ont même largeur. C'est parfois plus pratique quand on veut afficher des lignes qui concorder sur le plan alignement vertical (et qu'on ne veut pas utiliser les tabulations).

Image non disponible

XX-A-5. Sur le Web

Un document contient le nom du type de caractères utilisés dans le document: le type d'UTF (codage en 16 bits) ou le nom de la table de caractère (une seule) associée à ce document (codage 8 bits).

Par exemple pour un document HTML une balise indique que le document utilise une table des caractères .(Caractères codé sur 1 octet, c'est de l'ascii étendu dans cet exemple)

 
Sélectionnez

<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />  

ou

 
Sélectionnez

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

S'il n'y a pas de charset spécifié, c'est la table de caractère du système d'exploitation qui est utilisée. Si elle ne correspond pas à celle du document l'affichage est incohérent.

Le problème est aussi (si on utilise un codage 8 bits) l'impossibilité de mélanger dans un même document des alphabets qui ne sont pas définis par la même table. Par exemple le français et l'hébreu.

La solution est de passer à Unicode.

Par exemple pour un mail:

Content-Type: text/plain; charset=ISO-8859-1

ou

Content-Type: text/plain; charset="UTF-8"

Par exemple pour un fichier XML:

 
Sélectionnez

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

XX-A-6. En VB

Les variables string sont stockées sous la forme de séquences de 16 bits (2 octets) non signés dont les valeurs sont comprises entre 0 et 65 535. Chaque nombre de 16 bis représente le point de code (son numéro et non l'UTF) du caractère Unicode.

Les variables Char sont stockées sous la forme d'un mot de 16 bits (2 octets).

 
Sélectionnez

Dim monUnicode As Short = Convert.ToInt16 ("B"c) ' le code Unicode de B est 66.
 

En Net, il existe des fonctions d'encodage et de décodage à bas niveau sur les points de code (byte) et les caractères (char), on peut ainsi transformer une chaîne de Latin-1 en UTF-8, par exemple.

Fonctions d'encodage :

GetBytes() Convertit une chaîne ou un caractère en un tableau de byte dans le charset choisi

Comment obtenir un tableau de Bytes contenant le code ascii d'un texte?

 
Sélectionnez

Dim  ascii As System.Text.Encoding = System.Text.Encoding.ASCII

Dim MyString As String= "mon texte"       

Dim  MesByte() As Byte = ascii.GetBytes( MyString ) 

(les caractères non gérés en ascii sont transformés en " ? ", portant la valeur numérique 63.)

Fonctions de décodage :

GetChars() Convertit un tableau de byte en un tableau de char

XX-B. Nommage des objets visuels, variables et objets

Nommage des variables et Objets:

Notation hongroise:

La notation hongroise est une convention de nommage qui met en avant, par l'utilisation d'un préfixe, des informations sur l'objet nommé.

La qualification de "hongroise" vient du pays d'origine de Simonyi, le créateur de ce nommage qui a travaillé chez Xerox puis Microsoft.

Il y a 2 sortes de notation hongroise:

Notation Apps:

On préfixe le nom des variables de manière a indiquer leur utilisation :

rwPosition : est une variable représentant la position d'une ligne (rw=row en anglais)

Notation Systems:

Cette notation consiste à faire précéder le nom de la variable d'un préfixe reflétant son type. Ce préfixe est toujours écrit en minuscule puis la première lettre suivante en majuscule.

Par exemple, la variable booléenne 'ouvert' est préfixée par un b pour indiquer un booléen : 'bOuvert'.

On peut préfixer avec le type et (ou) la portée.

Type:

i Integer (entier)

n Short int (entier court)

l Long (entier long)

f float= Single (nombre a virgule flottante)

d Double (float double)

c Char (caractère)

by Byte (caractère non signe)

b Boolean (booleen true/false)

s String (chaîne de caractères)

h Handle

file File (fichier)

On peut aussi utiliser k pour les constantes.

et non utilisé en VB:

v void

w word (mot = double octet)

dw double word (double mot)

sz zero-terminated string (chaine de caracteres terminee par un char zero)

str string object (objet String)

pt point

rgb rgb triplet

Portée:

g : variable globale à une application

s : variable locale à un module.

p : variable passée en paramètre d'une fonction ou d'une méthode de classe.

Si une variable est un tableau, on ajoute le préfixe " a ".

Le nom de la variable commence par une majuscule.

Exemple:

Préfixe avec le type: variable nommée Ouvert de type boolean:

bOuvert.

Préfixe avec la portée, variable nommée Nom de portée globale:

gNom ou g_Nom

Variable nommée Position qui est une variable globale et une Integer.

g_iPosition

On voit qu'on peut utiliser ou non le caractère""_".

Cette notation hongroise a ses partisans et ses adversaires (nom trop complexe).

Choisir les noms de procédures et de variables avec soins:

On concatène plusieurs mots pour former un nom de fonction, de variable de Classe..

Il y a 3 manières d'utiliser les lettres capitales dans ces mots (on appelle cela la capitalisation!)

-Pascal Case:La première lettre de chaque mot est en majuscule:

CalculTotal()

-Camel Case:La première lettre de chaque mot est en majuscule, sauf la première:

iNombrePatient

-UpperCase: Toutes les lettres sont en majuscule:

MACONSTANTE

De plus le nom doit être explicite.

Microsoft propose quelques règles:

Sub , Fonctions

Utilisez la 'case Pascal' pour les noms de routine (la première lettre de chaque mot est une majuscule).

Exemple: CalculTotal()

Évitez d'employer des noms difficiles pouvant être interprétés de manière subjective, notamment Analyse() pour une routine par exemple.

Utilisez les verbe/nom pour une routine : CalculTotal().

Variables

Pour les noms de variables, utilisez la 'case Camel' selon laquelle la première lettre des mots est une majuscule, sauf pour le premier mot.

Exemple: iNombrePatient

noter ici que la première lettre indique le type de la variable (Integer), elle peut aussi indiquer la portée(gTotal pour une variable globale).

Évitez d'employer des noms difficiles pouvant être interprétés de manière subjective, 'YYB8' ou 'flag' pour une variable.

Ajoutez des méthodes de calcul ( Min, Max, Total) à la fin d'un nom de variable, si nécessaire.

Les noms de variable booléenne doivent contenir Is qui implique les valeurs True/False, par exemple fileIsFound.

Évitez d'utiliser des termes tels que Flag lorsque vous nommez des variables d'état, qui différent des variables booléennes car elles acceptent plus de deux valeurs. Plutôt que documentFlag, utilisez un nom plus descriptif tel que documentFormatType.

Même pour une variable à courte durée de vie utilisez un nom significatif.

Utilisez des noms de variable d'une seule lettre, par exemple i ou j, pour les index de petite boucle uniquement.

Paramètre

Pour les noms de paramètres, utilisez la 'case Camel' selon laquelle la première lettre des mots est une majuscule, sauf pour le premier mot.

Exemple: typeName

Constantes

Utiliser les majuscules pour les constantes: MYCONSTANTE

N'utilisez pas des nombres ou des chaînes littérales telles que For i = 1 To 7. Utilisez plutôt des constantes par exemple For i = 1 To DAYSINWEEK, pour simplifier la maintenance et la compréhension.

Objet, Classe

Pour les noms de Classe, utiliser le case Pascal:

Exemple Class MaClasse

Idem pour les évènement, espace de nom, méthodes:

Exemple: System.Drawing, ValueChange..

Dans les objets, il ne faut pas inclure des noms de classe dans les noms de propriétés Patient.PatientNom est inutile, utiliser plutôt Patient.Nom.

Les interfaces commencent par un I

Exemple: IDisposable

Pour les variables privées ou protégées d'une classe utilisez le case Camel:

Exemple: lastValue (variable protégée)

En plus pour les variables privées d'une classe mettre un "_" avant:

Exemple: _privateField

Pour une variable Public d'une classe utiliser le 'case Pascale':

Exemple TotalAge

Tables

Pour les tables, utilisez le singulier. Par exemple, utilisez table 'Patient' plutôt que 'Patients'.

N'incorporez pas le type de données dans le nom d'une colonne.

Divers

Minimisez l'utilisation d'abréviations.

Lorsque vous nommez des fonctions, insérez une description de la valeur retournée, notamment GetCurrentWindowDirectory().

Évitez de réutiliser des noms identiques pour divers éléments.

Évitez l'utilisation d'homonymes et des mots qui entraînent souvent des fautes d'orthographe.

Évitez d'utiliser des signes typographiques pour identifier des types de données, notamment $ pour les chaînes ou % pour les entiers.

Un nom doit indiquer la signification plutôt que la méthode.

Nommage des objets visuels:

Il est conseillé de débuter le nom d'un objet visuel par un mot évoquant sa nature:

Microsoft conseille:

btn pour les Boutons

lst pour les ListBox

chk pour les CheckBox

cbo pour les combos

dlg pour les DialogBox

frm pour les Form

lbl pour les labels

txt pour les Textbox

tb pour les Toolsbar

rb pour les radiobutton

mm pour les menus

tmr pour les timers

Exemple:

btnOk par exemple pour un bouton sur lequel il y a 'Ok'.

XX-C. Couleurs disponibles dans VB

Le plus simple est, pour modifier la couleur d'un objet par du code, d'utiliser les constantes VB qui contiennent le code d'une couleur toute faite (en RGB sans composante Alpha):

 
Sélectionnez

Color.Back,

Color.Fuchsia

Color.Chocolate 

Color.Red ...

Voici toutes les couleurs à votre disposition:

Image non disponible

Elles font partie de System.Drawing

XX-D. Format de fichier texte : le RTF

Qu'est ce que RTF?

Un texte peut être enregistré en brut (en Ascii sans enrichissement en '.txt' par exemple) en RTF ('.Rtf') , dans un format propriétaire: format Word (.doc)…

RTF= Rich Text Format = Format de Texte Enrichi

Le RTF est un format de fichier texte assez universel. Il permet de mettre dans un fichier du texte, mais aussi d'indiquer l'enrichissement de ce texte: texte en gras, italique, souligné, en couleur, en Arial...

Les fichiers Rtf ont l'extension '.Rtf'. Ils sont lisibles dans la plupart des traitements de texte (Word, Open Office, NotePad..)

Le format du texte que l'on peut mettre dans une RichTextBox est le format RTF.

Les bases du codage RTF

Le texte doit débuter par '{' et se terminer par '}'.

Il peut aussi débuter par "{\rtf1\ansi " et se terminer par '}'.

Cela indique que le texte est en rtf et le codage des caractères est en ansi.

Ensuite les enrichissements s'effectuent par des balises qui indiquent le début et la fin de l'attribut.

Une balise commence par le caractère '\' .

Toujours mettre un espace après la balise.

Entre \b et \b0 le texte sera en gras (Bold)

Exemple :

Ajoute le texte "Ce texte est en gras." à un contrôle RichTextBox existant.

RichTextBox1.Rtf = "{\rtf1\ansi Ce texte est en \b gras\b0 .}"

Voici les principaux attributs :

 
Sélectionnez

\b   \b0      ce qui est entre les 2 balises est en gras

\i    \i0     ce qui est entre les 2 balises est en italique

\par          fin paragraphe (passe à la ligne)

\f            font    \f1 .. \f0  font numéro 1 entre les 2 balises

\plain        ramène les caractères par défaut

\tab          caractère de tabulation

\fs           taille de caractère   \fs28 = taille 28

Mettre un espace après la balise:

Ecrire: \b bonjour \b0 et non \bbonjour \b0

Mettre un texte en couleurs, utiliser plusieurs polices :

Mettre la table des couleurs en début de texte :

 
Sélectionnez

    { \colortbl \red0\green0\blue0;\red255\green0\blue0;\red0\green255\blue0;} 

Après Colortbl (Color Table) chaque couleur est codée avec les quantités de rouge vert et bleue.

Les couleurs sont repérées par leur ordre: couleur 0 puis 1 puis 2.. et séparées par un ';'

Dans notre exemple couleur 0=noir; couleur 1=rouge; couleur 2=vert

Pour changer la couleur dans le texte on utilise \cf puis le numéro de la couleur :

 
Sélectionnez

    « \cf1 toto   \cf0 } » 'toto est affiché en rouge.

Pour modifier les polices de caractère, le procédé est similaire avec une Font Table :

 
Sélectionnez

{\fonttbl

{\fo\froman Symbol;}

{\f1\fswiss Arial;}

}

Pour passer en Arial \f1 ..\f0

Exemple complet :

 
Sélectionnez

"{\rtf1\ansi 

 { \colortbl 

\red0\green0\blue0;

\red255\green0\blue0;

\red0\green255\blue0;}

{\fonttbl

{\fo\froman Symbol;}

{\f1\fswiss Arial;}

}

Ce qui suit est en \f1 \cf1 \i Arial Rouge Italique \f0 \cf0 \i0

} »

Cela donne:

Image non disponible

Nb : Si vous voulez copier coller l'exemple pour l'essayer, enlever les sauts à la ligne.

XX-E. Format 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 (< et > ) 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:

 
Sélectionnez

<titre> cours de XML </titre>

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

 
Sélectionnez

<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 la basile CDATA , dans ce cas on peut mettre les caractères interdits:

Image non disponible

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 ':

 
Sélectionnez

<élément attribut="valeur"/>

Exemple:

 
Sélectionnez

<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.

 
Sélectionnez

<?xml version="1.0"?>

Ce document respecte la spécification XML 1.0.

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

 
Sélectionnez

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

'Ici les caractères sont codés en UTF-8

 
Sélectionnez

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 rapport medical et sa structure doit se conformer à la structure type définie dans la ressource "rapportmedical.dtd"

 
Sélectionnez

<!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).

 
Sélectionnez

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

     </para>
 </article>

Tout élément enfant est inclus dans l'élément parent.

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

 
Sélectionnez

<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.

 
Sélectionnez

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

On peut mettre des commentaires:

 
Sélectionnez

<!-- 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 les balises '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 rapport medical et sa structure doit se conformer à la structure type définie dans la ressource "rapportmedical.dtd"

 
Sélectionnez

<!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:

 
Sélectionnez

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:

 
Sélectionnez

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:

 
Sélectionnez

<%= expression %>.

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

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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

ou à partir d'un Stream:

 
Sélectionnez

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

reader.MoveToContent() 

Dim inputXml = XDocument.ReadFrom(reader)

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © . Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.