bool QgsWFSProvider::describeFeatureType( QString& geometryAttribute, QgsFields& fields, QGis::WkbType& geomType ) { fields.clear(); QgsWFSDescribeFeatureType describeFeatureType( mShared->mURI.uri() ); if ( !describeFeatureType.requestFeatureType( mShared->mWFSVersion, mShared->mURI.typeName() ) ) { QgsMessageLog::logMessage( tr( "DescribeFeatureType failed for url %1: %2" ). arg( dataSourceUri() ).arg( describeFeatureType.errorMessage() ), tr( "WFS" ) ); return false; } const QByteArray& response = describeFeatureType.response(); QDomDocument describeFeatureDocument; QString errorMsg; if ( !describeFeatureDocument.setContent( response, true, &errorMsg ) ) { QgsDebugMsg( response ); QgsMessageLog::logMessage( tr( "DescribeFeatureType failed for url %1: %2" ). arg( dataSourceUri() ).arg( errorMsg ), tr( "WFS" ) ); return false; } if ( readAttributesFromSchema( describeFeatureDocument, geometryAttribute, fields, geomType ) != 0 ) { QgsMessageLog::logMessage( tr( "DescribeFeatureType failed for url %1: %2" ). arg( dataSourceUri() ).arg( tr( "failed retrieving attributes from schema" ) ), tr( "WFS" ) ); return false; } return true; }