JAXB - XML Schema Types, Defining Types for XML Elements Without Content

Types for XML elements are constructed using xsd:complexType, even if they do not have content. The snippet below defines a simple element with two attributes and no sub-elements.

<xsd:complexType name="RouteType">
    <xsd:attribute name="Pos" type="xsd:int" use="optional" default="1"/>
    <xsd:attribute name="Dir" type="DirType" use="required"/>
</xsd:complexType>

The compiler generates a class RouteType with getters and setters for the attributes.

public class RouteType {

    protected Integer pos;
    protected String dir;

    public int getPos() {
        if (pos == null) {
            return  1;
        } else {
            return pos;
        }
    }

    public void setPos(Integer value) {
        this.pos = value;
    }

    public String getDir() {
        return dir;
    }

    public void setDir(String value) {
        this.dir = value;
    }
}

The absence of a value for the optional attribute Pos is represented by an object where the instance variable pos remains at null. Method getPos takes care of supplying the default value if the variable is null.

 

posted on 2016-05-18 14:31  huey2672  阅读(130)  评论(0编辑  收藏  举报