2

我正在创建一个 XML 模式,并且需要包含一些原始二进制数据的字段。哪种内置数据类型提供最节省空间的表示?我认为base64BinaryhexBinary作为两种可能性,但它们似乎都是十六进制代码的字符串表示,因此不节省空间,并且还会导致编码它们的时间损失。哪种内置数据类型可以为我的二进制数据提供最佳的空间和时间效率表示?

4

1 回答 1

4

没有其他开箱即用的类型可以处理二进制内容。

最高效的是 base64,开销约为 30%;hex 至少是大小的两倍。还假设您使用主要是单字节字符集,例如 utf-8。使用 utf-16 编码 XML 将看到上述数字加倍。

使用这些内置类型的优势在于典型的 xml 到代码绑定库;例如,JAXB 会给你一个字节[],所以编码/解码对你来说是透明的。

它还取决于您如何移动/存储 XML;如果您使用支持二进制附件的基于 SOAP 的序列化程序,那么特别是对于大型集合,沿着这条路线走下去是值得的。

于 2012-05-29T19:38:34.480 回答