我有两个类People.java和PeopleMain.java
People.java
package com.test;
public class People {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
PeopleMain.java
package com.test;
import com.thoughtworks.xstream.XStream;
public class PeopleMain {
public static void main(String args[]){
People p= new People();
p.setAge("21");
p.setName("Manish Sharma");
XStream xs =new XStream();
String xml = xs.toXML(p);
System.out.println(xml);
}
}
运行PeopleMain.java时我在控制台上的输出如下:
<com.test.People>
<name>Manish Sharma</name>
<age>21</age>
</com.test.People>
但我希望输出为
<People xmlns:ns2="http://example.com/foo" xmlns:ns3="http://example.com/bar">
<ns2:name>Manish Sharma</ns2:name>
<ns3:age>21</ns3:age>
</People>
我应该在People.java文件中进行哪些更改才能获得所需的输出?
答案 0 :(得分:1)
不幸的是,根据XSTream FAQ,除非使用StAX解析器,否则XStream不支持XML命名空间。
并非每个XML解析器都支持名称空间,而不是每个XML解析器都支持名称空间 支持名称空间可以在XStream中配置使用它们。 基本上,名称空间必须单独支持不同的名称空间 XML解析器以及当前对命名空间的唯一支持 已在XStream中实现,适用于StAX paser。因此使用和 配置XStream的StaxDriver以使用名称空间。