And gml3:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:gml="http://www.opengis.net/gml"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified">
  <xsd:import namespace="http://www.opengis.net/gml"; 
schemaLocation="http://localhost//gml/3.1.1/base/gml.xsd"/>
  <xsd:complexType name="location">
    <xsd:complexContent>
      <xsd:extension base="gml:AbstractFeatureType">
        <xsd:sequence>
          <xsd:element maxOccurs="1" minOccurs="0" name="geom" nillable="true" 
type="gml:PointPropertyType"/>
          <xsd:element maxOccurs="1" minOccurs="0" name="name" nillable="true" 
type="xsd:string"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="location" substitutionGroup="gml:_Feature" 
type="location"/>
</xsd:schema>

Justin when you get a chance I would like a code review; the commit touches 
files scattered all over the place.

In particular:
- XSSchema.profile() returns a unique mapping of java classes
- GMLSchema.profile() does the same thing for gml2 mappings to JTS Geometry
- GMLSchema.profile() does the same thing for gml3 mapping to JTS Geometry
- NameImpl has a constructor from QName.
- ProfileImpl.profile( Set<Name> ) now checks that the provided set is a proper 
subset of the profile

Jody

On 03/06/2010, at 5:24 PM, Jody Garnett wrote:

> Okay first output time:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:schema xmlns:gml="http://www.opengis.net/gml"; 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified">
>   <xsd:import namespace="http://www.opengis.net/gml"; 
> schemaLocation="http://localhost//gml/2.1.2/feature.xsd"/>
>   <xsd:complexType name="location">
>     <xsd:complexContent>
>       <xsd:extension base="gml:AbstractFeatureType">
>         <xsd:sequence>
>           <xsd:element maxOccurs="1" minOccurs="0" name="geom" 
> nillable="true" type="gml:PointPropertyType"/>
>           <xsd:element maxOccurs="1" minOccurs="0" name="name" 
> nillable="true" type="xsd:string"/>
>         </xsd:sequence>
>       </xsd:extension>
>     </xsd:complexContent>
>   </xsd:complexType>
>   <xsd:element name="location" substitutionGroup="gml:_Feature" 
> type="location"/>
> </xsd:schema>
> 
> Generated by:
> 
>         SimpleFeatureType TYPE = 
> DataUtilities.createType("location","geom:Point,name:String");
>         
>         ByteArrayOutputStream out = new ByteArrayOutputStream();
>         GMLEncoder encode = new GMLEncoder( out );
>         encode.setBaseURL( new URL("http://localhost/";));
>         encode.setGML("gml2");
>         
>         encode.encode( TYPE );
>         
>         out.close();
>         
>         String xsd = out.toString();
>         
>         System.out.println( xsd );
>         assertNotNull
> 
> The following also works:
> - encoder.setGML("gml3" )
> 
> Jody
> 
> On 03/06/2010, at 8:05 AM, Jody Garnett wrote:
> 
>> Code is posted in the gt-xml module; I am almost following you about XSD 
>> type maping profiles. Can I navigate from one to the other; or do I have to 
>> create the ordering myself.
>> 
>> Jody
>> 
>> On 03/06/2010, at 1:32 AM, Justin Deoliveira wrote:
>> 
>>> On 10-06-02 7:07 AM, Jody Garnett wrote:
>>>> Hi Justin;
>>>> 
>>>> Thought I would walk before I run and have started the GMLEncoder in the 
>>>> gt-xml module. The idea is to configure it for what you want to do using a 
>>>> nice big "gml2" or "gml3" switch, and then perform common tasks such as 
>>>> encoding a feature collection, or a featureType. I have all the 
>>>> implementations available so we should be able to choose the right tool 
>>>> for the job; and/or perform any migrations between encoders smoothly.
>>>> 
>>>> I am slowly going through how you do things in geoserver and have gotten 
>>>> bogged down going from a java binding to a typeName.
>>>> 
>>>> The GeoServer code has a very magic class that I think you wanted to do 
>>>> properly as a geotools Profile of a Schema? I suspect the idea is to 
>>>> minimise duplicates where one Java class has more then one option it can 
>>>> be mapped to.
>>>> 
>>>> Any guidance; am i on the right track.
>>> 
>>> Yes, the magic instance is available via XSD.getTypeMappingProfile(). Those 
>>> are unique java class to xml types. Remember that XSD's have dependencies, 
>>> and each one has its own type mapping profile. So start with the one for 
>>> WFS, work to GML3, and down the line... eventually pulling in the XS type 
>>> mapping profile which contains all the "primitive" mappings such as 
>>> Integer, Double, etc..
>>> 
>>> Post your code and I will do a code review. Glad to hear you are making 
>>> progress.
>>>> 
>>>> Jody
>>> 
>>> 
>>> -- 
>>> Justin Deoliveira
>>> OpenGeo - http://opengeo.org
>>> Enterprise support for open source geospatial.
>> 
> 

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to