Подтвердить что ты не робот

Когда и почему XML предпочтительнее для CSV?

иногда кажется, что XML использовался только потому, что он был модным.

4b9b3361

Ответ 1

Некоторые сильные стороны:

  • Вы можете проверить XML-данные на XSD
  • Вы можете легко предоставить контракты (как XSD) другим сторонам, которые должны либо создавать/потреблять XML-данные, не буквально описывая их
  • У вас может быть одно-много отношений в многоуровневых представлениях XML-данных
  • XML, возможно, более читабельна, чем CSV
  • XML поддерживается на основе инфраструктуры .net

Чтобы назвать несколько из верхней части головы.

Ответ 2

Файлы

.csv хороши, когда ваши данные строго табличные, и вы знаете его структуру. Как только вы начинаете иметь отношения между различными уровнями своих данных, xml имеет тенденцию работать лучше, потому что отношения могут быть очевидными (даже без схем) только путем вложенности.

Ответ 3

XML стал дефолтом для многих преимуществ, о которых уже упоминали многие другие люди. Таким образом, вопрос действительно становится "Когда и почему CSV предпочтительнее XML?".

Я чувствую, что CSV предпочтительнее XML, когда: - вы загружаете простые табличные данные - вы контролируете как генерирование, так и потребление файла данных - набор данных большой

CSV отлично используется, если первые 2 точки верны и имеют преимущество в производительности, которое становится более значительным, чем больше набор данных.

Я быстро выполнил загрузку ~ 8000 записей с 6 текстовыми полями. Загрузка и анализ XML занимали ~ 8 секунд. Загрузка CSV занимает менее 1 секунды.

Накладные расходы на XML стоят во многих случаях, но когда звезды выравниваются, CSV имеет больше смысла.

Ответ 4

CSV полезен, когда у вас есть только серия значений, относящихся к некоторой части информации, и вы знаете, что всегда будете хранить значения для каждого поля.

XML имеет преимущество при использовании самоописательных данных (тегов) и наличия иерархии, что дает вам гораздо большую гибкость в том, как хранить данные.

Ответ 5

У вас может быть гораздо более сложная иерархия и т.д. и структура с XML по сравнению с CSV. Он предлагает гораздо большую гибкость.

Ответ 6

Я нашел интересный тест производительности в сети. Бог пример недостатков XML, когда функции XML не нужны.

"Я попробовал эксперимент Стивена под другим углом. Я заполнил Excel XP таблицу с одноразрядным номером, сохранили ее как в XML, так и в текстовый файл с разделителями-запятыми (CSV). Затем я сжимал WinZip, а затем открыт как с помощью Excel. Вот что я нашел:

XML файл был 840 МБ, CSV 34MB - разница 2,500% Сжатый XML файл был 2,5 МБ, CSV 0,00015 МБ (150 КБ) - 1,670% разница.

Столь же драматичным является время, необходимое для распаковки и рендеринга файлов как электронная таблица Excel: потребовалось около 20 минут с XML файлом; CSV заняла 1 минуту - разница в 2 000% ".

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

Ответ 7

Конечно, это модно и достойно гудеть. Все зависит от вашего приложения. Я предпочитаю файлы конфигурации в XML, потому что они легко анализируются. В то время как я использую CSV файлы для DataGridView или дампов базы данных.

Этот Daily WTF: XML vs CSV. Выбор является очевидным поможет вам принять ваше решение;)

Ответ 8

В дополнение к другим ответам XML позволяет указать, какой символ установлен в документе.

Ответ 9

Я нашел самые большие преимущества XML как функции синтаксического анализа и строгую проверку, которая выходит из коробки с большинством библиотек XML. Настойчивость в корректности и легко понятном сообщении об ошибке (xyz, не закрытом в строке x, столбец y), является реальной помощью по сравнению с обнаруженными сломанными значениями или неизвестным поведением из-за ошибки в файле CSV.

Ответ 10

XML предпочтительнее CSV, когда данные неструктурированы (неизвестная схема) и будут прочитаны человеком.

Возможно, если данные содержат преимущественно текст, CSV также предназначен для потребления человеком.

Также важно, чтобы ваши данные были 2 или 3 размера. CSV наиболее подходит для двумерного текста, и из-за его "многословия" XML хорошо работает с 3-мерными данными.

