我需要从一些XML元素解码Base64字符串.定义type="xs:base64binary"
的元素和由type="xs:string"
?定义的元素之间是否有任何区别?一些XSD开发人员拒绝将编码的字符串标记为base64binary.如果没有区别,有什么用type="xs:base64binary"
?
XSD base64Binary
与string
XSD 之间肯定存在差异:
base64Binary表示在Base64中编码的二进制数据.它的值空间是固定长度二进制八位字节的集合.它的词汇空间限制为a-z
,A-Z
,0-9
,+
,/
,=
,加
空格.
string表示字符数据.它的值空间是一组有限长度的字符序列.它的词汇空间不受限制,除了必须由 XML字符组成.
如果我正确理解规范,则存在语义差异.
甲base64Binary
元素包含已被编码为base64任意的,二进制数据,这使得它基本上是一个字符串(或至少串兼容).
另一方面,字符串包含可打印的字符,它们(通常)组成单词和句子(自然语言).它们不能包含任意(二进制)数据,因为不允许使用某些字符.
您可以使用它base64Binary
来指示解码数据不适合人类消费,其中string
可读/可打印.