Parameterized template compression for binary xml
AssigneeMicrosoft Corporation
InventorNicholas Allen
Life of this patent
Estimating the term…
Abstract
Compression and decompression of XML and other structured documents uses parameterized templates. A region of a serialized document is nominated as a template, information units are annotated as fixed or parameter values, and the template is recorded with a template identifier. A template invocation represents the nominated records. Nominated regions can be nested, and they do not necessarily correspond to XML elements or other well-formed portions of the original document. Templates may be defined on the fly, after compression has started.
Claims20
A process of decompressing a sequence of previously created and compressed automatically parsable document(s) containing records, the process comprising the steps of:
- receiving at least one record which nominates a region of a document as containing parameterized template information;
- automatically parsing the nominated region, thereby extracting nominated region parsing results which include at least one parameter;
- generating a template identifier;
- recording a template by adding the nominated region parsing results to a template collection in a correspondence with the template identifier;
- obtaining a first invocation record which contains a first invocation of the recorded template, the first invocation containing a recital of the template identifier and a first parameter value;
- and
- obtaining a second invocation record which contains a second invocation of the recorded template, the second invocation containing a recital of the template identifier and a second parameter value which differs from the first parameter value.
A computer-readable non-transitory storage medium configured with data and with instructions that when executed by at least one processor causes the processor(s) to perform a process for compressing an XML document, the process comprising the steps of:
- nominating a region of the XML document for production as a parameterized template;
- inserting at least one record in the document to effect the nomination;
- annotating at least one literal information unit within the nominated region;
- generating a template identifier;
- recording a parameterized template for the nominated region in a template collection, the parameterized template being recorded in correspondence with the template identifier;
- and
- including at least two invocations of the recorded template in the XML document, in which at least two different parameter values are passed for a given parameter of the recorded template.
A computer system comprising:
- a logical processor;
- a memory in operable communication with the logical processor;
- a template identifier generator;
- a sequence of compressed automatically parsable document(s) residing in the memory and having records which include at least one template nomination record nominating a region of the records as a parameterized template, at least one literal information unit annotation record within the nominated region, at least one template invocation record for an invocation of the parameterized template, the template invocation record containing a template identifier which (a) is consistent with identifiers generated by the template identifier generator, and (b) identifies the template, and at least one record marking literal information unit(s) as parameter value(s) for the invocation of the parameterized template.
Dependencies are inferred from the claim text.