Document structuré et métadonnées

Introduction au langage XML

Bibliographie

Sites de Références

Cours en ligne

Bibliographie

XML

eXtensible Markup Language

Langage de balisage extensible

Langage de balisage – notions

Ce type de langage utilise des balises pour marquer des portions de texte.

On en distingue plusieurs types.

Langages de balisage procéduraux (et présentationnels)

Le balisage indique au programme des instructions de traitements pour le formatage du document.

  • LaTeX
  • HTML
  • RTF
  • Postcript…

Exemple


Un paragraphe contenant un lien.

Un paragraphe contenant un lien.

Langages de balisage descriptifs

Le balisage se contente de décrire les données, sans but de traitement.

  • TEI (SGML / XML)
  • MathML (XML)
  • RDF…

Un petit exercice de balisage…

Alan Turing

23 juin 1912 à Londres (Royaume-Uni) - 7 juin 1954 à Wilmslow (Royaume-Uni)

Alan Mathison Turing est un mathématicien et cryptologue britannique, auteur de travaux qui fondent scientifiquement l'informatique.

HTML


<html>
	<head/>
	<body>
		

Alan Turing

23 juin 1912 à Londres (Royaume-Uni) - 7 juin 1954 à Wilmslow (Royaume-Uni)

Alan Mathison Turing est un mathématicien et cryptologue britannique, auteur de travaux qui fondent scientifiquement l'informatique.

</body> </html>

Alan Turing

23 juin 1912 à Londres (Royaume-Uni) - 7 juin 1954 à Wilmslow (Royaume-Uni)

Alan Mathison Turing est un mathématicien et cryptologue britannique, auteur de travaux qui fondent scientifiquement l'informatique.

XML


<notice>
	Alan Turing
	
		23 juin 1912 à
		Londres (Royaume-Uni) -
		7 juin 1954 à
		Wilmslow (Royaume-Uni)
	
	
		Alan Mathison Turing est un
		mathématicien et
		cryptologue britannique,
		auteur de travaux qui fondent scientifiquement
		l'informatique.
	
</notice>


Langages de balisage descriptifs

3 étapes

  • on identifie des données
  • on choisit des balises
  • on balise le texte (encodage)

Avantages

  • distinction contenu/forme
  • facilite les traitements des textes encodés
  • excellent format pivot (portabilité des documents)

Arbre XML

Arborescence – notions

  • les éléments : unités d’information
  • élément racine : unique, englobe tous les autres
  • parent/enfant : imbrication directe
  • frères : deux éléments qui ont le même parent
Arborescence XML

eXtensible

Metalangage de balisage

Métalangage de balisage – notions

Langage conçu pour définir d'autres langages.

pas de jeu de balises prédéfini.

Harold, Elliotte Rusty et Means, W. Scott. « XML en concentré : manuel de référence ».

Un ensemble de règles pour définir des applications.

Il était une fois XML

Standard Generalized Markup Language

  • 1969 : Charles Goldfarb, Edward Mosher et Raymond Lorie, alors chez IBM, mettent au point GML (Generalized Markup Language)
  • 1980’s : Charles Goldfarb développe SGML
  • 1986 : SGML est publié comme norme internationale ISO 8879:1986
  • 1989 : Naissance de HTML, une application SGML
  • 1998 : Naissance de XML

Standard Generalized Markup Language

Objectif : représenter des données contenues dans un document sans tenir compte des systèmes utilisés pour la saisie et le traitement, ni des solutions de publication.

SGML est un métalangage qui introduit la notion de DTD (Document Type Definition) qui permet de décrire un modèle de document.

Un document SGML se compose de 3 parties : une DTD, une ou plusieurs feuilles de style et une instance

HyperText Markup Language une application SGML

Langage de publication pour le web fondé sur l’utilisation de liens hypertextuels entre les documents et sur le protocole HTTP (Hypertext Transfer Protocol).

Développé au CERN par Tim Berners-Lee, c’est une application SGML.

Contrairement à SGML, HTML mélange des balises de structure et des balises de présentation.

Limites de SGML

  • Complexe à mettre en œuvre nécessite la déclaration d’une DTD
  • Peu adapté à l’édition sur le Web
  • Prise en charge limité des jeux de caractères internationaux…

XML – le cahier des charges

  • XML shall be straightforwardly usable over the Internet.
  • XML shall support a wide variety of applications.
  • XML shall be compatible with SGML.
  • It shall be easy to write programs which process XML documents.
  • The number of optional features in XML is to be kept to the absolute minimum, ideally zero.
  • XML documents should be human-legible and reasonably clear.
  • The XML design should be prepared quickly.
  • The design of XML shall be formal and concise.
  • XML documents shall be easy to create.
  • Terseness in XML markup is of minimal importance.
