.NET Реализация эффективного XML

Я экспортирую большие базы данных в xml-формат. Эти XML-данные необходимо сжать в наименьший возможный формат. Я много слышал об Efficient XML (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, который имеет стандартные типы элементов/атрибутов, должен давать гораздо лучший размер и эффективность обработки. Если он может повторно использовать теги, такие как словарь в сжатом файле, поскольку вы экспортируете из таблицы, также будет приятной особенностью.