【发布时间】:2011-07-07 19:54:53
【问题描述】:
我目前正在使用 JAXB 替换旧系统,但在解析 XML 时遇到了问题。系统的第一个要求是它必须是插入式替换,因此我无法修改 XML 的格式。下面是给我带来麻烦的 XML 部分。
<xx>
<s1>
<X>-9999</X>
<Y>-9999</Y>
</s1>
<s2>
<X>-9999</X>
<Y>-9999</Y>
</s2>
</xx>
XML 的问题是所有 s# 对象都完全相同,最多可以有 256 个。 JAXB 中有没有办法注释这样的标签,还是我必须创建 256 个单独的注释?任何帮助将不胜感激。
这里是 xx 对象的 java 代码。注意:该对象最初是在理解只有 2 个 s# 对象的情况下进行编程的,但此后发生了变化。
@XmlRootElement(name="xx")
public class XMLXx implements Serializable {
private static final long serialVersionUID = 4064597372833234503L;
private XMLSite siteOne;
private XMLSite siteTwo;
@XmlElement(name="s1")
public XMLSite getSiteOne() {
return siteOne;
}
public void setSiteOne(XMLSite s1) {
this.siteOne = s1;
}
@XmlElement(name="s2")
public XMLSite getSiteTwo() {
return siteTwo;
}
public void setSiteTwo(XMLSite s2) {
this.siteTwo = s2;
}
}
这里是 XMLSite 对象:
public class XMLSite implements Serializable {
private static final long serialVersionUID = -4374405403222014476L;
private Integer x;
private Integer y;
@XmlElement(name="X")
public Integer getX() {
return x;
}
public void setX(Integer x) {
this.x = x;
}
@XmlElement(name="Y")
public Integer getY() {
return y;
}
public void setY(Integer y) {
this.y = y;
}
}
【问题讨论】:
-
256 个什么?请具体。
-
标签。所以可能有等,每个标签都有 和 标签作为子标签 -
您的目标对象模型是什么样的?我领导一个 JAXB 实现,可能知道一些可以提供帮助的技巧。
-
我不完全确定您对 Blaise 的要求(我对使用 JAXB 非常陌生,并且是一名初级开发人员)。你想看看我试图将 XML 解析成的 Java 对象吗?
-
是的,这正是我想要的。