Castor学习

Castor学习
1.
准确说是一种Java XML数据绑定技术。
http://www.iteye.com/topic/582459:
<bind-xml name="borndate" node="attribute"/> ,name规定了这个值在xml中的显示名,而node规定了该值的xml存储方式,这里是用attribute形式进行存储,即写到了结点的属性里。   
2.Castor介绍----比较详细易懂的BLOG:
http://www.open-open.com/lib/view/open1326514404093.html

mapping.xml配置如下:  
01 <?xml version="1.0" encoding="UTF-8"?>
02 <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" "http://castor.org/mapping.dtd">
03 <mapping>
04     <class name="com.hoo.entity.Account" auto-complete="true"
05         <map-to xml="Account"/>
06
07         <field name="id" type="integer">
08             <bind-xml name="id" node="attribute" />
09         </field>
10
11         <field name="name" type="string">
12             <bind-xml name="name" node="element" />
13         </field>
14
15         <field name="email" type="string">
16             <bind-xml name="email" node="element" />
17         </field>
18
19         <field name="address" type="string">
20             <bind-xml name="address" node="element" />
21         </field>
22
23         <field name="birthday" type="com.hoo.entity.Birthday">
24             <bind-xml name="生日" node="element" />
25         </field>
26     </class>
27
28     <class name="com.hoo.entity.Birthday">
29         <map-to xml="birthday" />
30
31         <field name="birthday" type="string">
32             <bind-xml name="birthday" node="attribute" />
33         </field>
34     </class>
35 </mapping>


首先,看看这个xml文档的根元素是mapping,在mapping中可以配置class。也就是我们要转换的JavaObject的配置描述了。  

class元素的name属性就是配置的JavaObject的classpath路径了。  

关于class元素的auto-complate属性,如果这个属性的值为ture。那么编组后的xml,castor会自动给没有在mapping配置文件进行配置的属性自动编组(转换)到xml中。如果为false,那么在mapping配置文件中出现的属性将在编组后不现在在编组后的xml中。  

map-to就是当前class编组后的xml文档的节点元素名称。  

field就是描述JavaObject中的属性,name是Java对象的属性名称,type是类型。关于配置的type类型也有规定,你可以参考:http://www.castor.org/xml-mapping.html的field配置讲解。  

而field还有其他的属性配置,如get-method应该是getter方法、set-method应该是setter的方法、has-mehtod 应该是hashCode方法,有时候我们不一定要提高getter、setter方法,我们需要用自己的方法名称来代替setter、getter。如果当前field配置的是集合类型,那么你需要给field元素配置collection属性。  

bind-xml就是绑定(编组)成xml后的xml内容的描述,name就是编组后xml的节点元素名称,node有2个值,分别是 attribute、element。attribute是属性,它会在节点元素的属性中显示,例如:<account id=”2”></account>  

而element则是单独的一个元素,例如:<account><id>2</id></account>  

就这个样子的。  

mapping.xml还可以有其他标签,如:  

<include href="other_mapping_file.xml"/>  

导入外部xml文件,可以分多个配置。  




 

你可能感兴趣的:(Castor学习)