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
.