Hi Rob!

Rob Atkinson schrieb:
> Hi
> 
> Is that my name being taken in vain?  I think you mean Matthias. I'm
> not at all suprised though that complex data type support requirements
> are coming out of the wild, and being blamed on me :-)
> 
> Matthias - will you be at the OGC meeting in Darmstadt next week by
> any chance? I'll be there, then at Munster the week after, then FOSS4G
> in Sydney later in the month. If you will be around lets catch up.

I'll be on the FOSS4G.

> I'm trying to get the GML data type bindings in the XML parser fixed
> (its a long story). One part of this is providing an ability to create
> a ComplexAttributeImpl, driven by a schema, to the parser and encoder.
> I'm not 100% sure, but this might be what you are trying to do also.
> 
> Once I get GML working properly, and the ability to do basic schema
> driven object bindings, then I'm considering creating default bindings
> for some very common patterns, including data types required to
> support the Observations and Measurements schema. The first step would
> (I am thinking) be creating default bindings for ISO19115 data types,
> so its easy for example to bind a simple string to a
> CI_ResponsibleParty, or MD_Identification which are very complex union
> classes.
 >
>
> I'm not sure if it makes sense, but was thinking that convenience
> methods, in the form of Factories to produce Observation objects, or
> other SWE objects, could then be built as an extension module.

Factories would be great. For example the SLD Stylebuilder is great to 
create SLD trees. But for simple solutions that just replacescertain 
parameters in the nested xml element it's easier to use a xml fragment 
out of a String.

> Anyway, I'd love to hear about your high-level Use Cases - what you
> are trying to achieve. Ultimately we would need test cases for any
> capabilities designed to support these, so it would be good to have an
> instance example to play with.

On the FOSS4G you will hopefully have the chance to see the live Demo of 
the DEWS system. It's a modular Tsunami Early Warning System. Sensor 
data delivered via SWE by an external sensor platform are forwareded to 
a simulation system (developed by another research institute). They are 
offering a WPS interface for this. The XML fragment I attached to the 
last mail was a part of such a request. Besides this we are also working 
on a second WPS that calculates affected areas out of administrative 
areas and simulation results.

Cheers
Matthias

