GeoTools
  1. GeoTools
  2. GEOT-4147

ComplexFeature Parsing & Building Support

    Details

    • Type: Task Task
    • Status: Open Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: main
    • Labels:
      None

      Description

      Please see the associated proposal:

      http://docs.codehaus.org/display/GEOTOOLS/ComplexFeature+Parsing+and+Building+Support

      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.

        Activity

        Hide
        Niels Charlier added a comment -
        On 23/07/13 03:15, Ben Caradoc-Davies wrote:
        > On 23/07/13 08:45, Niels Charlier wrote:
        >> On 22/07/13 15:25, Niels Charlier wrote:
        >>> On 22/07/13 04:26, Ben Caradoc-Davies wrote:
        >>>> how much of the proposed API changes made it into gt-complex and
        >>>> gt-main? And the builders? Some of these changes were originally
        >>>> destined for gt-wfs-ng, so perhaps Gabriel can comment.
        >>> I don't think any of these changes have been done yet. As far as I can
        >>> see, this is something separate from splitting gt-complex and gt-app-schema.
        >>
        >> Actually, we did add a ComplexFeatureBuilder and AttributeBuilder at
        >> that time, but it ended up in gt-main rather than in gt-complex. So that
        >> was done already indeed.
        >> That's perhaps what you were referring to.
        >
        > Yes, that is what I meant. Does it use the schema resolver to define types, and can it download schemas?
        >

        No, it is very basic since it is in gt-main and doesn't have access to that stuff.
        The gt-complex module does have the ability to turn a xsd scheme to feature types though (through the featuretyperegistry).
        Show
        Niels Charlier added a comment - On 23/07/13 03:15, Ben Caradoc-Davies wrote: > On 23/07/13 08:45, Niels Charlier wrote: >> On 22/07/13 15:25, Niels Charlier wrote: >>> On 22/07/13 04:26, Ben Caradoc-Davies wrote: >>>> how much of the proposed API changes made it into gt-complex and >>>> gt-main? And the builders? Some of these changes were originally >>>> destined for gt-wfs-ng, so perhaps Gabriel can comment. >>> I don't think any of these changes have been done yet. As far as I can >>> see, this is something separate from splitting gt-complex and gt-app-schema. >> >> Actually, we did add a ComplexFeatureBuilder and AttributeBuilder at >> that time, but it ended up in gt-main rather than in gt-complex. So that >> was done already indeed. >> That's perhaps what you were referring to. > > Yes, that is what I meant. Does it use the schema resolver to define types, and can it download schemas? > No, it is very basic since it is in gt-main and doesn't have access to that stuff. The gt-complex module does have the ability to turn a xsd scheme to feature types though (through the featuretyperegistry).
        Hide
        Ben Caradoc-Davies added a comment -
        Thanks, Niels.

        Assigned to Rini for safekeeping. :-)
        Show
        Ben Caradoc-Davies added a comment - Thanks, Niels. Assigned to Rini for safekeeping. :-)
        Hide
        Ben Caradoc-Davies added a comment -
        See this thread and discuss with Sampo and Justin who are restarting work on wfs-ng:
        https://www.mail-archive.com/geoserver-devel@lists.sourceforge.net/msg24319.html
        Show
        Ben Caradoc-Davies added a comment - See this thread and discuss with Sampo and Justin who are restarting work on wfs-ng: https://www.mail-archive.com/geoserver-devel@lists.sourceforge.net/msg24319.html
        Hide
        Rini Angreani added a comment -
        Adam's unpushed work: https://github.com/Adam-Brown/geotools/compare/geotools:master...gml_client_lib
        It seems Niels has pushed ComplexFeatureBuilder into gt-main (minus the append() method but I'm not sure if it's needed).

        The rest of the stuff, I think is mainly the XmlComplexFeatureParser and tests.. at that time depended on Gabriel's XmlSimpleFeatureParser class, which seems to have already been ported into master:https://github.com/geotools/geotools/blob/master/modules/unsupported/wfs-ng/src/main/java/org/geotools/data/wfs/internal/parsers/XmlSimpleFeatureParser.java

        Should be easy, it's just a hassle to break them up into different pull requests per module.
        Show
        Rini Angreani added a comment - Adam's unpushed work: https://github.com/Adam-Brown/geotools/compare/geotools:master...gml_client_lib It seems Niels has pushed ComplexFeatureBuilder into gt-main (minus the append() method but I'm not sure if it's needed). The rest of the stuff, I think is mainly the XmlComplexFeatureParser and tests.. at that time depended on Gabriel's XmlSimpleFeatureParser class, which seems to have already been ported into master: https://github.com/geotools/geotools/blob/master/modules/unsupported/wfs-ng/src/main/java/org/geotools/data/wfs/internal/parsers/XmlSimpleFeatureParser.java Should be easy, it's just a hassle to break them up into different pull requests per module.
        Hide
        Rini Angreani added a comment -
        I've created a pull request here: https://github.com/geotools/geotools/pull/406
        I cleaned up a little bit, but there are some changes that I don't quite understand.
        All the tests in gt-main and gt-app-schema passed, but there are some unrelated existing failures in wfs-ng.
        Show
        Rini Angreani added a comment - I've created a pull request here: https://github.com/geotools/geotools/pull/406 I cleaned up a little bit, but there are some changes that I don't quite understand. All the tests in gt-main and gt-app-schema passed, but there are some unrelated existing failures in wfs-ng.

          People

          • Assignee:
            Rini Angreani
            Reporter:
            Adam Brown
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated: