private void ParseParameters(Parameters Request) { if (Request["REQUEST"] == null) { WriteError("mandatory REQUEST parameter is missing"); } switch (Request["REQUEST"].ToUpper()) { case "GETCAPABILITIES": _requestType = WFSRequestType.GetCapabilities; break; case "DESCRIBEFEATURETYPE": _requestType = WFSRequestType.DescribeFeatureType; break; case "GETFEATURE": _requestType = WFSRequestType.GetFeature; break; } if (Request["VERSION"] == null) { WriteError("mandatory VERSION parameter is missing"); } _version = Request["VERSION"]; if (Request["TYPENAME"] == null && _requestType != WFSRequestType.GetCapabilities) { WriteError("mandatory VERSION parameter is missing"); } _typeName = Request["TYPENAME"]; if (Request["MAXFEATURES"] != null) { _maxFeatures = int.Parse(Request["MAXFEATURES"]); } if (Request["FILTER"] != null) { XmlDocument doc = new XmlDocument(); doc.Load(Request["FILTER"]); _filter = doc.SelectSingleNode("Filter"); } }
public bool ParseParameters(XmlDocument doc) { if (doc == null) { return(false); } XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); ns.AddNamespace("WFS", "http://www.opengis.net/wfs"); ns.AddNamespace("OGC", "http://www.opengis.net/ogc"); XmlNode request = doc.SelectSingleNode("WFS:GetCapabilities", ns); if (request != null) { _requestType = WFSRequestType.GetCapabilities; } if (request == null) { request = doc.SelectSingleNode("WFS:DescribeFeatureType", ns); if (request != null) { _requestType = WFSRequestType.DescribeFeatureType; } } if (request == null) { request = doc.SelectSingleNode("WFS:GetFeature", ns); if (request != null) { _requestType = WFSRequestType.GetFeature; } } if (request == null) { return(false); } if (request.Attributes["version"] == null) { WriteError("mandatory VERSION parameter is missing"); } _version = request.Attributes["version"].Value; if (request.Attributes["maxfeatures"] != null) { _maxFeatures = int.Parse(request.Attributes["maxfeatures"].Value); } else if (request.Attributes["maxFeatures"] != null) { _maxFeatures = int.Parse(request.Attributes["maxFeatures"].Value); } XmlNode query = request.SelectSingleNode("WFS:Query[@typeName]", ns); if (query != null) { _typeName = query.Attributes["typeName"].Value; _filter = query.SelectSingleNode("Filter", ns); if (_filter == null) { _filter = query.SelectSingleNode("WFS:Filter", ns); } if (_filter == null) { _filter = query.SelectSingleNode("OGC:Filter", ns); } _sortBy = query.SelectSingleNode("SortBy", ns); if (_sortBy == null) { _sortBy = query.SelectSingleNode("WFS:SortBy", ns); } if (_sortBy == null) { _sortBy = query.SelectSingleNode("OGC:SortBy", ns); } if (query.Attributes["srsName"] != null) { _srsName = query.Attributes["srsName"].Value; } } XmlNode typeName = request.SelectSingleNode("WFS:TypeName", ns); if (typeName != null) { _typeName = typeName.InnerText; } return(true); }