如何用jaxb在编组的时候更改xml标签,就像下面那样
<book>
   <name>jaxb</name>
</book>
改为
<b-book>
   <b-name>jaxb</b-name>
</b-book>

解决方案 »

  1.   

    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name = "b-book")
    public class Book {
        
        @XmlElement(name = "b-name")
        private String name;
        
        public Book() {
        }    public String getName() {
            return name;
        }    public void setName(String name) {
            this.name = name;
        }
    }
      

  2.   

    测试类:package net.blogjava.frankiegao123.jaxb;import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;public class JaxbTest {    public static void main(String[] args) throws JAXBException {
            JAXBContext jc = JAXBContext.newInstance( "net.blogjava.frankiegao123.jaxb" );
            Book book = new Book("Java EE 5 Tutorial");
            Marshaller m = jc.createMarshaller();
            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
            m.setProperty("M", "  ");
            m.marshal(book, System.out);
        }
    }package net.blogjava.frankiegao123.jaxb;import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name = "b-book")
    @XmlAccessorType(XmlAccessType.PROPERTY)
    public class Book {
        
        private String name;
        
        public Book() {
        }
        
        public Book(String name) {
            this.name = name;
        }    @XmlElement(name = "b-name")
        public String getName() {
            return name;
        }    public void setName(String name) {
            this.name = name;
        }
    }package net.blogjava.frankiegao123.jaxb;import javax.xml.bind.JAXBElement;
    import javax.xml.bind.annotation.XmlElementDecl;
    import javax.xml.bind.annotation.XmlRegistry;@XmlRegistry
    public class ObjectFactory {    public ObjectFactory() {
        }
        
        @XmlElementDecl(name = "object-factory-book")
        public JAXBElement<Book> createBook(Book value) {
            return new JAXBElement<Book>(null, Book.class, null, value);
        }
    }