¿El mejor algoritmo de compresión para XML?

Apenas sé nada acerca de la compresión, así que ten paciencia (esta es probablemente una pregunta estúpida y dolorosamente obvia).

Así que digamos que tengo un archivo XML con algunas etiquetas.

<verylongtagnumberone>
  <verylongtagnumbertwo>
    text
  </verylongtagnumbertwo>
</verylongtagnumberone>

Ahora digamos que tengo un montón de estas etiquetas muy largas con muchos atributos en mis múltiples archivos XML. Necesito comprimirlos al tamaño más pequeño posible. La mejor manera sería utilizar un algoritmo específico de XML que asigne seudónimos de etiquetas individuales como vlt1 o vlt2. Sin embargo, esto no sería tan 'abierto' de una manera como lo estoy intentando, y quiero usar un algoritmo común como DEFLATE o LZ. También ayuda si el archivo era un archivo .zip.

Ya que estoy tratando con texto plano (sin archivos binarios como imágenes), me gustaría un algoritmo que se adapte a texto plano. ¿Cuál produce el tamaño de archivo más pequeño (se prefieren los algoritmos sin pérdida)?

Por cierto, el escenario es el siguiente: estoy creando un estándar para documentos, como ODF o MS Office XML, que contienen archivos XML, empaquetados en un .zip.

EDIT: La cosa 'cifrado' fue un error tipográfico; debe estar bien 'compresión'.

Respuestas a la pregunta(8)

Su respuesta a la pregunta