JAXB,POJO中每个元素有多个命名空间来解组XML

时间:2015-10-26 08:54:42

标签: java xml parsing xsd jaxb

如何接受namesspacesunmarshal的不同版本?我有很多使用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;
    }

我不仅要接受XMLxmlns之类的对象:

<?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

考虑到我有其他类与其他名称空间,具有相同的问题(名称空间中的不同版本)

我阅读了不同的帖子,但对我来说并不清楚。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

在深入思考并理解用户案例之后。

如果模式具有不同的版本,则意味着XML的结构发生了变化,这意味着我们需要两个不同的类来表示两个不同的名称空间&#39;版本,例如两个不同的名称空间:

http://www.test.com/xml-schema/MYC/1.2
http://www.test.com/xml-schema/MYC/1.5