Building KML file with Jackson XML

I'm attempting to build an KML file, using Jackson XML. I have an existing string that I'm trying to serialize to a Java object.

<MultiGeometry>
  <Polygon>
    <outerBoundaryIs>
    <LinearRing>
      <coordinates>40.0,40.0 20.0,45.0 45.0,30.0 40.0,40.0</coordinates>
    </LinearRing>
    </outerBoundaryIs>
  </Polygon>
  <Polygon>
    <outerBoundaryIs>
    <LinearRing>
      <coordinates>20.0,35.0 10.0,30.0 10.0,10.0 30.0,5.0 45.0,20.0
         20.0,35.0</coordinates>
    </LinearRing>
    </outerBoundaryIs>
    <innerBoundaryIs>
    <LinearRing>
      <coordinates>30.0,20.0 20.0,15.0 20.0,25.0 30.0,20.0</coordinates>
    </LinearRing>
    </innerBoundaryIs>
  </Polygon>
</MultiGeometry>

I've created a couple of objects with what I would think would be the necessary annotation like so:

@JacksonXmlRootElement(localName = "MultiGeometry")
public class KMLMultiGeometry extends KMLGeometry {

    @JacksonXmlProperty(localName = "Polygon")
    @JacksonXmlElementWrapper(useWrapping = false)
    private List<KMLPolygon> polygons;

    public KMLMultiGeometry() {
    }

    public List<KMLPolygon> getPolygons() {
        return polygons;
    }

    public void setPolygons(List<KMLPolygon> polygons) {
        this.polygons = polygons;
    }
}

@JacksonXmlRootElement(localName = "Polygon")
public class KMLPolygon extends KMLGeometry {

    @JacksonXmlProperty(localName = "outerBoundaryIs")
    @JacksonXmlElementWrapper(useWrapping = false)
    private List<KMLLinearRing> outerBoundaries;
    @JacksonXmlProperty(localName = "innerBoundaryIs")
    @JacksonXmlElementWrapper(useWrapping = false)
    private List<KMLLinearRing> innerBoundaries;


    public KMLPolygon() {
    }

    public List<KMLLinearRing> getOuterBoundaries() {
        return outerBoundaries;
    }

    public void setOuterBoundaries(List<KMLLinearRing> outerBoundaries) {
        this.outerBoundaries = outerBoundaries;
    }

    public List<KMLLinearRing> getInnerBoundaries() {
        return innerBoundaries;
    }

    public void setInnerBoundaries(List<KMLLinearRing> innerBoundaries) {
        this.innerBoundaries = innerBoundaries;
    }
}

@JacksonXmlRootElement(localName = "LinearRing")
public class KMLLinearRing extends KMLGeometry {

    @JacksonXmlProperty(localName = "LinearRing")
    private List<KMLCoordinate> coordinates;


    public KMLLinearRing() {

    }

        public List<KMLCoordinate> getCoordinates() {
        return coordinates;
    }

    public void setCoordinates(List<KMLCoordinate> coordinates) {
        this.coordinates = coordinates;
    }
}

public class KMLCoordinate extends KMLGeometry {

    @JacksonXmlProperty(localName = "coordinates")
    private String coordinates;

    public KMLCoordinate(String coordinates) {
        this.coordinates = coordinates;
    }
}

but what I get on the other end (when writing into a file) is:

<MultiGeometry>
   <Polygon>
      <outerBoundaryIs>
         <LinearRing>
            <LinearRing>
               <coordinates>40.0,40.0 20.0,45.0 45.0,30.0 40.0,40.0</coordinates>
            </LinearRing>
         </LinearRing>
      </outerBoundaryIs>
      <innerBoundaryIs />
   </Polygon>
   <Polygon>
      <outerBoundaryIs>
         <LinearRing>
            <LinearRing>
               <coordinates>20.0,35.0 10.0,30.0 10.0,10.0 30.0,5.0 45.0,20.0
         20.0,35.0</coordinates>
            </LinearRing>
         </LinearRing>
      </outerBoundaryIs>
      <innerBoundaryIs>
         <LinearRing>
            <LinearRing>
               <coordinates>30.0,20.0 20.0,15.0 20.0,25.0 30.0,20.0</coordinates>
            </LinearRing>
         </LinearRing>
      </innerBoundaryIs>
   </Polygon>
</MultiGeometry>

I'm not sure how to avoid duplicating the LinearRing tag. In the KMLPolygon class, I disabled the useWrapping flag, but that doesn't seem to be working in the KMLLinearRing class.

I haven't used Jackson much before, and I think I'm confused as to how to properly apply the necessary annotations.