[fdo-trac] #480: Fdo WFS doesn't recognize class whose name contains "."

FDO trac_fdo at osgeo.org
Thu Mar 19 05:15:39 EDT 2009


#480: Fdo WFS doesn't recognize class whose name contains "."
----------------------------+-----------------------------------------------
   Reporter:  CXYS          |       Owner:  gregboone
       Type:  defect        |      Status:  new      
   Priority:  major         |   Milestone:  3.5.0    
  Component:  WFS Provider  |     Version:  3.4.0    
   Severity:  2             |    Keywords:           
External_id:  1200560.01    |  
----------------------------+-----------------------------------------------
 Defect:
   Connect to the following WFS server.
   <http://giswebservices.massgis.state.ma.us/geoserver/wfs>
   List all the feature classes and get only "TOWNS_POLYM"; however the
 server actually has quite a large number of feature classes.

 Cause:
 The missing feature classes are caused by the "." in the class name. The
 class names in the wfs server all contain "." except "TOWNS_POLYM". Take
 one class "GISDATA.BUGS96_POLY" for example, after
 FdoFeatureSchemaCollection read the xml requested from wfs server, the
 class name is transferred to "GISDATA-dot-BUGS96_POLY" -- please note, the
 "." is renamed as "-dot-" in FdoFeatureSchemaCollection.
 However in another aspect FdoWfsFeatureTypeList also parse the xml and
 build up a FdoWfsFeatureTypeCollection. (FdoWfsFeatureTypeList.cpp line
 72:)
                      FdoPtr<FdoWfsFeatureType> featureType =
 FdoWfsFeatureType::Create();
                     featureType->InitFromXml(context, atts);
                     m_featureTypes->Add(featureType);
 It doesn't do the translation of ".".

 These difference cause the problem during DescribeSchema command execute,
 which calls FdoWfsConnection::GetSchemas() actually.
 FdoWfsConnection.cpp line 600:
                FdoPtr<FdoWfsFeatureType> pFeat =
 pFeatColl->FindItem(classDef->GetName());
 As you can see, it tries to search in FdoWfsFeatureTypeCollection by class
 name. But the class name is "GISDATA-dot-BUGS96_POLY" and the name
 recorded in feature type is "GISDATA.BUGS96_POLY", of course nothing can
 be found. Thus the class is treated as "abstract" by mistake.

-- 
Ticket URL: <http://trac.osgeo.org/fdo/ticket/480>
FDO <http://fdo.osgeo.org/>
Feature Data Objects


More information about the fdo-trac mailing list