xml - Base64 XML 二进制内容

我必须以 XML 格式发送二进制数据,标准方法是使用 base64;但是我有两个选择:

  • 将二进制文件存储到 xs:base64binary
  • 将 base64 二进制的 utf-8 编码字符串表示形式存储到 xs:string 元素中

在第一种情况下,模式如下:

 <xs:element name="Image" type="xs:base64Binary" />

在第二种情况下,模式如下:

 <xs:element name="Image" type="xs:string" />

我怀疑第一个选项更“正确”,但它生成的 XML 比第二个选项大。 XML 实例中的第一个元素以“U1Vrc...”等开头,第二个元素以“SUkqAAA..”等开头。

哪一个最常见?

最佳答案

最好的选择是根本不在 XML 中存储二进制数据,单独发送它并让 XML 根据需要引用外部数据。但如果非要直接存储在XML中,那么base64Binary和hexBinary是唯一内置的二进制数据类型,但它们肯定不是唯一的选择。还有其他可用的算法也可以使用与 XML 字符串兼容的字母/数字字母对数据进行编码。四处搜索,或设计您自己的语法,仅对受 XML 限制的二进制字节进行编码,其余的不进行编码。

https://stackoverflow.com/questions/1697164/

相关文章:

linq-to-sql - linq如何决定内部连接和外部连接

c# - 如何使用 C# System.Diagnostics.Process 与提示交互?

python - 压缩存档,可快速访问单个文件

visual-studio-2008 - 如何在同一解决方案的不同项目中使用相同的obj文件

erlang - Erlang 中的尾递归

ruby-on-rails - ActionMailer 和 Exchange

modeling - Data Vault 模型什么时候是数据仓库的正确模型?

visual-studio - Visual Studio 调试菜单不可见

php - CakePHP displayField 用法

php - 将 curl stdout 捕获到 PHP 中的变量中