.NET Реализация эффективного XML
Я экспортирую большие базы данных в xml-формат. Эти XML-данные необходимо сжать в наименьший возможный формат. Я много слышал об Efficient XML (EXI) и задавался вопросом, была ли реализация .NET, чтобы ее можно было вызвать из кода...
Есть ли у кого-нибудь пример этого, поскольку онлайн-ресурсы кажутся немного разреженными...
Ответы
Ответ 1
Такая реализация существует. Компания, создавшая предшественника формата Efficient XML Interchange (AgileDelta) предлагает эффективную библиотеку XML, которая включает в себя .Net-версию. Хотя они, похоже, не публикуют цену.
Официальный сайт EXI не перечисляет другую реализацию .Net.
Ответ 2
Нагасена имеет как .Net(написанные на С#), так и Java-реализации спецификации EXI.
Ответ 3
Оказывается, Microsoft создала собственный бинарный формат/кодировку XML под названием MC-NBFX (catchy eh). Это часть платформы .NET и WCF с .NET 3.0. Для получения дополнительной информации см.:
Другой вариант - запустить реализацию Java через IKVM, чтобы создать сборку .Net. Java-реализации с открытым исходным кодом, которые я мог найти, это:
Ответ 4
Есть ли причина, по которой вы хотите получить наименьший возможный формат? XML не предназначен для оптимизации сжатия. Ответ @Svick - это defacto, если вы хотите получить доступные архивы.
Вы можете найти много того, что вы здесь задаете:
Лучший алгоритм сжатия для XML?
EXI отлично, если вам нужны архивированные данные, которые будут регулярно доступны. В противном случае, если ваша цель заключается в архивировании в течение длительного времени, просто используйте утилиту zip. ПОЦЕЛУЙ.
Ответ 5
Двоичный XML - это путь (и там его реализация), если вам нужно приклеить к стандарту XML.
JSON, даже не являющийся XML, будет потерян с числами. Ex 32 бит unsigned int максимальное значение будет представлено 10 байтами в JSON. Почти во всех двоичных форматах это будет 4 байта. Это применимо к дате/времени и т.д.
Любой достойный двоичный XML, который имеет стандартные типы элементов/атрибутов, должен давать гораздо лучший размер и эффективность обработки. Если он может повторно использовать теги, такие как словарь в сжатом файле, поскольку вы экспортируете из таблицы, также будет приятной особенностью.