MCPcopy Create free account
hub / github.com/MapServer/MapServer / msWFSDumpLayer11

Function msWFSDumpLayer11

mapwfs11.c:104–248  ·  view source on GitHub ↗

/ msWFSDumpLayer11 */ /

Source from the content-addressed store, hash-verified

102/* msWFSDumpLayer11 */
103/************************************************************************/
104static 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)

Callers 1

msWFSGetCapabilities11Function · 0.85

Calls 14

msOWSLookupMetadataFunction · 0.85
msIsXMLTagValidFunction · 0.85
msGetEncodedStringFunction · 0.85
msLibXml2GenerateListFunction · 0.85
msFreeFunction · 0.85
msOWSGetProjURNFunction · 0.85
msStringSplitFunction · 0.85
msFreeCharArrayFunction · 0.85
msWFSGetOutputFormatListFunction · 0.85
msOWSGetLayerExtentFunction · 0.85
msProjectRectFunction · 0.85

Tested by

no test coverage detected