要发布一个服务,返回一个xml对象,涉及的属性、元素非常多,我想通过annotation 注解一个javabean,生成xml。
现在的疑问是,对于简单的xml,如下面这个样子的
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="100">
<age>29</age>
<name>mkyong</name>
</customer>
很容易就可以实现
@XmlRootElement
public class Customer {
String name;
int age;
int id;
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
@XmlElement
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
@XmlAttribute
public void setId(int id) {
this.id = id;
}
}但是对于这种呢
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="100">
<age>29</age>
<name>mkyong</name>
<plan id="1">
<name>篮球</name>
<time>8:00</time>
</plan >
<plan id="2">
<name>游泳</name>
<time>16:00</time>
</plan >
<work type="">
<name></name>
<deadline>20:00</deadline>
<detail>
<leader>XX</leader>
<eqmt>YY</eqmt>
<detail>
</work>
</customer>我想把涉及的属性、元素都放在一个bean里,怎么指定每个属性、元素在xml中所属的父节点呢?XMLjavabeanAnnotation序列化
现在的疑问是,对于简单的xml,如下面这个样子的
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="100">
<age>29</age>
<name>mkyong</name>
</customer>
很容易就可以实现
@XmlRootElement
public class Customer {
String name;
int age;
int id;
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
@XmlElement
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
@XmlAttribute
public void setId(int id) {
this.id = id;
}
}但是对于这种呢
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="100">
<age>29</age>
<name>mkyong</name>
<plan id="1">
<name>篮球</name>
<time>8:00</time>
</plan >
<plan id="2">
<name>游泳</name>
<time>16:00</time>
</plan >
<work type="">
<name></name>
<deadline>20:00</deadline>
<detail>
<leader>XX</leader>
<eqmt>YY</eqmt>
<detail>
</work>
</customer>我想把涉及的属性、元素都放在一个bean里,怎么指定每个属性、元素在xml中所属的父节点呢?XMLjavabeanAnnotation序列化
解决方案 »
- 在制作2D图形时。不显示正方形,哪儿错了?
- java中怎么样使得static变量被每个对象独享?
- 网上查了很久,mysql jdbc 经典问题:mysql lost connection
- 配置tomcat6 基于JNDI的JDBC连接池
- java 调用数据库内容时 无法显示对应数据的问题
- 关于SPRING配置文件的简单问题?
- struts 在tomcat下可以使用,但在resin 中却发生错误! 各位高手请进!
- javabean属性的感念问题?
- hxzhappy(冰雨)快来接分
- <c:forEach>中实体返回后台
- ssh整合出错 java.util.Collections.emptyIterator()
- JDBC PreparedStatement的问题,求解决
public class Customer {
int age;
String name;
Plan plan;
}@XmlRootElement
public class Plan{
int id;
String name;
String time;
}
感觉和利用javax里的Annotation 差不多,我的疑惑主要在对于存在多个父子节点关系的xml,能否通过一个实体bean搞定。无论是xstream 还是直接用jdk的Annotation ,都需要解决这个问题
感觉和利用javax里的Annotation 差不多,我的疑惑主要在对于存在多个父子节点关系的xml,能否通过一个实体bean搞定。无论是xstream 还是直接用jdk的Annotation ,都需要解决这个问题
xml是一棵树,树里是没有多个父结点的.
不敢肯定说一定是的。
但是至今没见过第二种解决办法,其实定义多个类也比较符合编码规范,而且出错更容易定位
不敢肯定说一定是的。
但是至今没见过第二种解决办法,其实定义多个类也比较符合编码规范,而且出错更容易定位恩,主要是有些节点力内容很少,不想给这类内容单独写bean。
还有一个问题请教,
@XmlRootElement(name = "TTTTT")
public class Test implements Serializable{ /**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
private List<H> tt = new ArrayList<H>(); @XmlElement(name="Children")
public List<H> getTt() {
return tt;
} public void setTt(List<H> tt) {
this.tt = tt;
}
}
@XmlRootElement(name="child")
public class H implements Serializable{
/**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
private String name; @XmlElement(name="name")
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}我想要的效果是
<TTTTT>
<Children>
<child>
<name>xiao</name>
</child>
</Children>
</TTTTT>
但最终出来的是:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TTTTT>
<Children>
<name>xiao</name>
</Children>
</TTTTT>
有什么好的解决方法吗?
<children>
<a/>
<b/>
……
<children>
……
</children>
<children>
……
</children>
</children>
这类的,我在父实体里不直接定义List<child> 这样的属性,而是单独定义一个bean,在这个bean里定义属性List<child>处理这个bean——xml的映射,竟定义了15个bean