Pourquoi les formats de texte sont-ils nécessaires ?

Les formats de texte sont pratiques pour stocker des informations car ils peuvent être créés et traités à la fois par des programmes et par des humains.

Les fichiers texte (fichiers au format texte) peuvent être ouverts, lus et modifiés dans une grande variété d'éditeurs de texte.

De nombreux programmes utilisent des fichiers de configuration textuels, même si le format contient des nombres et des valeurs binaires (oui/non).

Cela rend les programmes un peu plus compliqués en raison de la nécessité de convertir du texte en un format interne et vice versa, mais cela permet de modifier la configuration manuellement sans utiliser d'outil de configuration dans le programme lui-même.

Où XML est-il utilisé maintenant ?

XML est utilisé dans divers domaines de l'informatique. Il peut s'agir de fichiers de configuration (avec les paramètres du programme) ou de fichiers utilisés pour transférer des données entre programmes. En Java, l'un des cas d'utilisation les plus courants est la configuration de Maven, un outil d'automatisation de la construction.

Structure d'un document XML

Les structures physiques et logiques d'un document XML sont séparées. En termes de structure physique, le document est constitué d'entités qui peuvent faire référence à d'autres entités.

Le seul élément racine est l'entité document. Une entité est la plus petite partie d'un document. Toutes les entités ont un nom et contiennent des caractères.

À leur tour, les caractères appartiennent à l'une des deux catégories suivantes : données de caractère ou balisage.

Le balisage comprend :

  • les balises, qui indiquent les limites des éléments ;
  • déclarations et instructions de traitement, y compris leurs attributs ;
  • références d'entité ;
  • commentaires;
  • séquences de caractères enveloppant les sections CDATA.

Logiquement, le document se compose d'éléments, de commentaires, de déclarations, de références d'entités et d'instructions de traitement. Le balisage est utilisé pour créer toute cette structure dans un document.

Toutes les parties constitutives d'un document sont divisées en un prologue et un élément racine. L'élément racine est la partie obligatoire et essentielle d'un document XML, tandis que le prologue peut ne pas exister du tout. L'élément racine peut être constitué d'éléments imbriqués, de données de caractères et de commentaires. Les éléments d'un document doivent être imbriqués correctement : tout élément qui commence à l'intérieur d'un autre élément doit également se terminer à l'intérieur de cet élément.

Symboles de balisage

Le balisage commence toujours par < et se termine par > .

Les symboles < et > (crochets angulaires) et & (esperluette) jouent un rôle particulier. Les chevrons indiquent les limites des éléments, les instructions de traitement et certaines autres séquences. Et l'esperluette nous aide à remplacer le texte par des entités.

Déclaration XML

Une déclaration XML spécifie la version du langage utilisé pour écrire le document. La spécification XML dit de commencer un document avec une déclaration XML car l'interprétation correcte du contenu du document dépend de la version du langage.

Dans la première version du langage (1.0), cette déclaration était facultative, mais elle est obligatoire dans les versions ultérieures. Une déclaration manquante est supposée signifier la version 1.0. La déclaration peut également contenir des informations sur l'encodage du document.

Exemple:

<?XML version="1.1" encoding="UTF-8" ?>

Mots clés

Une balise est une construction de balisage qui contient le nom d'un élément. Il existe des balises de début et des balises de fin. Il existe également des balises d'éléments vides qui combinent des éléments de début et de fin.

Exemples:

  • Balise de début : <tag1>

  • Balise de fin : </tag1>

  • Balise d'élément vide : <empty_tag1 />

Les attributs

Une autre partie des éléments XML sont les attributs. Un élément peut avoir plusieurs attributs uniques. Les attributs nous permettent de spécifier plus d'informations sur un élément. Ou plus précisément, les attributs définissent les propriétés des éléments.

Un attribut est toujours une paire nom-valeur :

nom = "valeur"

Exemple d'attribut dans une balise :

<tag1 name = "value">élément</tag1>

La valeur d'un attribut doit être entourée de guillemets doubles ( " ) ou de guillemets simples ( ' ). Les attributs ne sont utilisés que dans les balises de début et les balises d'élément vide.

Échappement de cinq caractères spéciaux (<, >, ', ”, &)

Évidemment, les symboles < , > et & ne peuvent pas être utilisés tels quels dans les données textuelles et les valeurs d'attribut. Vous avez besoin de séquences d'échappement spéciales pour les représenter. Des séquences spéciales sont également utilisées lors de l'écriture d'apostrophes et de guillemets à l'intérieur des valeurs d'attribut :

Symbole Remplacement
< <
> >
& &
' '
" "

De plus, pour écrire le caractère \ , vous devez utiliser \\ .

Section CDATA

Une section CDATA n'est pas une unité logique de texte. Ce type de section peut se produire lorsque la syntaxe XML nous permet de placer des données de caractères dans le document.

La section commence par <![CDATA[ et se termine par ]]> . Les données de caractères sont placées entre ces bits de balisage, et les symboles < , > et & peuvent être utilisés sous leur forme directe.

commentaires

Les commentaires ne sont pas considérés comme des données textuelles. Un commentaire commence par <!-- et se termine par --> . La séquence de caractères -- ne peut pas être utilisée dans un commentaire. De plus, à l'intérieur d'un commentaire, le caractère esperluette n'indique pas le balisage.

Exemple:

<!-- ceci est un commentaire -->

Des noms

En XML, tous les noms ne peuvent contenir que des lettres dans la table de caractères Unicode, des chiffres arabes, des points, des deux-points, des traits d'union et des traits de soulignement. Les noms peuvent commencer par une lettre, deux-points ou un trait de soulignement. Notez qu'un nom ne peut pas commencer par la chaîne XML .

Exemple

Regardons une classe Java et un objet de cette classe. Ensuite, nous essaierons de sérialiser l'objet au format XML. Code de la classe:


public class Book {
   private String title;
   private String author;
   private Integer pageCount;
   private List<String> chapters;

   public Book(String title, String author, Integer pageCount, List<String> chapters) {
       this.title = title;
       this.author = author;
       this.pageCount = pageCount;
       this.chapters = chapters;
   }
// Getters/setters
}

et création d'objets :


Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));

Voici un exemple de représentation XML valide d'un objet Java qui contient 4 champs, dont l'un est une collection (voir le code Java ci-dessus) :

<Livre>
  <title>Mon livre préféré</title>
  <author>Amigo</author>
  <pageCount>999</pageCount>
 <chapters>
    <chapters>Chapitre 1</chapters>
    <chapters>Chapitre 2</chapters>
    <chapters>Chapitre 3</chapters>
    <chapters>Chapitre 4</chapters>
    <chapters>Chapitre 5</chapters>
    <chapters>Chapitre 6</chapters>
 </chapters>
</Book>

Schéma XML

Un schéma XML est une description de la structure d'un document XML. La spécification correspondante (XML Schema Definition, ou XSD) est une recommandation du W3C.

XSD a été conçu pour exprimer les règles qu'un document XML doit suivre. Mais la chose la plus intéressante pour nous est que XSD a été conçu pour être utilisé lors du développement de logiciels traitant des documents XML. Il nous permet de vérifier l'exactitude d'un document XML par programmation.

Les fichiers contenant un schéma XML portent l'extension .xsd. La conception d'un schéma XML dépasse le cadre de cette leçon. Pour l'instant, sachez simplement que cette possibilité existe.