> 
> Regards
> Rob Atkinson
> 
> 
> On Fri, Sep 25, 2009 at 3:51 AM, Jody Garnett <jody.garn...@gmail.com> wrote:
>> I don't understand what you mean with using an java.util.Map to store the
>> complex information.
>>
>> The default bindings handle things like xs:int and know enough to turn that
>> into an Integer. The default binding for an a complex type (at least for an
>> earlier version of the parser!) would produce a java.util.Map with the keys
>> as the element name and the value as appropriate.
>> The idea was to present something to Java developers making use of as much
>> of the schema as could be understood.
>> The interesting one is a choice of course ... forcing you to use containsKey
>> to see what choice was chosen
>> So if observation was not bound below I would a data structure similar to
>> ...
>> Map<String,Object> obvervation = new LinkedMap<String,Object>();
>> obvervation.put( "_id", "obs_seismic_1234567");
>> obvervation.put("samplingTime", new Date( .... ) );
>> obvervation.put("procedure", new URI("urn:foo:foo2:def:procedure:bar23""));
>> obvervation.put("observedProperty", new LinkedMap( ... ) );
>> The advantage here is anything that *can* be bound is punted into a java
>> object - geometry; feature etc should show up ready to go.
>> So this is the theory; Rob is running into the limits of what this default
>> complex binding can do....
>> Jody
>>
>>
>> Cheers, Matthias
>>
>>
>>
>>
>>
>> <om:ObservationCollection xmlns:om="http://www.opengis.net/om/0.0";
>> xmlns:gml="http://www.opengis.net/gml";
>> xmlns:xlink="http://www.w3.org/1999/xlink";
>> xmlns:swe="http://www.opengis.net/swe/0.0";
>> xmlns:ns="http://www.opengis.net/swe/0.0";
>> gml:id="oc_1234">
>> <om:member>
>> <om:Observation gml:id="obs_seismic_1234567">
>> <om:samplingTime>
>> <gml:TimeInstant>
>> <gml:timePosition>2007-12-12T01:12:00+02</gml:timePosition>
>> </gml:TimeInstant>
>> </om:samplingTime>
>> <om:procedure xlink:href="urn:foo:foo2:def:procedure:bar23" />
>> <om:observedProperty>
>> <swe:CompositePhenomenon gml:id="comp_123"
>> dimension="1">
>> <gml:csName>bar</gml:csName>
>> <swe:base xlink:href="urn:bar:foo2:def:phenomenon:SeismicComposite" />
>> <swe:component xlink:href="urn:foo:foo2:def:quantity:depth:BelowEpicenter"
>> />
>> <swe:component xlink:href="urn:bar:foo2:def:phenomenon:universalMagnitude"
>> />
>> <swe:component xlink:href="urn:bar:foo2:def:phenomenon:originLocation" />
>> </swe:CompositePhenomenon>
>> </om:observedProperty>
>> <om:featureOfInterest>
>> <gml:FeatureCollection gml:id="foi_earthquake">
>> <gml:location>
>> <gml:Point>
>> <gml:pos srsName="urn:ogc:crs:epsg:4328">
>> 104.095 -6.2522
>>                                                </gml:pos>
>> </gml:Point>
>> </gml:location>
>> </gml:FeatureCollection>
>> </om:featureOfInterest>
>> <om:resultDefinition>
>> <swe:DataBlockDefinition>
>> <swe:components name="">
>> <ns:SimpleDataRecord>
>> <ns:field name="">
>> <ns:Time definition="urn:ogc:data:time:iso8601" />
>> </ns:field>
>> <ns:field name="">
>> <ns:Quantity definition="urn:foo:foo2:def:quantity:depth:BelowEpicenter">
>> <ns:uom xlink:href="m" />
>> </ns:Quantity>
>> </ns:field>
>> <ns:field name="">
>> <ns:Quantity definition="urn:bar:foo2:def:phenomenon:universalMagnitude" />
>> </ns:field>
>> <ns:field name="">
>> <ns:Text definition="urn:bar:foo2:def:phenomenon:originLocation" />
>> </ns:field>
>> </ns:SimpleDataRecord>
>> </swe:components>
>> <swe:encoding>
>> <swe:TextBlock decimalSeparator="." blockSeparator="@@"
>> tokenSeparator="," />
>> </swe:encoding>
>> </swe:DataBlockDefinition>
>> </om:resultDefinition>
>> <om:result>
>> 2007-12-12T01:12:00+02,109.12,8,104.095 -6.25229@@
>> </om:result>
>> </om:Observation>
>> </om:member>
>> <om:member>
>> <om:Observation gml:id="obs_buoy_003_1234567">
>> <om:samplingTime>
>> <gml:TimeInstant>
>> <gml:timePosition>2007-12-12T01:20:00+02</gml:timePosition>
>> </gml:TimeInstant>
>> </om:samplingTime>
>> <om:procedure xlink:href="urn:foo:foo2:def:procedure:doos:buoy:station:ts01"
>> />
>> <om:observedProperty>
>> <swe:CompositePhenomenon gml:id="comp_1"
>> dimension="1">
>> <gml:csName>bar</gml:csName>
>> <swe:base xlink:href="urn:bar:foo2:def:phenomenon:BuoyComposite" />
>> <swe:component xlink:href="urn:bar:foo2:def:quantity:sealevel:change" />
>> </swe:CompositePhenomenon>
>> </om:observedProperty>
>> <om:featureOfInterest>
>> <gml:FeatureCollection gml:id="foi_buoy1">
>> <gml:location>
>> <gml:Point>
>> <gml:pos srsName="urn:ogc:crs:epsg:4328">
>> 99.113 -2.7365
>>                                                </gml:pos>
>> </gml:Point>
>> </gml:location>
>> </gml:FeatureCollection>
>> </om:featureOfInterest>
>> <om:resultDefinition>
>> <swe:DataBlockDefinition>
>> <swe:components name="">
>> <ns:SimpleDataRecord>
>> <ns:field name="">
>> <ns:Time definition="urn:ogc:data:time:iso8601" />
>> </ns:field>
>> <ns:field name="">
>> <ns:Quantity definition="urn:bar:foo2:def:quantity:sealevel:change">
>> <ns:uom xlink:href="cm" />
>> </ns:Quantity>
>> </ns:field>
>> <ns:field name="">
>> <ns:Text definition="urn:bar:foo2:def:phenomenon:BuoyLocation" />
>> </ns:field>
>> </ns:SimpleDataRecord>
>> </swe:components>
>> <swe:encoding>
>> <swe:TextBlock decimalSeparator="." blockSeparator="@@"
>> tokenSeparator="," />
>> </swe:encoding>
>> </swe:DataBlockDefinition>
>> </om:resultDefinition>
>> <om:result>
>> 2007-12-12T01:20:00+02,23.032,99.113 -2.7365@@
>>                                </om:result>
>> </om:Observation>
>> </om:member>
>> <om:member>
>> <om:Observation gml:id="obs_buoy_002_1234567">
>> <om:samplingTime>
>> <gml:TimeInstant>
>> <gml:timePosition>2007-12-12T01:41:00+02</gml:timePosition>
>> </gml:TimeInstant>
>> </om:samplingTime>
>> <om:procedure xlink:href="urn:foo:foo2:def:procedure:doos:buoy:station:ts02"
>> />
>> <om:observedProperty>
>> <swe:CompositePhenomenon gml:id="comp_2"
>> dimension="1">
>> <gml:csName>bar</gml:csName>
>> <swe:base xlink:href="urn:bar:foo2:def:phenomenon:BuoyComposite" />
>> <swe:component xlink:href="urn:bar:foo2:def:quantity:sealevel:change" />
>> </swe:CompositePhenomenon>
>> </om:observedProperty>
>> <om:featureOfInterest>
>> <gml:FeatureCollection gml:id="foi_buoy2">
>> <gml:location>
>> <gml:Point>
>> <gml:pos srsName="urn:ogc:crs:epsg:4328">
>> 97.547 -0.611
>>                                                </gml:pos>
>> </gml:Point>
>> </gml:location>
>> </gml:FeatureCollection>
>> </om:featureOfInterest>
>> <om:resultDefinition>
>> <swe:DataBlockDefinition>
>> <swe:components name="">
>> <ns:SimpleDataRecord>
>> <ns:field name="">
>> <ns:Time definition="urn:ogc:data:time:iso8601" />
>> </ns:field>
>> <ns:field name="">
>> <ns:Quantity definition="urn:bar:foo2:def:quantity:sealevel:change">
>> <ns:uom xlink:href="cm" />
>> </ns:Quantity>
>> </ns:field>
>> <ns:field name="">
>> <ns:Text definition="urn:bar:foo2:def:phenomenon:BuoyLocation" />
>> </ns:field>
>> </ns:SimpleDataRecord>
>> </swe:components>
>> <swe:encoding>
>> <swe:TextBlock decimalSeparator="." blockSeparator="@@"
>> tokenSeparator="," />
>> </swe:encoding>
>> </swe:DataBlockDefinition>
>> </om:resultDefinition>
>> <om:result>
>> 2007-12-12T01:41:00+02,23.032,97.547 -0.611@@
>>                                </om:result>
>> </om:Observation>
>> </om:member>
>> </om:ObservationCollection>
>>
>>
>> ------------------------------------------------------------------------------
>> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
>> is the only developer event you need to attend this year. Jumpstart your
>> developing skills, take BlackBerry mobile applications to market and stay
>> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
>> http://p.sf.net/sfu/devconf
>> _______________________________________________
>> Geotools-devel mailing list
>> Geotools-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>>
>>
> 


-- 
Matthias Lendholt [matthias.lendh...@gfz-potsdam.de]
tel: +49 331 288 1687; fax: +49 331 288 1703
Deutsches GeoForschungsZentrum (GFZ)
Telegrafenberg A20; D14473 Potsdam; Germany

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to