Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Les langages de schéma XML

Première rédaction de cet article le 2 février 2006
Dernière mise à jour le 16 février 2006


Je viens de finir un exposé sur les langages de schéma pour décrire un langage XML. Les transparents sont disponibles sous une forme adaptée à la présentation ou bien à l'impression. Le source est également disponible.

XML permet de définir plusieurs langages spécialisés, comme Docbook, Atom (format de syndication, RFC 4287), ou bien EPP ou IRIS, chers à tous les registres. Chacun de ces langages est défini par un schéma et ce schéma peut être écrit dans différents langages :

  • le langage originel, DTD (utilisé par le RFC 2629, par Docbook jusqu'à la version 4, l'actuelle),
  • Examplotron, qui permet de créer un schéma à partir d'un document exemple,
  • les W3C Schemas, souvent appelés XSD (utilisés par Wikipedia, par SOAP, ou bien pour EPP et IRIS - RFC 3981),
  • RelaxNG, le petit dernier (utilisé par OpenDocument, Docbook à partir de la version 5, Atom, RFC-editor queue, etc).

Avoir un schéma pour ses documents XML (il faut noter que ce n'est pas obligatoire) permet de les valider et de guider le processus d'édition.

Cet exposé parle donc de :

  • Petit rappel XML. - Pourquoi un langage de schéma ? Validation et édition guidée.
  • Caractéristiques d'un langage de schéma. Décrire la structure et décrire le contenu des éléments (leur type). Ambiguïté et non-déterminisme.
  • Exemple de langage XML qui va être implémenté avec les divers schémas.
  • DTD, l'ancêtre et ses limites.
  • Examplotron.
  • W3C Schemas, le langage d'EPP et d'IRIS.
  • RelaxNG, le langage de Docbook et d'Atom.
  • La notion de bibliothèque de types.
  • Outils de validation avec un schéma : rnv, xmllint ou bien jing.
  • Outils d'édition guidée avec un schéma : nxml mode.

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)