17.6 Castor
Castor XML 映射是一个开源的 XML 绑定框架。它允许使用者将包含在一个 Java 对象模型中的数据转换成 XML 文档,或者反之。Castor 默认并不需要额外的配置就可以使用。但如果使用者希望能够对框架行为拥有更多的控制,则可以通过在配置中引入一个映射文件来达到这一目的。
读者可以从 Castor 的项目主页上了解更多相关内容。Spring 对这一框架的集成代码都在 org.springframework.oxm.castor 包底下。
17.6.1 CastorMarshaller
与 JAXB 类似,CastorMarshaller 类同时实现了 Marshaller 和 Unmarshaller 接口。它可以通过以下配置来被引用:
<beans>
<bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller" />
...
</beans>
17.6.2 映射
尽管 Castor 的默认编组行为基本能够适应大部分应用场景,有时候还是需要一些自定义的能力。这一需求可以通过使用一个 Castor 的映射文件来实现。更多信息请参考 Castor XML Mapping。
映射文件可以通过 mapppingLocation 属性进行设置,如下是一个配置了 classpath 资源的示例:
<beans>
<bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller" >
<property name="mappingLocation" value="classpath:mapping.xml" />
</bean>
</beans>
17.6.3 基于 XML 架构的配置
一个 castor-marshaller 代表了一个 org.springframework.oxm.castor.CastorMarshaller 实例。示例如下:
编组器实例可以用两种方式进行配置,一种是(通过 mapping-location 属性)指定映射文件的位置
,另一种则是(通过 target-class 或 target-package 属性)指定包含有相应 XML 描述信息的 Java POJO。后一种方式一般会与通过 XML 架构自动生成 Java 代码的功能结合使用。
以下是可用的标签属性:
属性 | 描述 | 是否必需 |
---|---|---|
id | 编组器的id | no |
encoding | 反编组 XML 文件使用的编码 | no |
target-class | 一个 Java POJO 类名,此类中包含一个(由代码自动生成器生成的) XML 类的描述信息 | no |
target-package | 一个包含了(由代码自动生成器生成的)POJO 和相应 Castor XML 描述类的 Java 包名 | no |
mapping-location | Castor XML 映射文件的位置 | no |