web-dev-qa-db-fra.com

YAML par rapport à XML

J'ai lu qu'après des années, yaml sera utilisé à la place de xml. Veuillez comparer les avantages et les inconvénients relatifs de chaque spécification.

51
Iguramu

YAML est beaucoup moins verbeux. Le rapport signal/bruit est plus élevé sans tous les supports. Cela le rend subjectivement plus facile à lire et à modifier pour de nombreuses personnes. D'un autre côté, il est légèrement (seulement légèrement) plus difficile à analyser.

La plus grande différence, cependant, est que XML est censé être un langage de balisage et YAML est vraiment plus un format de données. La représentation de données simples et hiérarchiques a tendance à être plus gracieusement effectuée dans YAML, mais le texte balisé réel est difficile à représenter.

EDIT: Je voudrais ajouter, à titre de référence, que YAML est essentiellement (mais pas historiquement) une version "plus propre" de JSON ("Javascript Object Notation") qui élimine en grande partie le bruit de ligne perçu de ce dernier (crochets et accolades). Si vous ne trouvez pas une bibliothèque YAML appropriée pour un projet particulier, alors JSON est une alternative plus largement prise en charge avec de nombreux avantages de YAML.

77
Thom Smith

YAML est moins verbeux que XML; cependant, YAML est destiné uniquement aux données et n'est pas techniquement un langage de balisage ( Y AML A 'int M arkup L anguage).

29
cakeforcerberus

Le principal avantage que je vois est qu'il est plus facilement lisible par l'homme. Je l'aime aussi un peu mieux que XML car il a le concept de certaines structures de données (dictionnaires et tableaux) déjà intégrées.

D'un autre côté, la prise en charge de la bibliothèque pour l'analyse YAML est loin de celle de XML, il est donc plus difficile de l'utiliser pour remplir l'une des principales utilisations de XML. C'est la communication inter-applications.

8
EBGreen

Un gros plus pour xml sont les options à valider (opinions entre parenthèses):

  • Schematron (extrêmement puissant)
  • Schéma XML W3C (solide)
  • DTD (pas si bien (ce n'est même pas xml))
  • XSD (le plus utilisé)

Et des options pour interroger les données:

  • XPath (dans la version 2.x encore mieux)
  • XQuery (la plupart du temps plus d'intérêt)

YAML est probablement le plus facile à lire pour les humains dans la plupart des cas.

JSON est assez facile à lire et c'est la façon dont JavaScript stocke les données (corrigez-moi si je me trompe). J'aime vraiment utiliser JSON lors de l'écriture de mes propres langages de programmation de style C pour analyser les valeurs.

8
RobF

Je ne suis pas convaincu que YAML soit l'avenir. Alors que je l'ai utilisé et qu'il fonctionne WorksForMe ™, j'ai souvent des plaintes concernant la spécification. Le dernier en date est Pourquoi je n'aime pas YAML .

5
Dominic Mitchell