W3C Recommendation, Extensible Markup Language (XML) 1.0 (Fifth Edition)

XML en 4 points

  • XML ne sert pas à afficher les données mais à les décrire.
  • Le nom des balises n’est pas prédéfini.
  • On peut utiliser une "grammaire" de balises (un schéma), pour définir des contraintes ou s’assurer de la consistance de l’encodage.
  • XML est auto-descriptif et lisible par l’homme.

Syntaxe XML

L’élément XML

Syntaxe élément

L’attribut XML

Syntaxe attributs xml

Le prologue


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

	

Alan Turing est né le 23 juin 1912 à Londre.

Syntaxe XML

Les signes <, > et </ délimitent les balises ouvrantes et fermantes : <p></p>

Le nom d’un attribut est séparé de sa valeur par le signe “=”.

La valeur d’un attribut est placée entre guillemets simples ou doubles. (attribut='valeur' est équivalent à attribut="valeur")

Les éléments vides peuvent s’écrire <div></div> ou <div/>

Arbre d’éléments

Comme nous l’avons vu, un document XML est une arborescence :

Un arbre XML possède un seul et un seul élément racine qui contient tous les autres éléments



	Alan Turing
	



Un élément peut contenir du texte et/ou d’autres éléments (contenu mixte), ou être vide.


Alan Turing est né le 23 juin 1912 à Londre.

Les attributs

Les attributs précisent la signification des éléments, leur ajoutent des caractéristiques, des métadonnées.


le 23 juin 1912


L’attribut est toujours saisi à l’intérieur de la balise ouvrante de l’élément.

Les noms XML

Les noms d’éléments et d’attributs peuvent contenir (et uniquement) :

  • tous les caractères alphanumériques (a-z, A-Z, 0-9) – y compris avec accent
  • le tiret bas (underscore) « _ »
  • le trait d’union « - »
  • le point « . »

Un nom ne peut pas commencer par un nombre, ni par un point, ni par un trait d’union, ni par xml (quelle que soit la casse utilisée).

XML est sensible à la casse ! (<p/> ≠ <P/>)

Les entités

Avec XML, il y a 5 entités de caractère prédéfinies. Elles servent à représenter des caractères réservés, c’est-à-dire utilisés pour la syntaxe XML : « & » (&amp;), « < » (&lt;), « > » (&gt;), « " » (&quot;) et « ' » (&apos;).

Il est possible d’en définir d’autres dans des DTD.

Les commentaires

Les commentaires commencent par “<!--” et se terminent par “-->”. Ils ne peuvent contenir de double trait d’union.


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


	

Alan Turing est né le 23 juin 1912 à Londre.

Les instructions de traitement

Elles donnent des instructions pour un programme (p. ex. pour l’application d’une feuille de transformation XSLT, ou une feuille de style CSS). Les instructions de traitement commencent par <? et se terminent par ?>.


<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="mon-style.css"?>								

	

Alan Turing est né le 23 juin 1912 à Londre.

Les sections CDATA

Les sections CDATA commencent par <![CDATA[ se terminent par ]]>

Elles indiquent que leur contenu ne doit pas être interprété comme du XML.



	<![CDATA[
		Je peux donc mettre ici du code javascript ou python, ou encore des &, et des <, >… 
	]]>



Les espaces de nom

Ils permettent l'utilisation d’éléments et d’attributs issus de plusieurs langages XML. Ils peuvent être préfixés ou non.




	
		Mon paragraphe contenant une formule mathématique encodée avec MathML
		
		
			x=2
		
	



Attributs par défaut

XML propose des attributs par défaut, sous l’espace de nom xml (déclaré par défaut), comme par exemple xml:id ou xml:lang.

Document XML bien formé

On dit d’un document XML qu’il est bien formé lorsqu’il répond aux différentes contraintes syntaxiques que nous venons de voir.

  • respect des règles concernant les noms XML
  • élément racine unique englobant tous les autres
  • présence des balises ouvrantes et fermantes
  • pas de chevauchement de balises (<balise1><balise2></balise1></balise2>)
  • respect des entités XML
  • les attributs sont déclarés dans les balises ouvrantes
  • unicité des attributs pour un même élément
  • pas d’attribut vide…

Utiliser XML

  • Initialement pensé pour l’encodage de documents textuels (narratifs)…
  • …mais utilisé comme format de données structurées, sous forme de bases.