HTML vs XML #1

Le monde de la technologie adore les duels. Chaque génération de consoles de jeux vidéos a été prétexte à des affrontements : Sega vs Nintendo lors des 3ème et 4ème génération de consoles, Sony vs Microsoft depuis la 6ème génération. La guerre était même plus rude pour les supports. Si les anciens se souviennent des cassettes VHS, tout le monde à oublié le format Betamax. Plus proche dans le temps, le format Blu Ray a enterré le HD-DVD.

Je pourrais multiplier les exemples, mais un cas retient mon attention. Ce n’est pas le plus spectaculaire. Ce n’est pas les plus simple à appréhender. Mais, à la fin des années 90, une syntaxe a décidé de remplacer la syntaxe qui permet de créer les sites Internet : le XML (eXtended Markup Language). 

Le langage qui permet de créer un site Internet est le HTML : HyperText Markup Language ou langage de balisage hypertexte. Un langage de balisage c’est un langage qui décrit une structure. Lorsque dans mon article précédent j’écris <html><body><p>Salut !</p></body></html>, en fait vous ne verrez marqué que ‘Salut !’ dans votre navigateur. Ce qui est entre chevrons (‘<’ et ‘>’) est un indicateur interprété par le navigateur pour composer la page.

La balise <html> indique que tout ce qui est entre elle et sa balise de fin, </html>, est du code html. La balise <body> indique que les informations seront dans le corps de la page. Et la balise <p> indique qu’il s’agit d’un paragraphe. Donc ‘Salut !’ est un paragraphe dans le corps d’une page HTML. Il existe de nombreuses balises HTML qui permettent de composer des pages. Je le détaillerai plus tard. Sinon, les tutoriels ne manquent pas. w3schools.com par exemple. 

Ce qui est à l’intérieur d’une balise se nomme un contenu ‘Salut !’ est le contenu de la balise ‘<p>’. ‘<p>Salut !</p>’ est le contenu de la balise <body>. Une balise peut être précisée par des attributs. Si je veux changer la couleur de fond de la page internet, j’ajouterai l’attribut ‘bgcolor’ à la balise <body>. Par exemple <body bgcolor=”e6ffe6”> donnera une page avec un fond vert pas trop violent. 

Le terme Hypertext ne renvoie pas à une version super-héroïque d’un texte mais indique que ces balises peuvent renvoyer vers des ressources externes à la page. Dans une page Internet, vous n’avez pas la représentation binaire d’une image (même si c’est possible), mais un lien vers cette image. De même, un élément d’un page internet peut envoyer vers un autre site Internet. C’est le fameux <a href …>.

Le HTML est une syntaxe simple pour décrire les pages accessibles depuis Internet. Il va de soit qu’en 28 ans cette syntaxe a été enrichie pour décrire des pages toujours plus complexes, mais l’idée reste là. Cette idée pose de nombreux problèmes pour les puristes. De tête, je peux en citer trois. 

  • Le premier problème est que les informations et leurs mises en forme sont portées dans un même document. Modifier la mise en forme d’un site nécessite donc de modifier intégralement la page. 
  • Le deuxième problème est qu’une page HTML ne se décrit que par rapport à une syntaxe prédéfinie. Et la définition est décrite dans un document dont le langage employé nécessite une pierre de rosette et souvent mal interprété. 
  • Le troisième problème est que le HTML n’interdit pas qu’une balise soit ouverte avant une autre balise et soit fermée avant. De même, une balise peut ne jamais être refermée. 

Après, Je suis d’accord, les trois problèmes décrits reviennent à couper un cheveu en 4, dans le sens de la longueur. En pratique, ces contraintes, pour un navigateur qui compose et affiche une page HTML, c’est quand même à s’arracher les cheveux. Les développeurs web des années 2000 s’en souviennent. 

Il fallait une parade. Les docteurs en informatique se devaient de corriger cela. Ainsi, en 1998, un nouveau challenger est arrivé sur le ring de l’Internet : XML.

Partager l'article !!

J’ai de la chance !!!