我需要从某个 XML 元素解码 Base64 字符串。
type="xs:base64binary"
定义的元素和type="xs:string"
定义的元素有什么区别吗?一些 XSD 开发人员拒绝将编码字符串标记为 base64 二进制。如果没有区别那type="xs:base64binary"
有什么用?
如果我正确理解规格,则存在语义差异。
A
base64Binary
元素包含已编码为 base64 的任意二进制数据,这使得它基本上是一个字符串(或至少与字符串兼容)。
另一方面,字符串包含可打印字符,它们(通常)组成单词和句子(自然语言)。它们不能包含任意(二进制)数据,因为不允许使用某些字符。
您可以使用
base64Binary
来表示解码后的数据不适合人类消费,而string
是可读/可打印的。
我认为主要区别在于验证 XML。随机字符串不会通过 base64Binary 验证,而 base64Binary 内容将通过字符串验证。
如果我期望 XML 中包含 base64Binary 内容,并且不想要随机字符串。