[英]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.