Java 基于XSD的二进制序列化
您好,我正在寻找一种用于java的二进制序列化: -对模式使用xsd -输出非常小的字节流 -字节流不应包含字段名和数据类型 -POJO应该像gor jaxb一样生成 -很高兴拥有:java脚本的植入Java 基于XSD的二进制序列化,java,serialization,xsd,binary-serialization,Java,Serialization,Xsd,Binary Serialization,您好,我正在寻找一种用于java的二进制序列化: -对模式使用xsd -输出非常小的字节流 -字节流不应包含字段名和数据类型 -POJO应该像gor jaxb一样生成 -很高兴拥有:java脚本的植入 有人知道这方面的解决方案吗?如果您使用的是XSD模式,传统的期望是将XML序列化到XML或从XML序列化。这不是一个非常小的字节流;纯文本表示二进制数据整型、浮点型等效率很低 然而,有一个选择。XSD模式和ASN.1模式或多或少是可互换的。国际电联甚至定义了两者之间的官方翻译。有一些工具可以在两者
有人知道这方面的解决方案吗?如果您使用的是XSD模式,传统的期望是将XML序列化到XML或从XML序列化。这不是一个非常小的字节流;纯文本表示二进制数据整型、浮点型等效率很低 然而,有一个选择。XSD模式和ASN.1模式或多或少是可互换的。国际电联甚至定义了两者之间的官方翻译。有一些工具可以在两者之间进行转换 为什么这是相关的?使用ASN.1,您可以访问各种不同的导线格式。有很多二进制的,也有文本的,包括XML和JSON。重要的是,其中一个二进制编码规则是超对齐压缩编码规则,它将使用最小比特数来表示发送的数据 例如,假设您有一个包含整数字段的类,并且您将其值限制在0到7之间。对于该字段,uPER仅使用3位 您可以使用的是一个XSD模式,由ASN.1编译器OSS转换为ASN.1并编译,或者由ASN.1编译器Obj Sys直接编译,生成Java POJO类,这些类可以序列化为ASN.1的超级wireformat和所有其他二进制格式,以及XML和JSON,取决于ASN.1编译器的使用情况。这与jaxb/xjc的工作方式类似 我在上一段中建议的工具需要,AFAIK,来自Objective Systems obj-sys.com或OSS Nokalva www.OSS.com的ASN.1专有编译器和工具,它们不是免费的。我是这两种工具的客户,与它们没有任何关联。我认为XSDASN1模式有一个免费的在线转换器,还有一些免费的ASN1编译器,尽管它们通常以C而不是Java为目标
链接:,关于XSD、ASN.1等,还有其他可用的选项,但可能意味着删除XSD模式并使用其他内容 谷歌协议缓冲区 Google协议缓冲区有Java和大量其他绑定,而GBP wireformat是二进制的。它的数据大小不如ASN.1的uPER,但肯定比XML文本小。看见它有自己的模式语言,据我所知,XSD和GPB之间没有转换器 Capn原型 另一个有趣的选项看到了,同样是二进制格式。它的大小不会超过uPER,但序列化/反序列化速度很快,至少在C/C++中是这样。同样,我知道它的模式语言和XSD之间没有转换