第 63 章 JAXB
JAXB 是一个数据格式,它使用 JAXB2 XML marshalling 标准,该标准包含在 Java 6 中,将 XML 有效负载解放到 Java 对象或将 Java 对象嵌套到 XML 有效负载中。
63.1. 选项
JAXB 数据格式支持 19 个选项,如下所列。
名称 | 默认 | Java 类型 | 描述 |
---|---|---|---|
contextPath |
| 您的 JAXB 类所在的 必需 软件包名称。 | |
contextPathIsClassName |
| 这可设为 true,以标记 contextPath 引用一个 classname 而不是一个软件包名称。 | |
schema |
| 针对现有架构进行验证。您可以使用前缀 classpath:、file: 或 http: 指定资源通过解析的方式。您可以使用 ',' 字符分隔多个模式文件。 | |
schemaSeverityLevel |
| 设置针对 schema 验证时使用的模式严重性级别。此级别决定了触发 JAXB 停止继续解析的最小严重性错误。默认值 0 (警告)表示任何错误(warning、error 或 fatal 错误)都会触发 JAXB 停止。有三个级别:0=warning, 1=error, 2=fatal error。 Enum 值:
| |
prettyPrint |
| 支持格式良好的用户打印输出:默认为 false。 | |
objectFactory |
| 是否允许使用 ObjectFactory 类在 marshalling 过程中创建 POJO 类。这只适用于没有向 JAXB 标注的 POJO 类,并提供 jaxb.index 描述符文件。 | |
ignoreJAXBElement |
| 是否忽略 JAXBElement 元素 - 在非常特殊用例中,只需要设置为 false。 | |
mustBeJAXBElement |
| marhsalling 都必须是具有 JAXB 标注的 java 对象。如果不是,则失败。这个选项可设为 false 以放宽,例如当数据已采用 XML 格式时。 | |
filterNonXmlChars |
| 要忽略非 xml 费用,并将其替换为空空间。 | |
encoding |
| 到 overrule 并使用特定的编码。 | |
片段 |
| 打开 marshalling XML 片段树。默认情况下,JAXB 会查找给定类上的 XmlRootElement 注释,以便在整个 XML 树上运行。这很有用,但有时生成的代码没有 XmlRootElement 注解,有时您需要 unmarshall 只属于树的一部分。在这种情况下,您可以使用部分 unmarshalling。要启用此行为,您需要设置属性 partClass。Camel 将这个类传递给 JAXB 的 unmarshaler。 | |
partClass |
| 用于片段解析的类名称。请参阅片段选项的更多详情。 | |
partNamespace |
| 用于片段解析的 XML 命名空间。请参阅片段选项的更多详情。 | |
namespacePrefixRef |
| 当使用 JAXB 或 SOAP 时,JAXB 实施将自动分配命名空间前缀,如 ns2、ns3、ns4 等。为了控制此映射,Camel 允许您引用包含所需映射的映射。 | |
xmlStreamWriterWrapper |
| 使用自定义 xml 流写入器。 | |
schemaLocation |
| 定义架构的位置。 | |
noNamespaceSchemaLocation |
| 定义无命名空间模式的位置。 | |
jaxbProviderProperties |
| 在包含自定义 JAXB 提供程序属性的注册表中,引用一个自定义 java.util.Map 进行查找,以用于 JAXB marshaller。 | |
contentTypeHeader |
| 数据格式是否应使用数据格式的类型设置 Content-Type 标头。例如,用于数据格式的 application/xml 示例到 XML,或者用于数据格式的应用程序/json 到 JSON。 |