Example #1
0
        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.StartsWith("OGC:"))
                {
                    value = value.Substring(4);
                }
                try
                {
                    Name = (ServiceName)Enum.Parse(typeof(ServiceName), value, true);
                }
                catch (System.Exception exception)
                {
                    throw new WmsParsingException(String.Format("Invalid service name: {0}. Must be WMS", value),
                                                  exception);
                }

                if (Name != ServiceName.WMS)
                {
                    throw new WmsParsingException(String.Format("Invalid service name: {0}. Must be WMS", value));
                }
            }

            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);
            }
        }
Example #2
0
        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.StartsWith("OGC:")) value = value.Substring(4);
                try
                {
                    Name = (ServiceName) Enum.Parse(typeof (ServiceName), value, true);
                }
                catch (System.Exception exception)
                {
                    throw new WmsParsingException(String.Format("Invalid service name: {0}. Must be WMS", value),
                                                  exception);
                }

                if (Name != ServiceName.WMS)
                    throw new WmsParsingException(String.Format("Invalid service name: {0}. Must be WMS", value));
            }

            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);
        }
Example #3
0
        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();
                }
            }
        }
Example #4
0
 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();
         }
     }
 }