Pregunta

a veces se siente como XML ha sido utilizado sólo porque estaba de moda.

¿Fue útil?

Solución

Algunas fortalezas:

  • Puede validar datos XML con XSD
  • Puede proporcionar fácilmente contratos (como XSD) a otras partes que deberían crear / consumir datos XML, sin describirlos literalmente
  • Puede tener una o varias relaciones en varios niveles en la representación de datos XML
  • XML es posiblemente más legible que CSV
  • XML es compatible de forma nativa con el marco .net

Por nombrar algunos desde la parte superior de mi cabeza.

Otros consejos

Los archivos

.csv son buenos cuando sus datos son estrictamente tabulares y conoce su estructura. Tan pronto como comience a tener relaciones entre los diferentes niveles de sus datos, xml tiende a funcionar mejor porque las relaciones pueden hacerse obvias (incluso sin esquemas) simplemente anidando.

XML se ha convertido en el valor predeterminado por sus muchos beneficios que muchas otras personas ya han mencionado. Entonces, la pregunta realmente se convierte en & Quot; ¿Cuándo y por qué es preferible CSV a XML? & Quot ;.

Siento que CSV es preferible a XML cuando: - está cargando datos tabulares simples - usted tiene el control tanto de la generación como del consumo del archivo de datos - el conjunto de datos es grande

CSV es perfectamente utilizable si los primeros 2 puntos son verdaderos, y tiene un beneficio de rendimiento que se vuelve más significativo cuanto mayor es el conjunto de datos.

Hice una prueba rápida cargando ~ 8000 registros cada uno con 6 campos de texto. Cargar y analizar el XML tomó ~ 8 segundos. Cargar el CSV tomó menos de 1 segundo.

La sobrecarga de XML vale la pena en muchos casos, pero cuando las estrellas se alinean, CSV tiene más sentido.

CSV es útil cuando solo tiene una serie de valores que se relacionan con cierta información y sabe que siempre almacenará valores para cada campo.

XML tiene la ventaja de tener datos autodescriptivos (etiquetas) y tener jerarquía, lo que le brinda mucha más flexibilidad en la forma en que almacena los datos.

Puede tener una jerarquía mucho más compleja, etc. y estructura con XML vs. CSV. Ofrece mucha más flexibilidad.

Encontré una prueba de rendimiento interesante en la red. Dios ejemplo de inconvenientes de XML cuando las características de XML no son necesarias.

" Probé el experimento de Steven desde un ángulo diferente. Llené un Excel XP hoja de cálculo con un número de un solo dígito, guardado en XML y en un archivo de texto delimitado por comas (CSV). Luego comprimí ambos con WinZip y luego abrió ambos con Excel. Esto es lo que encontré:

El archivo XML tenía 840 MB, el CSV 34 MB: una diferencia del 2,500% Comprimido, el archivo XML tenía 2.5MB, el CSV 0.00015MB (150KB) - un 1,670% diferencia.

Igualmente dramático es el tiempo que tomó descomprimir y renderizar los archivos como una hoja de cálculo de Excel: tomó aproximadamente 20 minutos con el archivo XML; el CSV tomó 1 minuto - una diferencia del 2,000%. "

http://www.xml.com/pub/ a / 2004/12/15 / deviant.html

Por supuesto, a veces está de moda y es muy popular. Todo depende de tu aplicación. Prefiero los archivos de configuración en XML porque son fáciles de analizar. Mientras que, uso archivos CSV para DataGridView o volcados de bases de datos.

Este WTF diario: XML vs CSV La elección es obvia le ayudará a tomar su decisión ;)

XML es la copa más CSV cuando los datos no estructurados (se desconoce el esquema) y será leído por un humano.

Podría decirse que, a menos que los datos que contiene predominantemente de texto, CSV, también está destinado para el consumo humano.

También relevante, es si los datos son 2 o 3 dimensiones.CSV es el más adecuado para 2 dimensiones texto, y debido a su " nivel de detalle, XML funciona bien con 3 dimensiones de los datos.

El conjunto "standardness" de XML es una hipérbole, y no debe ser tomado literalmente.XML tiene enormes problemas técnicos y muchas de las soluciones no son particularmente elegante, o en muchos casos útiles:

  1. Utiliza texto para especificar su propio texto-codificación (el huevo o la gallina?)
  2. Ninguno de los más comunes lenguajes de esquema de XML funcionan muy bien.
  3. La antigua y común camino de la creación de lenguajes de marcado utilizando <tags> no es particularmente útil como un estándar.
  4. XML intenta retroactivamente calzador más potentes lenguajes de marcado como el SGML base, en sí mismo, creando un desorden de los incompatible legado.
  5. Todavía queda por determinar si es o no de texto XML secuencias de escape puede trabajar para nada, pero el más simple de los casos (es decir.amistoso de datos).

