0

我有一些像这样设置的 XML 要摄取

<project>
    <client>Some client</client>
    <description>some description</description>
</project>

我需要解组这些数据的对象是项目和客户。如何为此设置我的脚轮映射?

<class name="Project">
  <field name="description" type="string" />
  <field name="client" type="Client" />
</class>

如果我使用上面的方法,并且我有一个接受字符串的构造函数,我是否还需要为 Client 类进行映射 - 如果是这样,那需要是什么样的?

4

1 回答 1

0

Castor 的默认设置很可能 - 使用自省通过 getter/setter 方法获取字段列表,并根据类和成员名称生成 XML 标记,这将满足您的大部分需求。但是,您会发现最终可能需要对其进行调整,以确保输出中标签的顺序以及精确的格式等内容。

您需要添加的重要项目是map-to每个类的 XML 定义(允许将每个 XML 节点解组到正确的类)和bind-xml每个字段的节点,以允许将字段映射到正确的位置。您将对字段进行一项额外的更改client- 您会注意到客户端传入数据中的字段值不是client节点的子节点,而是节点的子project节点。您可以通过指定 来做到这一点container="true",这意味着一个类不会被映射,只是它的字段。

(未经测试)类似这样的东西,假设您拥有的客户端字符串将进入一个名为name.

<class name="Project">
 <map-to xml="project"/>
 <field name="client" type="Client" container="true"/>
 <field name="description" type="string"><bind-xml name="description"/></field>
</class>
<class name="Client">
 <field name="name" type="string"><bind-xml name="client"/></field>
</class>
于 2011-03-23T18:39:40.027 回答