Hi everyone,

My usage of Complex Features in the subject may not be accurate. So, I 
will state my problem (as I understand it) first. Then, I will explain 
my use case and finally let you know what I have found upon going 
through Geotools code and documentation.

What I am looking for is support for features which can support multiple 
values for an attribute, and complex attributes. An example is 
multilingual names for a feature. Each feature has a Names field which 
is complex, and has {language, name, name_type}. And, there can be 
multiple entries of this per features. Does Geotools support this out of 
box?

Here is our use case:
We are using an Oracle database to store the feature data (both spatial 
and non-spatial). However, this database is normalized. So, multiple 
tables should be joined to read features in each layer. We have chosen  
to use Geoserver+Geotools to serve the features via WFS. Finally, we are 
using QGIS to read/write features using WFS plugin. We want to be enable 
the WFS server to serve features with attribute multiplicity and complex 
attributes (as described in the problem). From the WFS specification, it 
looks like there is support for this. However, for this to work, both 
Geoserver and Geotools should support this (along with QGIS of course). 
I am not entirely sure if Geoserver does support it (it would be great 
if someone can answer this, otherwise I'll post in Geoserver forum). 
Coming to Geotools, I see only SimpleFeature (and SimpleFeatureType) in 
trunk. Also, all default implementations (ContentDataStore etc.) support 
only SimpleFeature. Does this mean, I have to extend Feature (and 
FeatureType) to add the functionality to support our use-case? This 
would also means creating classes similar to ContentDataStore etc. to 
use these new classes.

Here is what I have found so far:
I have seen some wiki pages 
(http://docs.codehaus.org/display/GEOTOOLS/Complex-Features+Branch) 
which talk about Complex Feature implementation in Geotools. Though it 
looks like solving our use case precisely, it can be controlled only 
through configuration. As I understand, this involves creating mappings 
between XSD exposed to external users and XSDs of individual features. 
Reading data this way is straight-forward because of XPath expressions. 
However, writing data through this can be cumbersome and not even 
possible in some cases. For example, the Names field in our case spans 
FEATURE_NAME, LANGUAGE tables where FEATURE_NAME has a foreign-key 
referencing the LANGUAGE table (let's say it has 2 columns - id, 
lang_name) . When I add a new Feature with English (not the Language id, 
but the lang_name, English), how do I specify not to insert data into 
LANGUAGE table. Instead, the LANGUAGE table should be looked up with 
lang_name, and it's id should be used to insert a row in FEATURE_NAME. 
Similar cases are present for Updates and Deletes.

Also,the Complex Features code doesn't seem to be present in trunk yet. 
Are there plans to put it on trunk, and release it as a stable version?

Thank you,
Sunil

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to