Understanding JAXB @XmlRootElement annotation

前端 未结 2 685
悲&欢浪女
悲&欢浪女 2021-02-01 23:22

I am using the tutorial here for understanding JAXB.

When the writer comes to create the root of the document, the writer begins as below:

//This sta         


        
2条回答
  •  太阳男子
    2021-02-02 00:19

    I recommend using the package level @XmlSchema annotation to specify the namespace qualification for you model. A package level annotation goes in a special class called package-info that contains the exact content as shown below. That annotation will mean that all elements in your document without an explicit namespace given will use that namespace.

    org/example/foo/package-info.java

    @XmlSchema(
        namespace = "http://www.example.org/foo",
        elementFormDefault = XmlNsForm.QUALIFIED)
    package org.example.foo;
    
    import javax.xml.bind.annotation.XmlNsForm;
    import javax.xml.bind.annotation.XmlSchema;
    

    Overriding the Namespace

    • You can override the namespace given in the @XmlSchema for all properties in a class using the @XmlType annotation.
    • You can override the namespace for a given element using the namespace property on the @XmlRootElement or @XmlElement annotation.

    For More Information

    • http://blog.bdoughan.com/2010/08/jaxb-namespaces.html
    • http://blog.bdoughan.com/2012/07/jaxb-and-root-elements.html

提交回复
热议问题