Hi there,

I was experiencing the same problem even with the latest GML schemas. The problem is that GML defines a Pos and a PosList element. xmlbeans accordingly declares a getPosList() method twice - once for return a list of pos elements, and the other for returning a single posList element i.e.

   /**
    * Gets a List of "pos" elements
    */
public java.util.List<net.opengis.gml.x32.DirectPositionType> getPosList()

and

   /**
    * Gets the "posList" element
    */
   public net.opengis.gml.x32.DirectPositionListType getPosList()

...of course there are two identical method signatures with different return types. This causes scomp to yield the error:

.../target/generated-sources/net/opengis/gml/x32/impl/ LinearRingTypeImpl.java:506: getPosList() is already defined in net.opengis.gml.x32.impl.LinearRingTypeImpl
   public net.opengis.gml.x32.DirectPositionListType getPosList()

To avoid this error you have to tell xmlbeans to override one of the names. I decided that instead of xmlbeans mapping GML "pos" elements to Java "pos" members, they map to "position" instead. To achieve this use a command line similar to the following:

scomp -d target/generated-classes/ -src target/generated-sources/ -dl - javasource 1.5 -mx 512m src/main/resources/gml.xsd src/main/resources/ gml.xsdconfig

and an xsdconfig of:

<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/ config"
          xmlns:gml="http://www.opengis.net/gml/3.2";>
    <xb:qname name="gml:pos" javaname="Position"/>
</xb:config>

'hope that this helps someone else using xmlbeans with GML.

Cheers,
-C

Reply via email to