如何接受namesspaces
到unmarshal
的不同版本?我有很多使用JAXB生成的类。我想解组从XML获取信息。问题是xmls有不同的xmlns
版本。
我将举一个简单的例子,因为我的课程太长了。
上课:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "attribute1"})
@XmlRootElement(name = "myClass", namespace = "http://www.test.com/xml-schema/MYC/1.0")
public class myClass {
@XmlElement(name = "attribute_1", namespace = "http://www.test.com/xml-schema/MYC/1.0", required = true)
protected String attribute1;
@XmlElement(name = "attribute_2", namespace = "http://www.test.com/xml-schema/MYC/1.0")
protected String attribute2;
}
我不仅要接受XML
与xmlns
之类的对象:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Reha xmlns="http://www.test.com/xml-schema/MYC/1.0"
但是xmlns
也是如此:
http://www.test.com/xml-schema/MYC/1.2
http://www.test.com/xml-schema/MYC/1.5
http://www.test.com/xml-schema/MYC/1.8
http://www.test.com/xml-schema/MYC/2.9
考虑到我有其他类与其他名称空间,具有相同的问题(名称空间中的不同版本)
我阅读了不同的帖子,但对我来说并不清楚。我怎么能做到这一点?
答案 0 :(得分:0)
在深入思考并理解用户案例之后。
如果模式具有不同的版本,则意味着XML
的结构发生了变化,这意味着我们需要两个不同的类来表示两个不同的名称空间&#39;版本,例如两个不同的名称空间:
http://www.test.com/xml-schema/MYC/1.2
http://www.test.com/xml-schema/MYC/1.5