XML 架构。 Base64binary 类型与 String 类型
XML Schema. Base64binary type vs String type
我需要从某些 XML 元素解码 Base64 字符串。 type="xs:base64binary"
定义的元素和type="xs:string"
定义的元素有区别吗?一些 XSD 开发人员拒绝将编码字符串标记为 base64binary。如果没有区别,type="xs:base64binary"
有什么用?
如果我理解正确the specs,则存在语义差异。
base64Binary
元素包含已编码为 base64 的任意二进制数据,这使得它基本上是一个字符串(或至少与字符串兼容)。
另一方面,字符串包含可打印字符,这些字符(通常)构成单词和句子(自然语言)。它们不能包含任意(二进制)数据,因为某些字符是不允许的。
您可以使用base64Binary
表示解码后的数据不适合人类消费,其中string
是readable/printable。
XSD中的base64Binary
和string
肯定是有区别的:
- base64Binary represents binary data encoded in Base64. Its value space 是固定长度的二进制八位字节集。它的
词汇 space 仅限于
a-z
、A-Z
、0-9
、+
、/
、=
,加上
whitespace.
- string represents character data. Its value space is the set of finite-length sequences of characters。它的词汇
space 不受限制,不必由 XML 组成
字符.
我需要从某些 XML 元素解码 Base64 字符串。 type="xs:base64binary"
定义的元素和type="xs:string"
定义的元素有区别吗?一些 XSD 开发人员拒绝将编码字符串标记为 base64binary。如果没有区别,type="xs:base64binary"
有什么用?
如果我理解正确the specs,则存在语义差异。
base64Binary
元素包含已编码为 base64 的任意二进制数据,这使得它基本上是一个字符串(或至少与字符串兼容)。
另一方面,字符串包含可打印字符,这些字符(通常)构成单词和句子(自然语言)。它们不能包含任意(二进制)数据,因为某些字符是不允许的。
您可以使用base64Binary
表示解码后的数据不适合人类消费,其中string
是readable/printable。
XSD中的base64Binary
和string
肯定是有区别的:
- base64Binary represents binary data encoded in Base64. Its value space 是固定长度的二进制八位字节集。它的
词汇 space 仅限于
a-z
、A-Z
、0-9
、+
、/
、=
,加上 whitespace. - string represents character data. Its value space is the set of finite-length sequences of characters。它的词汇 space 不受限制,不必由 XML 组成 字符.