我必须以XML格式发送二进制数据,标准方法是使用base64;但是我有两个选择:
在第一种情况下,架构显示为:
<xs:element name="Image" type="xs:base64Binary" />
在第二种情况下,架构显示:
<xs:element name="Image" type="xs:string" />
我怀疑第一个选项是“更正确”,但它生成的XML大于第二个选项。 XML实例中的第一个元素以“U1Vrc ...”等开头,第二个元素以“SUkqAAA ...”等开头。
哪一个最常见?
答案 0 :(得分:2)
最好的选择是根本不将二进制数据存储在XML中,单独发送并让XML根据需要引用外部数据。但是如果你必须直接将它存储在XML中,那么base64Binary和hexBinary是二进制数据的唯一内置数据类型,但它们肯定不是唯一的选择。还有其他算法可以使用与XML字符串兼容的字母/数字字母表对数据进行编码。搜索或设计自己的语法,只编码受XML限制的二进制字节,并将其余字节保留为未编码。