@@ -420,22 +420,40 @@ void QgsServerProjectParser::serviceCapabilities( QDomElement& parentElement, QD
420420 QDomElement keywordListElem = propertiesElement.firstChildElement ( " WMSKeywordList" );
421421 if ( !keywordListElem.isNull () && !keywordListElem.text ().isEmpty () )
422422 {
423- QDomElement wmsKeywordElem = doc.createElement ( " KeywordList" );
424- QDomNodeList keywordList = keywordListElem.elementsByTagName ( " value" );
425- for ( int i = 0 ; i < keywordList.size (); ++i )
423+ if ( service.compare ( " WMS" , Qt::CaseInsensitive ) == 0 )
426424 {
427- QDomElement keywordElem = doc.createElement ( " Keyword" );
428- QDomText keywordText = doc.createTextNode ( keywordList.at ( i ).toElement ().text () );
429- keywordElem.appendChild ( keywordText );
430- if ( sia2045 )
425+ QDomElement wmsKeywordElem = doc.createElement ( " KeywordList" );
426+ QDomNodeList keywordList = keywordListElem.elementsByTagName ( " value" );
427+ for ( int i = 0 ; i < keywordList.size (); ++i )
431428 {
432- keywordElem.setAttribute ( " vocabulary" , " SIA_Geo405" );
429+ QDomElement keywordElem = doc.createElement ( " Keyword" );
430+ QDomText keywordText = doc.createTextNode ( keywordList.at ( i ).toElement ().text () );
431+ keywordElem.appendChild ( keywordText );
432+ if ( sia2045 )
433+ {
434+ keywordElem.setAttribute ( " vocabulary" , " SIA_Geo405" );
435+ }
436+ wmsKeywordElem.appendChild ( keywordElem );
433437 }
434- wmsKeywordElem.appendChild ( keywordElem );
435- }
436438
437- if ( keywordList.size () > 0 )
439+ if ( keywordList.size () > 0 )
440+ {
441+ serviceElem.appendChild ( wmsKeywordElem );
442+ }
443+ }
444+ else
438445 {
446+ QDomNodeList keywordNodeList = keywordListElem.elementsByTagName ( " value" );
447+ QStringList keywordList;
448+ for ( int i = 0 ; i < keywordNodeList.size (); ++i )
449+ {
450+ keywordList.push_back ( keywordNodeList.at ( i ).toElement ().text () );
451+ }
452+ QDomElement wmsKeywordElem = doc.createElement ( " Keywords" );
453+ if ( service.compare ( " WCS" , Qt::CaseInsensitive ) == 0 )
454+ wmsKeywordElem = doc.createElement ( " keywords" );
455+ QDomText keywordText = doc.createTextNode ( keywordList.join ( " , " ) );
456+ wmsKeywordElem.appendChild ( keywordText );
439457 serviceElem.appendChild ( wmsKeywordElem );
440458 }
441459 }
@@ -1068,7 +1086,7 @@ QSet<QString> QgsServerProjectParser::findRestrictedLayers() const
10681086 }
10691087 }
10701088 }
1071-
1089+
10721090 // wmsLayerRestrictionValues contains LayerIDs
10731091 if ( mUseLayerIDs )
10741092 {
0 commit comments