1. A computer-implemented method for encoding a document, the method comprising: receiving an input document at a computing system that includes a plurality of data elements that identify semantics of respective data values in the input document, wherein the respective data values correspond to respective textual content in the input document; determining, by the computing system, whether a name of a first data element in the input document is listed in a table of data element names; generating, based on the input document, an output document that includes, as a result of determining that the name of the first data element is listed in the table of data element names, a reference from the table of data element names that corresponds to the name of the first data element, wherein the reference identifies the first data element with less characters than the name of the first data element; determining, by the computing system, whether a first data value that corresponds to textual content of the first data element in the input document is listed in a table of textual content; inserting, by the computing system, the first data value into the output document as a result of determining that the first data value is not listed in the table of textual content; updating, by the computing system, the table of textual content to include the first data value as a result of determining that the first data value is not listed in the table of textual content; determining, by the computing system, whether a name of a second data element in the input document is listed in the table of data element names; inserting, by the computing system, the name of the second data element into the output document, as a result of determining that the name of the second data element is not listed in the table of data element names; determining, by the computing system, whether a second data value that corresponds to textual content of the second data element in the input document is listed in the updated table of textual content, wherein the textual content of the second data element matches the textual content of the first data element; inserting, by the computing system, into the output document, as a result of determining that the second data value is listed in the updated table of textual content, a reference to the first data value from the updated table of textual content; and storing, by the computing system, the output document having (i) the reference to the name of the first data element from the table of data element names, (ii) the first data value, (iii) the name of the second data element, and (iv) the reference to the first data value from the updated table of textual content.