首页 文章

JAXB动态XML根类名

提问于
浏览 1156
0

我在java中有我的User类 . 当我想要解组它时,我得到带有 <UserIn> 根元素的xml,当我想编组它时,我应该 <UserOut> 作为XML根元素 . 如果我提供 @XmlRootElement("UserIn") 它不是动态的,它始终是UserIn root . 有没有办法在课堂上做动态根元素?谢谢 .

1 回答

  • 1

    您可以创建两个扩展User类的类,然后根据您是否在编组上进行编组来使用特定的子类 .

    例如,对于类User:

    public class User {
    
        @XmlElement
        private String value;
    
        public User() { }
    
        public User(String value) {
            this.value = value;
        }
    }
    

    你可以拥有UserIn:

    @XmlRootElement(name = "UserIn")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class UserIn extends User {
    
        public UserIn() { }
    
        public UserIn(String value) {
            super(value);
        }
    }
    

    和UserOut:

    @XmlRootElement(name = "UserOut")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class UserOut extends User {
    
        public UserOut() { }
    
        public UserOut(String value) {
            super(value);
        }
    }
    

    在您需要的地方提供适当的课程,您将使用您想要的输入或输出 .

相关问题