Langage de description de format de document
Un langage de description de format de document est un langage permettant de définir un jeu de règles et contraintes qui seront utilisées pour savoir si une instance de document est valide par rapport à ce même jeu de règles et contraintes.
Exemples
Par exemple, si on invente un format dont la principale caractéristique est de préciser les contraintes par rapport à la taille du fichier que nous essayons de catégoriser (valide ou non valide). On utilisera une syntaxe proche de la syntaxe mathématique, en définissant une ou plusieurs équations vérifiées par la variable TailleFichier :
TailleFichier = 3
Ainsi un fichier contenant le mot « non » qui comporte trois lettres en ASCII est un fichier valide par rapport à ce jeu de règles, de même qu'un fichier contenant le mot« oui ».
Extensions
Un langage de description de format n'est pas nécessairement définitif, dans le sens où, il peut être complété pour fournir d'autres règles, permettant de catégoriser plus finement.
Si on définit un ensemble de règle A pour dire si un document est une instance de A. Il suffit d'ajouter un ensemble de règle B, non contradictoire avec celle de A, pour créer un sous-langage de A, vérifiant A et B.
Les fichiers binaires
Le binaire est constitué de deux chiffres 0 et 1 (base de 2). Votre ordinateur code tout en 0 et 1: votre adresse ip est codée en base de 2 mais pour se simplifier les choses on utilise la base de 16; votre ordinateur "voit" une image en 0 et 1, il a une référence (par exemple: 11001001 est égal à du rouge foncé).
base 10 | base 16 | base 2 | |||
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 1 |
2 | 2 | 0 | 0 | 1 | 0 |
3 | 3 | 0 | 0 | 1 | 1 |
4 | 4 | 0 | 1 | 0 | 0 |
5 | 5 | 0 | 1 | 0 | 1 |
6 | 6 | 0 | 1 | 1 | 0 |
7 | 7 | 0 | 1 | 1 | 1 |
8 | 8 | 1 | 0 | 0 | 0 |
9 | 9 | 1 | 0 | 0 | 1 |
10 | A | 1 | 0 | 1 | 0 |
11 | B | 1 | 0 | 1 | 1 |
12 | C | 1 | 1 | 0 | 0 |
13 | D | 1 | 1 | 0 | 1 |
14 | E | 1 | 1 | 1 | 0 |
15 | F | 1 | 1 | 1 | 1 |
Les fichiers textes
La syntaxe BNF (pour Backus Naur Form)
Voir l'article : Forme de Backus-Naur.
La famille SGML
En SGML, il y a trois niveaux de description d'un document :
- Le langage de définition de la syntaxe concrète (qui permet de préciser les caractères utilisés pour déterminer les ouvertures et fermetures de balise par exemple)
- Le langage de définition de la syntaxe abstraite (qui permet de définir les DTD SGML)
- La DTD SGML qui permet de définir des instances de documents valides par rapport à cette DTD
Ce sont ces trois niveaux qui ont fait de SGML, une norme très difficile à percevoir et à mettre en œuvre.
La famille dérivée : XML
En XML, on emploie par exemple le langage de description de format de document XML Schema, le langage Relax NG, ou plus anciennement les DTD. Ces langages permettent également la validation de documents (voir DSDL).
HTML
Le langage de description de textes le plus connu est HTML. Il est utilisé pratiquement sur tous les sites internet.