使用 Quick 在 Java 对象和 XML 之间进行转换
2010-03-25 00:00:00 来源:WEB开发网我们也可以从头创建 QJML 文件;然而,Quick 提供了自动生成 QJML 文件的工具,通常您只需做一些极小的更改。出于这个原因,这是推荐使用的方法。使用 cfgQdml2Qjml.bat或 cfgQdml2Qjml.sh 脚本来完成它,并将最新生成的 QDML 文件作为输入提供(Quick 读取 QDML 来确定要映射的构造;现在明白为什么需要这个文件了吧?):
sh cfgQdml2Qjml.sh -in=person.qdml -out=person.qjml
您现在应该有了一个新文件 person.qjml。
正如我刚才说的那样,您 将需要对该文件做一些更改,因为 Quick 对 Java 变量名做了一些有问题的假设。打开文件,添加粗体编码,使它看上去象 清单 7那样。
清单 7. 编辑 QJML
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE qjml SYSTEM "classpath:///qjml.dtd">
<qjml root="person">
<bean tag="person">
<targetClass>Person</targetClass>
<elements>
<item coin="firstName">
<property name="firstName"/>
</item>
<item coin="lastName">
<property name="lastName"/>
</item>
<item coin="address" repeating="True">
<property kind="list" name="addressList"/>
</item>
<item coin="phoneNumber" repeating="True">
<property kind="list" name="phoneNumberList"/>
</item>
</elements>
</bean>
<text tag="firstName"/>
<text tag="lastName"/>
<bean tag="address">
<targetClass>Address</targetClass>
<attributes>
<item coin="address.type" optional="True" value="home">
<property initializer="home" name="type"/>
</item>
</attributes>
<elements>
<item coin="street">
<property name="street"/>
</item>
<item coin="city">
<property name="city"/>
</item>
<item coin="state">
<property name="state"/>
</item>
<item coin="zipCode">
<property name="zipCode"/>
</item>
</elements>
</bean>
<text label="address.type" tag="type">
<enum value="home"/>
<enum value="work"/>
<enum value="other"/>
</text>
<text tag="street"/>
<text tag="city"/>
<text tag="state"/>
<text tag="zipCode"/>
<bean tag="phoneNumber">
<targetClass>PhoneNumber</targetClass>
<elements>
<item coin="type">
<property name="type"/>
</item>
<item coin="number">
<property name="number"/>
</item>
</elements>
</bean>
<text tag="type"/>
<text tag="number"/>
</qjml>
赞助商链接