internal static void ProcessFields(EsriFeature info, XmlReader responseReader) { while (responseReader.Read()) { if (responseReader.NodeType == XmlNodeType.EndElement && responseReader.Name == "FCLASS") break; if (responseReader.NodeType == XmlNodeType.Element) { if (responseReader.Name == "ENVELOPE") { info._Envelope = EsriEnvelope.ProcessEnvelopeNode(responseReader); } else { info.Fields.AddRange(EsriField.ProcessFields(responseReader)); } } } }
internal static EsriFeature ProcessFeature(XmlReader responseReader) { EsriFeature feature = new EsriFeature(); while (responseReader.Read()) { if (responseReader.NodeType == XmlNodeType.Element) { switch (responseReader.LocalName) { case "ENVELOPE": feature._Envelope = EsriEnvelope.ProcessEnvelopeNode(responseReader); break; case "FIELDS": feature._Fields.AddRange(EsriField.ProcessFields(responseReader)); break; } } else if (responseReader.NodeType == XmlNodeType.EndElement) { if (responseReader.LocalName == "FEATURE") break; } } return feature; }