Base64 XML二进制内容

时间:2009-11-08 17:06:00

标签: xml schema

我必须以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 ...”等开头。

哪一个最常见?

1 个答案:

答案 0 :(得分:2)

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