Вся "стандартность" XML является гиперболой и не должна восприниматься буквально. XML имеет огромные технические проблемы, и многие из решений не особенно элегантны или во многих случаях полезны:

  • Он использует текст, чтобы указать его собственное кодирование текста (курица и яйцо?).
  • Ни один из наиболее распространенных языков схем для XML не работает особенно хорошо.
  • Древний и общепринятый способ создания языков разметки с использованием <tags> не особенно полезен в качестве стандарта.
  • XML пытается ретроактивно обучать более мощные языки разметки, такие как основанные на SGML, в себе, создавая беспорядок несовместимого наследия.
  • По-прежнему остается определить, могут ли escape-последовательности XML-текста работать ни на что, кроме самых простых (т.е. дружественных данных).

Чтобы быть ясным, XML, вероятно, является неправильным выбором для 90% обмена данными, в котором он используется в настоящее время, поскольку эти использования ломают некоторые или все вышеперечисленные допущения.

Ответ 11

CSV является более легким, если вы хотите переместить его, поскольку его обычно в 2 раза меньше, чем XML

XML является стандартным и не пострадает от версии OS's версии CSV

Ответ 12

У меня недостаточно репутации, чтобы прокомментировать соответствующий ответ, но кто-то предложил сжать XML как способ получить размерную четность с форматами csv. Хотя это верно, сжатие XML может иногда возвращаться, чтобы укусить вас. Если вы передаете XML-данные из точки в точку, и это терпит неудачу, приятно иметь возможность читать XML и выяснять, что пошло не так. Если XML сжат и передача не удалась, иногда ее невозможно распаковать и проверить содержимое. Другими словами, сжатие XML отменяет преимущества для чтения человеком, которые он имеет.

Ответ 13

Я бы сказал, что используйте XML (или JSON), потому что когда-нибудь вам или кому-то (с коротким характером и большой коллекцией оружия), возможно, придется найти ошибку в CSV-данных.

Так что да, я говорю читабельность, не забудьте подумать о другом! Он может думать о вас.

Ответ 14

XML предоставляет способ пометки ваших данных метаданными (предоставленными именами тегов и именами атрибутов), тогда как CSV не поддерживает. Смешайте это с возможностью определять структурированные иерархии, и это упрощает понимание XML при предоставлении только данных, тогда как для CSV требуется сопроводительный инструмент или документ, чтобы описать, как интерпретируется каждое значение.

Ответ 16

Структурированные, понятные для пользователя, простые в редактировании, валидации, аналитичности, трансформируемости, типизации, пространствах имен, мощные библиотеки позади него - все это относится ко многим причинам.

Прежде всего, хотя он стандартный.

Ответ 17

И снова еще один для XML: X в XML означает E xtensible (я знаю, не очень мнемонический: -P). Это означает, что с помощью механизма пространства имен XML вы можете присоединиться к любым двум XML-языкам, которые вам нравятся, и объединить их в одном документе. Учитывая, что существует только один CSV-язык (не считая мириады стилей разделителя), XML может справиться с довольно сложной задачей, и это модульным способом.

Однако это преимущество CSV: если у вас действительно есть табличные данные, синтаксис XML чаще всего переполняется.

Ответ 18

Я также обнаружил, что некоторые генераторы/парсеры cvs имеют большие трудности с общими текстовыми данными. Длинные текстовые строки с большим количеством возвратов кассовых сообщений и запятых и котировок и т.д. И т.д. Просто делают жизнь очень трудной, когда дело доходит до манипулирования cvs.

SSMS любит обрезать csv для удовольствия.

Ответ 19

  • Для этого на всех языках и базе данных существуют синтаксические анализаторы и эмиттеры.
  • Они имеют дело с кодировкой для меня
  • Они имеют дело с побегом для меня.

Это все, что для меня важно.

Конечно, есть полустандартный способ сделать экранирование в CSV (т.е. "как это делает Excel" ), и писать не сложно, но это занимает некоторое время. И тогда вы должны неявно согласиться с кодировкой символов вне диапазона. Но тогда, потому что это так просто, люди пытаются сами написать его и неизменно испортить либо # 2, либо # 3.

JSON также встречает # 2 и # 3 и приближается к удовлетворению # 1. Это также возможно проще, по крайней мере для файлов без документов. Неудивительно, что я все больше и больше использую его, внутренне и внешне.

Ответ 20

И я также предпочитаю его, потому что он гораздо читабельнее.