XML Schema.Base64binary类型vs String类型

kir*_*gin 14 xml base64 xsd

我需要从一些XML元素解码Base64字符串.定义type="xs:base64binary"的元素和由type="xs:string"?定义的元素之间是否有任何区别?一些XSD开发人员拒绝将编码的字符串标记为base64binary.如果没有区别,有什么用type="xs:base64binary"

kjh*_*hes 23

XSD base64BinarystringXSD 之间肯定存在差异:

  • base64Binary表示在Base64中编码的二进制数据.它的值空间是固定长度二进制八位字节的集合.它的词汇空间限制为a-z,A-Z,0-9,+,/,=,加 空格.
  • string表示字符数据.它的值空间是一组有限长度的字符序列.它的词汇空间不受限制,除了必须由 XML字符组成.


CoD*_*anX 14

如果我正确理解规范,则存在语义差异.

base64Binary元素包含已被编码为base64任意的,二进制数据,这使得它基本上是一个字符串(或至少串兼容).

另一方面,字符串包含可打印的字符,它们(通常)组成单词和句子(自然语言).它们不能包含任意(二进制)数据,因为不允许使用某些字符.

您可以使用它base64Binary来指示解码数据不适合人类消费,其中string可读/可打印.