Para ser claros, XML es probablemente la opción incorrecta para el 90% de los datos de intercambio está siendo usado actualmente, puesto que los usos romper todos o algunos de los supuestos anteriores.

Además de las otras respuestas, XML le permite especificar en qué conjunto de caracteres se encuentra el documento.

He descubierto que las mayores ventajas de XML son la funcionalidad de análisis y la validación estricta que viene con la mayoría de las bibliotecas XML. La insistencia en un mensaje de error bien formado y fácil de entender (xyz no cerrado en la línea x, columna y) es una ayuda real en comparación con la búsqueda de valores rotos o comportamiento desconocido, debido a un error en el archivo CSV.

CSV es más liviano si desea mover cosas, ya que normalmente es 2 veces más pequeño que XML

XML es estándar y no será afectado por diferentes versiones de CSV del sistema operativo

No tengo suficiente reputación para comentar sobre la respuesta relevante, pero alguien sugirió comprimir el XML como una forma de ganar paridad de tamaño con los formatos csv. Si bien esto es cierto, la compresión XML a veces puede volver a morderte. Si está transfiriendo datos XML de un punto a otro y falla, es bueno poder leer el XML y descubrir qué salió mal. Si el XML está comprimido y la transferencia falla, a veces no es posible descomprimirlo y examinar el contenido. En otras palabras, la compresión de XML cancela la ventaja de legibilidad humana que tiene.

Yo diría que use XML (y / o JSON) porque algún día usted o alguien (con mal genio y una gran colección de armas) pueden tener que buscar un error en los datos CSV.

Entonces sí, estoy diciendo legibilidad, ¡no te olvides de pensar en el otro tipo! Él puede estar pensando en ti.

XML proporciona una forma de etiquetar sus datos con metadatos (proporcionados por los nombres de las etiquetas y los nombres de los atributos), mientras que CSV no. Combine esto con la capacidad de definir jerarquías estructuradas y hace que XML sea más fácil de entender cuando se proporciona solo con los datos, mientras que CSV requeriría una herramienta o documento para describir cómo se interpreta cada valor.

Puede atravesar fácilmente datos XML incluso cuando tenga datos complejos.

Verifique estos enlaces:

Y de nuevo uno más para XML: la X en XML significa E xtensible (lo sé, no realmente nemotécnico :-P). Eso significa que, con la ayuda del mecanismo de espacio de nombres XML, puede unir los dos lenguajes XML que desee y combinarlos en el mismo documento. Dado que solo hay un 'lenguaje' CSV (sin contar la miríada de estilos delimitadores), XML puede manejar una gran cantidad de complejidad, y eso de forma modular.

Sin embargo, esta es la ventaja de CSV: si realmente tiene datos tabulares, la sintaxis XML suele ser excesiva.

También descubrí que algunos generadores / analizadores de cvs tienen muchas dificultades con los datos de texto generales. Las cadenas de texto largas con muchos retornos de carro y comas y citas, etc., etc., hacen que la vida sea realmente difícil cuando se trata de manipular un cvs.

A SSMS le gusta truncar csv por diversión.

Estructurado, legible para el ser humano, más fácil de editar, validación, capacidad de análisis, transformabilidad, mecanografía, espacios de nombres, bibliotecas poderosas detrás de él, se encuentran entre muchas de las razones.

Por encima de todo, aunque es estándar.

  1. Existen analizadores y emisores existentes en todos los idiomas y bases de datos
  2. Se ocupan de la codificación para mí
  3. Se ocupan de escapar por mí

Eso es todo lo que me importa.

Claro, hay una forma semi-estándar de escapar en CSV (es decir, " la forma en que Excel lo hace "), y no es exactamente difícil de escribir, pero toma algo de tiempo hora. Y luego tienes que acordar implícitamente una codificación de caracteres fuera de banda. Pero entonces, debido a que es tan simple, la gente trata de escribirlo ellos mismos e invariablemente arruinan # 2 o # 3.

JSON también cumple con el # 2 y # 3 y se está acercando al # 1 satisfactorio. También es posiblemente más simple, al menos para archivos que no son documentos. No es sorprendente que me encuentre usándolo cada vez más, interna y externamente.

Y también lo prefiero porque es mucho más legible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top