名称/值对的 Castor 编组

发布于 2024-12-19 19:22:08 字数 1299 浏览 2 评论 0原文

我有一个简单的 POJO,其中包含一个名称/值对:

public class Parameter {

    private String name = null;
    private String value = null;

    public Parameter() {
        // Do Nothing
    }

    public Parameter(String name, String value) {
        this.name = name;
        this.value = value;
    }

    public String getName() {
        return name;
    }

    public String getValue() {
        return value;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setValue(String value) {
        this.value = value;
    }

}

我想将其编组到一个如下所示的 XML 结构中:

<parameter name="P3">Parameter 3</parameter>

我尝试了一个看起来像这样的映射,但它不起作用:

<class name="pkg.Parameter">
    <field name="Name">
        <bind-xml name="name" node="attribute" />
    </field>
    <field name="Value">
        <bind-xml name="paramValue"/>
    </field>
</class>

它给了我这个:

<parameter name="P3">
  <paramValue>Parameter 3</paramValue>
</parameter>

差不多就这样了但这个值显然放错了地方。本质上我希望从 Parameter.getValue() 返回的值形成的内容。元素而不是子元素。

这应该很简单,我相信它会很简单,但我似乎无法做到这一点。

有什么想法吗?

I have a simple POJO that contains a name/value pair:

public class Parameter {

    private String name = null;
    private String value = null;

    public Parameter() {
        // Do Nothing
    }

    public Parameter(String name, String value) {
        this.name = name;
        this.value = value;
    }

    public String getName() {
        return name;
    }

    public String getValue() {
        return value;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setValue(String value) {
        this.value = value;
    }

}

I want to marshall this into an XML structure that looks like this:

<parameter name="P3">Parameter 3</parameter>

I've tried a mapping that looks like this but it's not working:

<class name="pkg.Parameter">
    <field name="Name">
        <bind-xml name="name" node="attribute" />
    </field>
    <field name="Value">
        <bind-xml name="paramValue"/>
    </field>
</class>

It gives me this:

<parameter name="P3">
  <paramValue>Parameter 3</paramValue>
</parameter>

That's almost there but the value is obviously misplaced. Essentially I want the value returned from Parameter.getValue() to form the content of the <parameter> element rather than a subelement.

This should be simple, and I'm sure it will be, but I can't seem to get there.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

女中豪杰 2024-12-26 19:22:08

哦,好悲伤。就好像花时间解释问题会重新组织你大脑中的一切,点击“发布”后解决方案就会出现!

事实证明,我需要做的就是更改

<field name="Value">
    <bind-xml name="paramValue"/>
</field>

<field name="Value">
    <bind-xml node="text"/>
</field>

完成后,我现在看到的是:

<parameter name="P3">Parameter 3</parameter>

史蒂夫

Oh good grief. It's as if taking the time to explain the problem reorganises everthing in your brain and the solution comes to you just after clicking "Post"!

It turns out that all I needed to do was change

<field name="Value">
    <bind-xml name="paramValue"/>
</field>

to

<field name="Value">
    <bind-xml node="text"/>
</field>

Having done that I'm now seeing this:

<parameter name="P3">Parameter 3</parameter>

Steve

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文