简体   繁体   English

如何在Spring Batch中使用XStream向XML添加名称空间前缀

[英]How can I add namespace prefix to XML using XStream in Spring Batch

I am using XStreamMarshaller of Spring batch to generate XML, how can I add prefix namespace to nodes? 我正在使用Spring批处理的XStreamMarshaller生成XML,如何为节点添加前缀名称空间?

<bean id="userUnmarshaller" 
                class="org.springframework.oxm.xstream.XStreamMarshaller">
        <property name="aliases">
            <util:map id="aliases">
                <entry key="user" value="com.app.User" />
            </util:map>
        </property>
</bean>

My Java Object : 我的Java对象:

package com.app;

public class User {

    int id;
    String username;
    String password;
    int age;

    //... getter and setter methods

}

I get now something like that : 我现在得到这样的东西:

<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user>
        <id>1</id>
        <username>app</username>
        <password>password</password>
        <age>30</age>
    </user>
</users>

but my need is : 但我的需要是:

<?xml version="1.0" encoding="UTF-8"?>
<ns1:users>
    <ns2:user>
        <ns2:id>1</ns2:id>
        <ns2:username>app</ns2:username>
        <ns2:password>password</ns2:password>
        <ns2:age>30</ns2:age>
    </ns2:user>
</ns1:users>

I tried to add xstream alias annotation to User.java, but it doesn't seems to work. 我试图将xstream别名批注添加到User.java,但是它似乎不起作用。 I really appreciate any help you can provide, Thank you 非常感谢您可以提供的任何帮助,谢谢

Try below code where I have updated property rootTagName and aliases entry key as shown below: 请尝试下面的代码,其中我更新了属性rootTagName别名条目键 ,如下所示:

<bean id="itemWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter">
    <property name="resource" value="file:xml/outputs/users.xml" />
    <property name="marshaller" ref="userUnmarshaller" />
    <property name="rootTagName" value="ns1:users" />
</bean>

<bean id="userUnmarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">
    <property name="aliases">
        <util:map id="aliases">
            <entry key="ns2:user" value="com.mkyong.User" />
        </util:map>
    </property>
</bean>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM