17.6 Castor

优质
小牛编辑
127浏览
2023-12-01

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 class="org.springframework.oxm.castor.CastorMarshaller" />
	...
</beans>

17.6.2 映射

尽管 Castor 的默认编组行为基本能够适应大部分应用场景,有时候还是需要一些自定义的能力。这一需求可以通过使用一个 Castor 的映射文件来实现。更多信息请参考 Castor XML Mapping。

映射文件可以通过 mapppingLocation 属性进行设置,如下是一个配置了 classpath 资源的示例:

<beans>
	<bean 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 实例。示例如下: <oxm:castor-marshaller mapping-location="classpath:org/springframework/oxm/castor/mapping.xml"/>

编组器实例可以用两种方式进行配置,一种是(通过 mapping-location 属性)指定映射文件的位置 ,另一种则是(通过 target-class 或 target-package 属性)指定包含有相应 XML 描述信息的 Java POJO。后一种方式一般会与通过 XML 架构自动生成 Java 代码的功能结合使用。

以下是可用的标签属性:

属性描述是否必需
id编组器的idno
encoding反编组 XML 文件使用的编码no
target-class一个 Java POJO 类名,此类中包含一个(由代码自动生成器生成的) XML 类的描述信息no
target-package一个包含了(由代码自动生成器生成的)POJO 和相应 Castor XML 描述类的 Java 包名no
mapping-locationCastor XML 映射文件的位置no