2009-08-20 21 views
40

Leí que después de años se usará yaml en lugar de xml. Por favor compare las ventajas y desventajas relativas de cada especificación.YAML comparado con XML

+5

¿Dónde lo leíste? –

+0

¿En qué contexto? –

Respuesta

58

YAML es mucho menos detallado. La relación señal/ruido es más alta sin todos los corchetes. Esto hace que sea subjetivamente más fácil de leer y editar para muchas personas. Por otro lado, es un poco (solo un poco) más difícil de analizar.

La mayor diferencia, sin embargo, es que XML está destinado a ser un lenguaje de marcado y YAML es realmente más un formato de datos. La representación de datos jerárquicos simples tiende a realizarse con mayor gracia en YAML, pero el texto real marcado es incómodo de representar.

EDIT: Me gustaría añadir, como referencia, que YAML es esencialmente (aunque no históricamente) una versión "limpia" de JSON ("JavaScript Object Notation") que elimina en gran medida el ruido de línea percepción de este último (entre paréntesis y tirantes). Si no puede encontrar una biblioteca YAML adecuada para un proyecto en particular, entonces JSON es una alternativa más ampliamente respaldada con muchas de las ventajas de YAML.

+6

Sé que esto es antiguo, pero -1 porque esto * ni siquiera intenta * justificar XML (por ejemplo, esquemas y consultas que son solo dos ventajas). –

+1

No lo publiqué para "hacer un caso para XML", sino para explicar en términos generales los propósitos de los dos. Cualquiera que sepa que quiere ejecutar XQuery tendrá una comprensión de XML mucho mayor que la que puede ofrecer un comentario de tres párrafos, y cualquiera que no lo haga debería elegir formatos basados ​​en eso. –

+5

Así como una pequeña pedantería RE JSON: YAML * tiene la intención * de no ser tal cosa, * es anterior a * JSON por varios años, y de hecho es un superconjunto del lenguaje. Esto ocurrió inicialmente por casualidad, afaiu, con solo un par de diferencias menores, hasta que se notó, momento en el que las especificaciones se alineaban entre sí en colaboración. –

24

YAML es menos detallado que XML; sin embargo, YAML está destinado sólo para datos y no es técnicamente un lenguaje de marcado (Y AML A 'int M arkup L anguage).

+0

el enlace de arriba está roto –

7

La principal ventaja que veo es que es más fácil de leer por los humanos. También me gusta un poco mejor que XML porque tiene el concepto de ciertas estructuras de datos (diccionarios y matrices) ya integradas.

Por otro lado, el soporte de la biblioteca para analizar YAML no está cerca de XML, por lo que es más difícil usarlo para cumplir uno de los principales usos de XML. Esa es la comunicación entre aplicaciones.

3

No estoy tan convencido de que YAML sea el futuro. Aunque lo he usado, y es WorksForMe ™, a menudo tengo quejas sobre la especificación. El último de los cuales es Why I Don't Like YAML.

6

Una gran ventaja para XML son las opciones para validar (opiniones entre paréntesis):

  • Schematron (muy potente)
  • W3C XML Schema (sólido)
  • DTD (no tan agradable (se no es ni siquiera xml))
  • XSD (más utilizado)

y opciones para consultar datos:

  • XPath (en la versión 2.x aún mejor)
  • XQuery (en su mayoría no es de interés más)

YAML es probablemente el más fácil de leer para los humanos en la mayoría de los casos.

JSON es bastante fácil de leer y es la forma en que JavaScript almacena los datos (corríjame si está mal). Me gusta mucho usar JSON cuando escribo mis propios lenguajes de programación estilo C para analizar valores.

+0

+1 Las personas tienden a olvidar esquemas y consultas cuando hablan de JSON/YAML. Utilizo un enfoque híbrido, donde visualizo datos como JSON en mi WS, pero manejo XML internamente. Funciona bastante bien si se cumplen algunas reglas de coherencia. –

+0

Además, no se olvide de XSLT, mientras que 1.0/1.1 es un poco aburrido y 2.0 no es compatible con Microsoft, pueden triturar muy limpiamente documentos XML para su posterior procesamiento. –

+3

Y lo que es peor, las personas tienden a olvidar que este tipo de herramientas también existen para JSON y YAML (aunque según una búsqueda rápida en Google, parece que las herramientas de consulta para YAML están en la infancia). Tener buenas herramientas para trabajar con un formato doloroso solo puede justificar su uso hasta que haya herramientas similares para formatos menos dolorosos. – Andy