Я почти ничего не знаю об компрессии, так что несите меня (это, наверное, глупый и болезненно очевидный вопрос).Лучший алгоритм сжатия для XML?
Так что скажем, у меня есть XML-файл с несколькими тегами.
<verylongtagnumberone>
<verylongtagnumbertwo>
text
</verylongtagnumbertwo>
</verylongtagnumberone>
Теперь можно сказать, что у меня есть куча этих очень длинных тегов со многими атрибутами в моих многочисленных файлах XML. Мне нужно сжать их до минимального размера. Лучшим способом было бы использовать XML-специфический алгоритм, который присваивает псевдонимы отдельных тегов, такие как vlt1 или vlt2. Однако это не было бы «открытым» способом, как я пытаюсь использовать, и я хочу использовать общий алгоритм, такой как DEFLATE или LZ. Это также помогает, если архив был .zip-файлом.
Поскольку я имею дело с открытым текстом (без двоичных файлов, таких как изображения), мне нужен алгоритм, который подходит для обычного текста. Какой из них производит наименьший размер файла (предпочтительны алгоритмы без потерь)?
Кстати, сценарий таков: я создаю стандарт для документов, таких как ODF или MS Office XML, которые содержат файлы XML, упакованные в .zip.
EDIT: «шифрование» было опечаткой; это должно быть сжато ».
Как это связано с шифрованием? И простой ответ - позволить ZIP сделать сжатие: он широко доступен, делает приличную работу по тексту, и не стоит времени найти «самый маленький возможный размер». – kdgregory
Почему бы просто не использовать OpenXML? Это в основном то, что вы хотите :). Не уверен, что это лучшее сжатие, но мне это нравится. И если вы этого еще не знаете, OpenXML в основном представляет собой zip-файл, поэтому вы можете переименовать ваши документы Office 2007 в виде .zip-файла (т. Е. Something.docx в something.zip) и открыть его как zip-файл. Внутри - это в основном куча XML. –
Вы можете просто использовать кучу XML-файлов в zip-файле и любое расширение файла, которое вы хотите.Почему очень долгозначительные ??? –