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.