xml - 哪种 XML 模式数据类型对于二进制数据来说是节省空间的?

标签 xml xsd

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

最佳答案

没有其他现成的类型可以处理二进制内容。

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

使用这些内置类型的优势可以通过典型的 xml 到代码绑定(bind)库得到返回;例如JAXB 将为您提供一个 byte[],因此编码/解码对您来说是透明的。

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

关于xml - 哪种 XML 模式数据类型对于二进制数据来说是节省空间的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10804920/

相关文章:

java - Spring:按名称获取内联bean

python - 如何使用元素树测试 XML 节点是否具有特定字符串

XML 架构 - elementFormDefault 是不合格的,但使用了命名空间前缀

java - 解析 XSD 文档时出错

xml - 强制在 XML 模式中使用 CDATA

java - 使用 fractionDigits 为 BigDecimal 进行 JAXB 编码

javascript - 使用正则表达式修改xml文件

xml - XSLT - 选择没有属性的节点

sql - SQL 2005 中 XML 数据类型的大小限制

javascript - Jsonix 枚举