function createRequestBody(blockIdEntries) {
        var doc = document.implementation.createDocument(null, "BlockList", null);

        // If we don't sort the block ID entries by part number, the file will be combined incorrectly by Azure
        blockIdEntries.sort(function(a, b) {
            return a.part - b.part;
        });

        // Construct an XML document for each pair of etag/part values that correspond to part uploads.
        qq.each(blockIdEntries, function(idx, blockIdEntry) {
            var latestEl = doc.createElement("Latest"),
                latestTextEl = doc.createTextNode(blockIdEntry.id);

            latestEl.appendChild(latestTextEl);
            qq(doc).children()[0].appendChild(latestEl);
        });

        // Turn the resulting XML document into a string fit for transport.
        return new XMLSerializer().serializeToString(doc);
    }
Implements the Put Block List Azure REST API call.  http://msdn.microsoft.com/en-us/library/windowsazure/dd179467.aspx.