From: Randy J. <rkj...@in...> - 2005-12-15 16:56:47
|
Based on some recent conversations on the list (and some experience helping others develop mzData readers and writers), I suspect we need better definition of the base64 arrays. The last comment was: > ... The error is similar in each case - for example: > Byte data array had length 56 which isn't a multiple of 8 > The documentation being added to the specification is pretty meager: spectrumType/mzArrayBinary: The list of m/z values (for any type of spectrum). The array is stored as a base64 encoded binary.The only type allowed is IEEE-754 floating point; the precision must be specified as either 32- or 64-bit; endianess must also be specified. The data element (given as a binaryDataGroup) has the attributes: precision xs:string required endian xs:string required length xs:int required But we don't give a good description of how the data are to be loaded into the array. All of the working implementations are using an unpadded binary array which is converted in its entirety to the base64 string in conformance with: http://www.ietf.org/rfc/rfc3548.txt In the latest version of the specification document, I have included Kai Runte's original base64 utility class implemented in Java as an example (Section 4). Take a look at the developing specification document to see how to make the data storage part easier to understand: http://psidev.sourceforge.net/docstore/view.php?sess=0&parent=7&expand=1&id=35&action=file_details Thanks, Randy |