@@ -420,22 +420,40 @@ void QgsServerProjectParser::serviceCapabilities( QDomElement& parentElement, QD
420
420
QDomElement keywordListElem = propertiesElement.firstChildElement ( " WMSKeywordList" );
421
421
if ( !keywordListElem.isNull () && !keywordListElem.text ().isEmpty () )
422
422
{
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 )
426
424
{
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 )
431
428
{
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 );
433
437
}
434
- wmsKeywordElem.appendChild ( keywordElem );
435
- }
436
438
437
- if ( keywordList.size () > 0 )
439
+ if ( keywordList.size () > 0 )
440
+ {
441
+ serviceElem.appendChild ( wmsKeywordElem );
442
+ }
443
+ }
444
+ else
438
445
{
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 );
439
457
serviceElem.appendChild ( wmsKeywordElem );
440
458
}
441
459
}
@@ -1068,7 +1086,7 @@ QSet<QString> QgsServerProjectParser::findRestrictedLayers() const
1068
1086
}
1069
1087
}
1070
1088
}
1071
-
1089
+
1072
1090
// wmsLayerRestrictionValues contains LayerIDs
1073
1091
if ( mUseLayerIDs )
1074
1092
{
0 commit comments