public static WmsCapabilities Parse(Stream stream) { var settings = new XmlReaderSettings #if NET35 { ProhibitDtd = false }; #else { DtdProcessing = DtdProcessing.Ignore }; #endif using (var reader = XmlReader.Create(stream, settings)) { reader.MoveToContent(); var version = reader.GetAttribute("version"); var wms = new WmsCapabilities(version); var updateSequence = reader.GetAttribute("updateSequence"); if (!string.IsNullOrEmpty(updateSequence)) { wms.UpdateSequence = int.Parse(updateSequence, NumberFormatInfo.InvariantInfo); } if (reader.IsEmptyElement) { reader.Read(); return(null); } if (wms.Version.Version >= WmsVersionEnum.Version_1_3_0) { reader.ReadStartElement("WMS_Capabilities"); } else { reader.ReadStartElement("WMT_MS_Capabilities"); } reader.MoveToContent(); wms.Service.ReadXml(reader.ReadSubtree()); reader.ReadEndElement(); reader.MoveToContent(); wms.Capability.ReadXml(reader.ReadSubtree()); reader.ReadEndElement(); reader.ReadEndElement(); return(wms); } }
public static WmsCapabilities Parse(Stream stream) { var settings = new XmlReaderSettings #if NET35 { ProhibitDtd = false }; #else { DtdProcessing = DtdProcessing.Ignore }; #endif using (var reader = XmlReader.Create(stream, settings)) { reader.MoveToContent(); var version = reader.GetAttribute("version"); var wms = new WmsCapabilities(version); var updateSequence = reader.GetAttribute("updateSequence"); if (!string.IsNullOrEmpty(updateSequence)) wms.UpdateSequence = int.Parse(updateSequence, NumberFormatInfo.InvariantInfo); if (reader.IsEmptyElement) { reader.Read(); return null; } if (wms.Version.Version >= WmsVersionEnum.Version_1_3_0) reader.ReadStartElement("WMS_Capabilities"); else { reader.ReadStartElement("WMT_MS_Capabilities"); } reader.MoveToContent(); wms.Service.ReadXml(reader.ReadSubtree()); reader.ReadEndElement(); reader.MoveToContent(); wms.Capability.ReadXml(reader.ReadSubtree()); reader.ReadEndElement(); reader.ReadEndElement(); return wms; } }