Compresses and (optionally) encrypts the values of the specified attributes. The compressed and encrypted attribute values can be decompressed and decrypted using the AttributeDecompressor.

This transformer is particularly useful for compressing large blocks of XML, or geometry-storing attributes.

Jump to Configuration

Typical Uses

  • Password-encrypt a value for storage in a database, for decryption with the AttributeDecompressor
  • Compress large blocks of XML to optimize storage
  • Compress large geometry for storage as blob fields to optimize storage

How does it work?

The AttributeCompressor lets you pick one, some, or all attributes to be compressed, and select the level of compression to apply. You can choose to encrypt the compressed attributes with a user-provided password, or leave them unencrypted.

Features passing through the transformer are output with their attribute names unchanged, but the selected values compressed. The AttributeDecompressor can be used to read them, either elsewhere within the workspace or in a different workspace.


Usage Notes

  • The AttributeCompressor uses the zlib library to provide basic compression, and the OpenSSL library to provide encryption.
  • Different datasets have varying degrees of compressibility, and so results will vary.
  • When writing encrypted data to a database, it's best to use a Blob data type. That way the data is always stored in a binary data type and can be decrypted by the AttributeDecompressor. If the database field type is a string, then you should use the BinaryEncoder transformer before writing (to convert the binary value to a string) and the BinaryDecoder transformer after reading (to convert the string back to a binary value capable of being decrypted by the AttributeDecompressor).


Input Ports

Output Ports


Editing Transformer Parameters

Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.

Defining Values

There are several ways to define a value for use in a Transformer. The simplest is to simply type in a value or string, which can include functions of various types such as attribute references, math and string functions, and workspace parameters. There are a number of tools and shortcuts that can assist in constructing values, generally available from the drop-down context menu adjacent to the value field.

Dialog Options - Tables

Transformers with table-style parameters have additional tools for populating and manipulating values.


Processing Behavior


Feature Holding


Dependencies None

FME Community

The FME Community is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.

Search for all results about the AttributeCompressor on the FME Community.


Examples may contain information licensed under the Open Government Licence – Vancouver and/or the Open Government Licence – Canada.