Changeset 4287 for cows/trunk/cows


Ignore:
Timestamp:
06/10/08 15:11:18 (11 years ago)
Author:
domlowe
Message:

DescribeFeatureType? returns schema from correct namespace. Added config options to add application schemas.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cows/trunk/cows/pylons/wfs_controller.py

    r4284 r4287  
    99from sets import Set 
    1010from matplotlib.cm import get_cmap 
    11 from pylons import request, response, c 
     11from pylons import request, response, c, config 
     12import ConfigParser 
    1213 
    1314import logging 
     
    117118 
    118119            c.capabilities.contents.datasetSummaries.append(ds) 
    119              
     120 
     121    def _getSchema(self, typename): 
     122        namespace = typename.split(':')[0] 
     123        schemalocation = conf 
     124         
     125    def _parsetypename(self, typename): 
     126        """ parse feature type name into schema and name"""        
     127        if typename not in self.layers.keys(): 
     128            raise InvalidParameterValue('Invalid typename parameter: %s. Typename must consist of namespace and featuretype separated with a colon, as displayed in the GetCapabilities response.'%typename, 'typename') 
     129     
     130        namespace, ft = typename.split(':') 
     131        wfsconfiglocation=config['wfsconfig'] 
     132        wfscfg = ConfigParser.ConfigParser() 
     133        wfscfg.read(wfsconfiglocation)       
     134        xmlschema=open(wfscfg.get('application_schemas', namespace)).read()       
     135        log.debug('location of application schema %s' %(xmlschema)) 
     136        return xmlschema 
     137 
     138                 
    120139    def DescribeFeatureType(self): 
    121140        """ DescribeFeatureType """ 
    122         pass             
     141        version = self.getOwsParam('version', default=self.validVersions[0]) 
     142        if version not in self.validVersions: 
     143            raise InvalidParameterValue('Version %s not supported' % version, 
     144                                        'version') 
     145        typename=self.getOwsParam('typename') 
     146        ftschema =self._parsetypename(typename) 
     147        log.debug(self.layers.items()) 
     148         
     149 
     150                 
     151        outputformat=self.getOwsParam('outputformat', default='text/xml') 
     152         
     153        #temporarily returns entire schema 
     154        #TODO: return single featuretype definition 
     155        msg  = ftschema 
     156        return msg 
    123157   
    124158    def GetFeature(self): 
Note: See TracChangeset for help on using the changeset viewer.