The annotation @XmlElements enables you to specify which tag corresponds with which subclass.
@XmlElements({
@XmlElement(name="square", type=Square.class),
@XmlElement(name="triangle", type=Triangle.class)
})
public List getShape() {
return shape;
}
Also see javadoc for @XmlElements