/ msSOSGetCapabilities */ / getCapabilities request handler. */ /
| 1182 | /* getCapabilities request handler. */ |
| 1183 | /************************************************************************/ |
| 1184 | int msSOSGetCapabilities(mapObj *map, sosParamsObj *sosparams, cgiRequestObj *req, owsRequestObj *ows_request) { |
| 1185 | xmlDocPtr psDoc = NULL; /* document pointer */ |
| 1186 | xmlNodePtr psRootNode, psMainNode, psNode; |
| 1187 | xmlNodePtr psOfferingNode; |
| 1188 | xmlNodePtr psTmpNode; |
| 1189 | |
| 1190 | char *schemalocation = NULL; |
| 1191 | char *xsi_schemaLocation = NULL; |
| 1192 | char *script_url=NULL; |
| 1193 | const char *updatesequence=NULL; |
| 1194 | const char *encoding; |
| 1195 | |
| 1196 | int i,j,k; |
| 1197 | layerObj *lp = NULL, *lpTmp = NULL; |
| 1198 | const char *value = NULL; |
| 1199 | char *pszTmp = NULL; |
| 1200 | char *pszProcedure = NULL; |
| 1201 | char szTmp[256]; |
| 1202 | |
| 1203 | /* array of offering */ |
| 1204 | char **papsOfferings = NULL; |
| 1205 | int nOfferings =0, nCurrentOff = -1; |
| 1206 | int nProperties = 0; |
| 1207 | char **papszProperties = NULL; |
| 1208 | |
| 1209 | int iItemPosition = -1; |
| 1210 | shapeObj sShape; |
| 1211 | int status; |
| 1212 | |
| 1213 | /* for each layer it indicates the indice to be used in papsOfferings |
| 1214 | (to associate it with the offering) */ |
| 1215 | int *panOfferingLayers = NULL; |
| 1216 | |
| 1217 | char **papsProcedures = NULL; |
| 1218 | int nDistinctProcedures =0; |
| 1219 | |
| 1220 | xmlNsPtr psNsGml = NULL; |
| 1221 | xmlNsPtr psNsSos = NULL; |
| 1222 | xmlNsPtr psNsOws = NULL; |
| 1223 | xmlNsPtr psNsOgc = NULL; |
| 1224 | xmlNsPtr psNsXLink = NULL; |
| 1225 | xmlNsPtr psNsSwe = NULL; |
| 1226 | |
| 1227 | xmlChar *buffer = NULL; |
| 1228 | int size = 0; |
| 1229 | msIOContext *context = NULL; |
| 1230 | |
| 1231 | int ows_version = OWS_1_1_0; |
| 1232 | |
| 1233 | int sosSupportedVersions[] = {OWS_1_0_0}; |
| 1234 | int sosNumSupportedVersions = 1; |
| 1235 | |
| 1236 | /* acceptversions: do OWS Common style of version negotiation */ |
| 1237 | if (sosparams->pszAcceptVersions) { |
| 1238 | char **tokens; |
| 1239 | int i, j, k=-1; |
| 1240 | |
| 1241 | tokens = msStringSplit(sosparams->pszAcceptVersions, ',', &j); |
no test coverage detected