public Service(XElement node, string @namespace) { XElement element; if (ParseName) { element = node.Element(XName.Get("Name", @namespace)); if (element == null) throw WmsParsingException.ElementNotFound("Name"); var value = element.Value; if (!value.ToLower().StartsWith("ogc:wms")) Debug.WriteLine("Warning: Invalid service name: '{0}'. Must be 'OGC:WMS'", value); Name = ServiceName.WMS; } element = node.Element(XName.Get("Title", @namespace)); if (element == null) throw WmsParsingException.ElementNotFound("Title"); Title = element.Value; element = node.Element(XName.Get("Abstract", @namespace)); Abstract = element != null ? element.Value : string.Empty; element = node.Element(XName.Get("KeywordList", @namespace)); if (element != null) KeywordList = new KeywordList(element, @namespace); element = node.Element(XName.Get("OnlineResource", @namespace)); if (element != null) OnlineResource = new OnlineResource(element, @namespace); element = node.Element(XName.Get("ContactInformation", @namespace)); if (element != null) ContactInformation = new ContactInformation(element, @namespace); element = node.Element(XName.Get("Fees", @namespace)); Fees = element != null ? element.Value : string.Empty; element = node.Element(XName.Get("AccessConstraints", @namespace)); AccessConstraints = element != null ? element.Value : string.Empty; element = node.Element(XName.Get("LayerLimit", @namespace)); if (element == null) LayerLimit = null; else LayerLimit = int.Parse(element.Value, NumberFormatInfo.InvariantInfo); element = node.Element(XName.Get("MaxWidth", @namespace)); if (element == null) MaxWidth = null; else MaxWidth = int.Parse(element.Value, NumberFormatInfo.InvariantInfo); element = node.Element(XName.Get("MaxHeight", @namespace)); if (element == null) MaxHeight = null; else MaxHeight = int.Parse(element.Value, NumberFormatInfo.InvariantInfo); }
public Service(XElement node, string @namespace) { XElement element; if (ParseName) { element = node.Element(XName.Get("Name", @namespace)); if (element == null) { throw WmsParsingException.ElementNotFound("Name"); } var value = element.Value; if (!value.ToLower().StartsWith("ogc:wms")) { Debug.WriteLine("Warning: Invalid service name: '{0}'. Must be 'OGC:WMS'", value); } Name = ServiceName.WMS; } element = node.Element(XName.Get("Title", @namespace)); if (element == null) { throw WmsParsingException.ElementNotFound("Title"); } Title = element.Value; element = node.Element(XName.Get("Abstract", @namespace)); Abstract = element != null ? element.Value : string.Empty; element = node.Element(XName.Get("KeywordList", @namespace)); if (element != null) { KeywordList = new KeywordList(element, @namespace); } element = node.Element(XName.Get("OnlineResource", @namespace)); if (element != null) { OnlineResource = new OnlineResource(element, @namespace); } element = node.Element(XName.Get("ContactInformation", @namespace)); if (element != null) { ContactInformation = new ContactInformation(element, @namespace); } element = node.Element(XName.Get("Fees", @namespace)); Fees = element != null ? element.Value : string.Empty; element = node.Element(XName.Get("AccessConstraints", @namespace)); AccessConstraints = element != null ? element.Value : string.Empty; element = node.Element(XName.Get("LayerLimit", @namespace)); if (element == null) { LayerLimit = null; } else { LayerLimit = int.Parse(element.Value, NumberFormatInfo.InvariantInfo); } element = node.Element(XName.Get("MaxWidth", @namespace)); if (element == null) { MaxWidth = null; } else { MaxWidth = int.Parse(element.Value, NumberFormatInfo.InvariantInfo); } element = node.Element(XName.Get("MaxHeight", @namespace)); if (element == null) { MaxHeight = null; } else { MaxHeight = int.Parse(element.Value, NumberFormatInfo.InvariantInfo); } }
public override void ReadXml(XmlReader reader) { if (CheckEmptyNode(reader, "Service", string.Empty)) { throw WmsParsingException.ElementNotFound("Service"); } while (!reader.EOF) { if (reader.IsStartElement()) { switch (reader.LocalName) { case "Name": string name = reader.ReadElementContentAsString(); const string prefix = "ogc:"; if (name.ToLower().StartsWith(prefix)) { name = name.Substring(prefix.Length); } Name = (ServiceName)Enum.Parse(typeof(ServiceName), name, true); break; case "Title": Title = reader.ReadElementContentAsString(); break; case "Abstact": Abstract = reader.ReadElementContentAsString(); break; case "KeywordList": KeywordList = new KeywordList(); KeywordList.ReadXml(reader); break; case "OnlineResource": OnlineResource = new OnlineResource(); OnlineResource.ReadXml(reader); break; case "ContactInformation": ContactInformation = new ContactInformation(); ContactInformation.ReadXml(reader); break; case "Fees": Fees = reader.ReadElementContentAsString(); break; case "AccessConstraints": AccessConstraints = reader.ReadElementContentAsString(); break; case "LayerLimit": LayerLimit = reader.ReadElementContentAsInt(); break; case "MaxWidth": MaxWidth = reader.ReadElementContentAsInt(); break; case "MaxHeight": MaxHeight = reader.ReadElementContentAsInt(); break; default: reader.Skip(); break; } } else { reader.Read(); } } }
public override void ReadXml(XmlReader reader) { if (CheckEmptyNode(reader, "Service", string.Empty, true)) throw WmsParsingException.ElementNotFound("Service"); while (!reader.EOF) { if (reader.IsStartElement()) { switch (reader.LocalName) { case "Name": string name = reader.ReadElementContentAsString(); const string prefix = "ogc:"; if (name.ToLower().StartsWith(prefix)) name = name.Substring(prefix.Length); Name = (ServiceName)Enum.Parse(typeof(ServiceName), name , true); break; case "Title": Title = reader.ReadElementContentAsString(); break; case "Abstact": Abstract = reader.ReadElementContentAsString(); break; case "KeywordList": KeywordList = new KeywordList(); KeywordList.ReadXml(reader); break; case "OnlineResource": OnlineResource = new OnlineResource(); OnlineResource.ReadXml(reader); break; case "ContactInformation": ContactInformation = new ContactInformation(); ContactInformation.ReadXml(reader); break; case "Fees": Fees = reader.ReadElementContentAsString(); break; case "AccessConstraints": AccessConstraints = reader.ReadElementContentAsString(); break; case "LayerLimit": LayerLimit = reader.ReadElementContentAsInt(); break; case "MaxWidth": MaxWidth = reader.ReadElementContentAsInt(); break; case "MaxHeight": MaxHeight = reader.ReadElementContentAsInt(); break; default: reader.Skip(); break; } } else { reader.Read(); } } }