/ msWFSDumpLayer11 */ /
| 102 | /* msWFSDumpLayer11 */ |
| 103 | /************************************************************************/ |
| 104 | static xmlNodePtr msWFSDumpLayer11(mapObj *map, layerObj *lp, xmlNsPtr psNsOws) |
| 105 | { |
| 106 | rectObj ext; |
| 107 | |
| 108 | xmlNodePtr psRootNode, psNode; |
| 109 | const char *value = NULL; |
| 110 | const char *encoding = NULL; |
| 111 | char *encoded=NULL; |
| 112 | char *valueToFree; |
| 113 | char **tokens; |
| 114 | int n=0,i=0; |
| 115 | |
| 116 | encoding = msOWSLookupMetadata(&(map->web.metadata), "FO", "encoding"); |
| 117 | if (!encoding) |
| 118 | encoding = "ISO-8859-1"; |
| 119 | |
| 120 | psRootNode = xmlNewNode(NULL, BAD_CAST "FeatureType"); |
| 121 | |
| 122 | /*if there is an encoding using it on some of the items*/ |
| 123 | psNode = msOWSCommonxmlNewChildEncoded(psRootNode, NULL, "Name", lp->name, encoding); |
| 124 | |
| 125 | |
| 126 | if (lp->name && strlen(lp->name) > 0 && |
| 127 | (msIsXMLTagValid(lp->name) == MS_FALSE || isdigit(lp->name[0]))) |
| 128 | xmlAddSibling(psNode, |
| 129 | xmlNewComment(BAD_CAST "WARNING: The layer name '%s' might contain spaces or " |
| 130 | "invalid characters or may start with a number. This could lead to potential problems")); |
| 131 | |
| 132 | value = msOWSLookupMetadata(&(lp->metadata), "FO", "title"); |
| 133 | if (!value) |
| 134 | value =(const char*)lp->name; |
| 135 | |
| 136 | psNode = msOWSCommonxmlNewChildEncoded(psRootNode, NULL, "Title", value, encoding); |
| 137 | |
| 138 | |
| 139 | value = msOWSLookupMetadata(&(lp->metadata), "FO", "abstract"); |
| 140 | if (value) |
| 141 | psNode = msOWSCommonxmlNewChildEncoded(psRootNode, NULL, "Abstract", value, encoding); |
| 142 | |
| 143 | |
| 144 | |
| 145 | value = msOWSLookupMetadata(&(lp->metadata), "FO", "keywordlist"); |
| 146 | |
| 147 | if (value) |
| 148 | { |
| 149 | if (encoding) |
| 150 | encoded = msGetEncodedString(value, encoding); |
| 151 | else |
| 152 | encoded = msGetEncodedString(value, "ISO-8859-1"); |
| 153 | |
| 154 | msLibXml2GenerateList( |
| 155 | xmlNewChild(psRootNode, psNsOws, BAD_CAST "Keywords", NULL), |
| 156 | NULL, "Keyword", encoded, ',' ); |
| 157 | msFree(encoded); |
| 158 | } |
| 159 | /*support DefaultSRS and OtherSRS*/ |
| 160 | valueToFree = msOWSGetProjURN(&(map->projection),&(map->web.metadata),"FO",MS_FALSE); |
| 161 | if (!valueToFree) |
no test coverage detected