Home

Craig Garrett

ExiProcessor is a command-line program that encodes text XML files into binary EXI and decodes EXI files into XML. It uses the open source Java-based library EXIficient (http://exificient.sourceforge.net) as the EXI parser. In essence, ExiProcessor is a command-line interface to EXIficient.

ExiProcessor can help people learn about the various EXI encoding and decoding options and how those options affect compression ratios. The source code itself can also be used as an example of how to integrate EXIficient into existing Java XML libraries.

EXI or Efficient XML Interchange is a W3C Recommendation (http://www.w3.org/TR/exi/) for binary encoding of XML, and can result in significantly better compression than general compression algorithms such as gzip.

Supported Options:

  • schema-informed coding
  • strict interpretation of schemas
  • xsd types only
  • compression
  • alignment (bit_packed, byte_packed, pre_compression)
  • preserve prefixes
  • preserve dtd
  • preserve lexicalValues
  • preserve comments
  • preserve pi
  • include xsi:schemaLocation/noNamespaceSchemaLocation
  • fragment
  • selfContained
  • blockSize
  • valueMaxLength
  • valuePartitionCapacity
  • include EXI Cookie
  • include Encoding Options in EXI Header
  • include schemaId in EXI Header

Command Line Examples:

Encode XML to EXI:
java -jar ExiProcessor.jar -xml_in notebook.xml -exi_out notebook.exi

Decode EXI to XML file:
java -jar ExiProcessor.jar -exi_in notebook.exi -xml_out notebook.decoded.xml

Decode EXI to XML on stdout:
java -jar ExiProcessor.jar -exi_in notebook.exi

Project Admins:

Project Admins:

Download the latest binary distro (source and build.xml included):