Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Motivation:Add support for ComplexFeatures. GeoTools should be able to parse a complex WFS response and construct a set of Feature objects from it.


Adam Brown


ComplexFeature Parsing & Building Support


complex features FTW

This page represents the current plan; for discussion please check the tracker link above.



GeoTool's lack of support for parsing XML into complex features limits its utility as a GIS toolkit.

I propose to add this functionality by augmenting the codebase such that there are complex-compatible analogues or alternatives to all the classes necessary for WFS-based communications. Existing type hierarchies will be modifed and added to to provide this new functionality. In making these changes I will strive for maximum reuse of existing code and will follow the coding patterns and API conventions currently employed; as such, the code for performing a complex feature request will be much like the code for a simple feature request. Breaking changes will be eschewed.

Central to this work is a new XmlComplexFeatureParser which will use an AttributeBuilder and a ComplexFeatureBuilder to create objects that represent the content of WFS XML responses.

The addition of the following classes has had varying levels of impact on their encompassing type hierarchies:

  • WFSContentDataAccess
  • WFSDataAccessFactory
  • XmlComplexFeatureParser
  • ComplexFeatureBuilder

The proposed type hierachies can be seen alongside their previous forms here: See how the type hierarchies have changed.


GML Consumption Library Use cases


This proposal is under construction.

Voting has not started yet:


This section is used to make sure your proposal is complete (did you remember documentation?) and has enough paid or volunteer time lined up to be a success


no progress






lack mandate/funds/time


volunteer needed

  1. (tick) WFSDataAccessFactory integrated into 'Factory' hierarchy.
  2. (tick) WFSContentDataAccess integrated into 'DataAccess' hierarcy.
  3. (tick) A new 'GetParser<...>' hierarchy created to supplant existing 'GetFeatureParser' hierarchy. XmlComplexFeatureParser integrated into this.
  4. (tick) A new 'FeatureBuilder<...>' hierarchy created to generalise functionality from 'SimpleFeatureBuilder' so that it can be used by a new ComplexFeatureBuilder class.
  5. Create an AttributeBuilder. (In progress)
  6. (error) Create a ComplexFeatureBuilder. (Started, blocked by #5)
  7. (error) Complete the XmlComplexFeatureParser. (Started, blocked by #6)
  8. (error) Update documentation. (Blocked by #7)

API Changes




Documentation Changes

list the pages effected by this proposal

  • No labels