十六进制二进制字节顺序

时间:2020-08-25 09:27:12

标签: java xml xsd hex

第一个有关HexBinary for XML的google链接显示了指向this文章的链接。

有一个十六进制表示的示例:

"<?xml version="1.0" encoding="UTF-8"?>"
"3f3c6d78206c657673726f693d6e3122302e20226e656f636964676e223d54552d4622383e3f"

但是当我尝试自己实现编码或使用在线转换器时,会收到下一个字符串:

"3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E"

3f3c与3c3f字节顺序之间的差异。它不能是UTF-16问题,因为它将产生类似3c003f00或003c003f的内容。

所以,我的问题是:这是文章中的问题(来自O'Reilly的书)还是xsd:hexBinary的特殊规则要求反转字节顺序?

1 个答案:

答案 0 :(得分:1)

没有任何规则可以告诉您反转字节顺序。

XSD here只是:

hexBinary表示任意十六进制编码的二进制数据。

请注意任意一词-它不会告诉您如何对数据进行编码,或者在编码完成后您需要交换每两个字节。

这是书中的错误。这本书的作者似乎只是将文本复制并粘贴到了十六进制编辑器或转换器中,而没有注意到默认设置下它以specification for hexBinary data type字节顺序以2字节为单位显示数据。如果您不习惯使用二进制数据,这是一个容易犯的错误。

似乎未报告该勘误表。如果需要,您可以向little-endian

提交勘误