java - 字节数组java xml序列化

标签 java xml serialization stream jaxb

我在 java 中处理 xml 序列化时遇到问题。实际上我必须为我的加密程序创建一个 xml header ,它应该如下所示:

<EncryptedFileHeader>
    <Algorithm>algorithm name</Algorithm>
    <KeySize>key size</KeySize>
    <BlockSize>block size</BlockSize>
    <CipherMode>mode</CipherMode>
    <IV>initial vector</IV>
    <ApprovedUsers>
        <User>
            <Email>mail</Email>
            <SessionKey>session key</SessionKey>
        </User>
    </ApprovedUsers>
</EncryptedFileHeade>
*ciphered data*

其中加密数据超出 header 。 我考虑过使用 xml beans,但它给了我很多开销数据,例如节点属性和属性,例如:

<void property="approvedUsers">
  <void index="0">

JAXB 提供了相当不错的 noode Lookout,但我传递的每个数据都会转换为 Base64。这是最大的问题。 “加密数据”和“ session key ”必须以纯二进制格式(byte[])存储。即使我使用 xml beans,它也是这样存储的:

<array class="byte" length="428704">
   <void index="0">
 <byte>43</byte>
</void>
<void index="1">
 <byte>93</byte>
</void>
<void index="2">
 <byte>76</byte>
</void>
<void index="3">
 <byte>48</byte>
</void>
<void index="4">
...

另一种方法是具有快速信息集的 JAXB..但我想知道是否有另一个简单的解决方案来解决这个问题。

编辑: 在这里我找到了对我的问题/误解的一些解释enter link description here

最佳答案

您不能在 XML 中放置任何字节,有限制,请参阅 http://en.wikipedia.org/wiki/Valid_characters_in_XML

关于java - 字节数组java xml序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16423747/

相关文章:

java - 谁调用了我的 Java 应用程序?

java - 如何将从串口接收到的字节转换为十六进制?

Python MINIDOM Object 如何只从 DOM 对象中获取元素名称

android - 以 MS WCF 兼容形式对日期字段进行 gson 序列化

php - 在 SQL 中反序列化 PHP 数组

java - 使用 Java Config 的 Spring 集成和 JMS

java - 错误 java.util.Date

java - 解析更新对象而不更改updatedAt

python - 在 python 中添加到 XML 文件

xml - Xpath标准是否支持属性中的空值