Пример #1
0
 protected DCPTypeElement(string name, XElement node, string @namespace)
     : this(name)
 {
     var element = node.Element(XName.Get("OnlineResource", @namespace));
     if (element != null)
         OnlineResource = new OnlineResource(element, @namespace);
 }
Пример #2
0
        public override void ReadXml(XmlReader reader)
        {
            if (CheckEmptyNode(reader, "DataURL", Namespace))
                return;

            while (!reader.EOF)
            {
                if (reader.IsStartElement())
                {
                    switch (reader.LocalName)
                    {
                        case "Format":
                            Format = reader.ReadElementContentAsString();
                            break;
                        case "OnlineResource":
                            OnlineResource = new OnlineResource();
                            OnlineResource.ReadXml(reader);
                            break;
                        default:
                            reader.Skip();
                            break;
                    }
                }
                else
                {
                    reader.Read();
                }
            }
        }
Пример #3
0
 public override XElement ToXElement(string @namespace)
 {
     return(new XElement(XName.Get("StyleURL", @namespace),
                         new XAttribute(XName.Get("type"), Type),
                         new XElement(XName.Get("Format", @namespace), Format),
                         OnlineResource.ToXElement(@namespace)));
 }
Пример #4
0
        public override void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();
            if (reader.IsEmptyElement) { reader.Read(); return; }

            while (!reader.EOF)
            {
                if (reader.IsStartElement())
                {
                    switch (reader.LocalName)
                    {
                        case "Format":
                            Format = reader.ReadElementContentAsString();
                            break;
                        case "OnlineResource":
                            OnlineResource = new OnlineResource();
                            OnlineResource.ReadXml(reader);
                            break;
                        default:
                            reader.Skip();
                            break;
                    }
                }
                else
                {
                    reader.Read();
                }
            }
        }
        public override void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();
            if (reader.IsEmptyElement)
            {
                reader.Read(); return;
            }

            while (!reader.EOF)
            {
                if (reader.IsStartElement())
                {
                    switch (reader.LocalName)
                    {
                    case "Format":
                        Format = reader.ReadElementContentAsString();
                        break;

                    case "OnlineResource":
                        OnlineResource = new OnlineResource();
                        OnlineResource.ReadXml(reader);
                        break;

                    default:
                        reader.Skip();
                        break;
                    }
                }
                else
                {
                    reader.Read();
                }
            }
        }
Пример #6
0
 public override XElement ToXElement(string @namespace)
 {
     return(new XElement(XName.Get("Attribution", @namespace),
                         new XElement(XName.Get("Title", @namespace), Title),
                         OnlineResource.ToXElement(@namespace),
                         LogoURL.ToXElement(@namespace)));
 }
Пример #7
0
        public LogoURL(XElement node, string nameSpace)
        {
            var widthAttribute = node.Attribute(XName.Get("width"));

            if (widthAttribute == null)
            {
                throw new System.Exception("Width node is null in xml");
            }
            Width = int.Parse(widthAttribute.Value, NumberFormatInfo.InvariantInfo);
            var heightAttribute = node.Attribute(XName.Get("height"));

            if (heightAttribute == null)
            {
                throw new System.Exception("Height node is null in xml");
            }
            Height = int.Parse(heightAttribute.Value, NumberFormatInfo.InvariantInfo);

            var element = node.Element(XName.Get("Format", nameSpace));

            Format = element?.Value ?? "png";

            element = node.Element(XName.Get("OnlineResource", nameSpace));
            if (element != null)
            {
                OnlineResource = new OnlineResource(element, nameSpace);
            }
        }
Пример #8
0
        public override void ReadXml(XmlReader reader)
        {
            if (CheckEmptyNode(reader, _name, Namespace))

                OnlineResource = new OnlineResource();
            OnlineResource.ReadXml(reader);
            reader.ReadEndElement();
        }
Пример #9
0
 private static ITileSource ParseTileSetNode(XElement xTileSet, OnlineResource onlineResource)
 {
     var styles = xTileSet.Elements("Styles").Select(xStyle => xStyle.Value).ToList();
     var layers = xTileSet.Elements("Layers").Select(xLayer => xLayer.Value).ToList();
     var schema = ToTileSchema(xTileSet, CreateDefaultName(layers));
     var wmscRequest = new WmscRequest(new Uri(onlineResource.Href), schema, layers, styles);
     return new WmscTileSource(schema, new HttpTileProvider(wmscRequest));
 }
Пример #10
0
 public override XElement ToXElement(string @namespace)
 {
     return(new XElement(XName.Get("LegendURL", @namespace),
                         new XAttribute(XName.Get("width"), Width.ToString(NumberFormatInfo.InvariantInfo)),
                         new XAttribute(XName.Get("height"), Height.ToString(NumberFormatInfo.InvariantInfo)),
                         new XElement(XName.Get("Format", @namespace), Format),
                         OnlineResource.ToXElement(@namespace)));
 }
Пример #11
0
        public StyleSheetURL(XElement node, string @namespace)
        {
            var element = node.Element(XName.Get("Format", @namespace));
            Format = element == null ? "png" : element.Value;

            element = node.Element(XName.Get("OnlineResource", @namespace));
            if (element != null)
                OnlineResource = new OnlineResource(element, @namespace);
        }
Пример #12
0
 protected DCPTypeElement(string name, XElement node, string @namespace)
     : this(name)
 {
     var element = node.Element(XName.Get("OnlineResource", @namespace));
     if (element != null)
     {
         OnlineResource = new OnlineResource(element, @namespace);
     }
 }
Пример #13
0
 public override void ReadXml(XmlReader reader)
 {
     if (CheckEmptyNode(reader, _name, Namespace))
     {
         OnlineResource = new OnlineResource();
     }
     OnlineResource.ReadXml(reader);
     reader.ReadEndElement();
 }
Пример #14
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.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);
        }
Пример #15
0
 public override void WriteXml(XmlWriter writer)
 {
     writer.WriteElementString("Title", Namespace, Title);
     writer.WriteStartElement("OnlineResource", Namespace);
     OnlineResource.WriteXml(writer);
     writer.WriteEndElement();
     writer.WriteStartElement("LogoURL", Namespace);
     LogoURL.WriteXml(writer);
     writer.WriteEndElement();
 }
Пример #16
0
        public AuthorityURL(XElement node, string @namespace)
        {
            var att = node.Attribute("name");
            if (att == null)
                throw WmsParsingException.AttributeNotFound("name");

            Name = att.Value;

            var element = node.Element(XName.Get("OnlineResource", @namespace));
            if (element != null)
                OnlineResource = new OnlineResource(element, @namespace);
        }
Пример #17
0
        public Attribution(XElement node, string @namespace)
            : this()
        {
            var element = node.Element(XName.Get("Title", @namespace));
            if (element != null) Title = element.Value;

            element = node.Element(XName.Get("OnlineResource", @namespace));
            if (element != null) OnlineResource = new OnlineResource(element, @namespace);

            element = node.Element(XName.Get("LogoURL", @namespace));
            if (element != null) LogoURL = new LogoURL(element, @namespace);
        }
Пример #18
0
        public StyleURL(XElement node, string @namespace)
        {
            var element = node.Element(XName.Get("Format", @namespace));

            Format = element == null ? "png" : element.Value;

            element = node.Element(XName.Get("OnlineResource", @namespace));
            if (element != null)
            {
                OnlineResource = new OnlineResource(element, @namespace);
            }
        }
Пример #19
0
        public DataURL(XElement node, string ns)
        {
            var element = node.Element(XName.Get("Format", ns));
            if (element == null)
                throw WmsParsingException.ElementNotFound("Format");
            Format = element.Value;

            element = node.Element(XName.Get("OnlineResource", ns));
            if (element == null)
                throw WmsParsingException.ElementNotFound("OnlineResource");
            OnlineResource = new OnlineResource(element, ns);
        }
Пример #20
0
        public LogoURL(XElement node, string nameSpace)
        {
            var att = node.Attribute(XName.Get("width"));
            Width = int.Parse(att.Value, NumberFormatInfo.InvariantInfo);
            att = node.Attribute(XName.Get("height"));
            Height = int.Parse(att.Value, NumberFormatInfo.InvariantInfo);

            var element = node.Element(XName.Get("Format", nameSpace));
            Format = element == null ? "png" : element.Value;

            element = node.Element(XName.Get("OnlineResource", nameSpace));
            if (element != null)
                OnlineResource = new OnlineResource(element, nameSpace);
        }
Пример #21
0
        public override void WriteXml(XmlWriter writer)
        {
            writer.WriteElementString("Name", Namespace, Name.ToString());
            writer.WriteElementString("Title", Namespace, Title);
            if (!string.IsNullOrEmpty(Abstract))
            {
                writer.WriteElementString("Abstract", Namespace, Abstract);
            }
            if (_keywordListField != null && _keywordListField.Keyword.Count > 0)
            {
                writer.WriteStartElement("KeywordList", Namespace);
                KeywordList.WriteXml(writer);
                writer.WriteEndElement();
            }

            writer.WriteStartElement("OnlineResource", Namespace);
            OnlineResource.WriteXml(writer);
            writer.WriteEndElement();

            if (_contactInformationField != null)
            {
                writer.WriteStartElement("ContactInformation", Namespace);
                _contactInformationField.WriteXml(writer);
                writer.WriteEndElement();
            }

            if (!string.IsNullOrEmpty(Fees))
            {
                writer.WriteElementString("Fees", Namespace, Fees);
            }

            if (!string.IsNullOrEmpty(AccessConstraints))
            {
                writer.WriteElementString("AccessConstraints", Namespace, AccessConstraints);
            }

            if (LayerLimit.HasValue)
            {
                writer.WriteElementString("LayerLimit", Namespace, LayerLimit.Value.ToString());
            }
            if (MaxWidth.HasValue)
            {
                writer.WriteElementString("MaxWidth", Namespace, MaxWidth.Value.ToString());
            }
            if (MaxHeight.HasValue)
            {
                writer.WriteElementString("MaxHeight", Namespace, MaxHeight.Value.ToString());
            }
        }
Пример #22
0
        public MetadataURL(XElement node, string @namespace)
        {
            var att = node.Attribute("type");
            if (att == null)
                throw WmsParsingException.AttributeNotFound("type");

            Type = att.Value;

            var element = node.Element(XName.Get("Format", @namespace));
            Format = element == null ? "png" : element.Value;

            element = node.Element(XName.Get("OnlineResource", @namespace));
            if (element != null)
                OnlineResource = new OnlineResource(element, @namespace);
        }
Пример #23
0
        public override void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();
            var isEmpty = reader.IsEmptyElement;

            reader.ReadStartElement();
            if (!isEmpty)
            {
                reader.ReadStartElement("Title");
                Title = reader.ReadContentAsString();
                reader.ReadEndElement();
                OnlineResource.ReadXml(reader);
                LogoURL.ReadXml(reader);
                reader.ReadEndElement();
            }
        }
Пример #24
0
        public FeatureListURL(XElement node, string ns)
        {
            var element = node.Element(XName.Get("Format", ns));

            if (element == null)
            {
                throw WmsParsingException.ElementNotFound("Format");
            }
            Format = element.Value;

            element = node.Element(XName.Get("OnlineResource", ns));
            if (element == null)
            {
                throw WmsParsingException.ElementNotFound("OnlineResource");
            }
            OnlineResource = new OnlineResource(element, ns);
        }
Пример #25
0
        public AuthorityURL(XElement node, string @namespace)
        {
            var att = node.Attribute("name");

            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("name");
            }

            Name = att.Value;

            var element = node.Element(XName.Get("OnlineResource", @namespace));

            if (element != null)
            {
                OnlineResource = new OnlineResource(element, @namespace);
            }
        }
Пример #26
0
        public LegendURL(XElement node, string nameSpace)
        {
            var att = node.Attribute(XName.Get("width"));

            Width  = int.Parse(att.Value, NumberFormatInfo.InvariantInfo);
            att    = node.Attribute(XName.Get("height"));
            Height = int.Parse(att.Value, NumberFormatInfo.InvariantInfo);

            var element = node.Element(XName.Get("Format", nameSpace));

            Format = element?.Value ?? "png";

            element = node.Element(XName.Get("OnlineResource", nameSpace));
            if (element != null)
            {
                OnlineResource = new OnlineResource(element, nameSpace);
            }
        }
Пример #27
0
        public MetadataURL(XElement node, string @namespace)
        {
            var att = node.Attribute("type");

            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("type");
            }

            Type = att.Value;

            var element = node.Element(XName.Get("Format", @namespace));

            Format = element == null ? "png" : element.Value;

            element = node.Element(XName.Get("OnlineResource", @namespace));
            if (element != null)
            {
                OnlineResource = new OnlineResource(element, @namespace);
            }
        }
Пример #28
0
        public Attribution(XElement node, string @namespace)
            : this()
        {
            var element = node.Element(XName.Get("Title", @namespace));

            if (element != null)
            {
                Title = element.Value;
            }

            element = node.Element(XName.Get("OnlineResource", @namespace));
            if (element != null)
            {
                OnlineResource = new OnlineResource(element, @namespace);
            }

            element = node.Element(XName.Get("LogoURL", @namespace));
            if (element != null)
            {
                LogoURL = new LogoURL(element, @namespace);
            }
        }
Пример #29
0
        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();
                }
            }
        }
Пример #30
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.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);
            }
        }
Пример #31
0
 /// <remarks> WMS-C uses the VendorSpecificCapabilities to specify the tile schema.</remarks>
 private static IEnumerable<ITileSource> ParseVendorSpecificCapabilitiesNode(
     XElement xVendorSpecificCapabilities, OnlineResource onlineResource)
 {
     var xTileSets = xVendorSpecificCapabilities.Elements(XName.Get("TileSet"));
     return xTileSets.Select(tileSet => ParseTileSetNode(tileSet, onlineResource)).ToList();
 }
Пример #32
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();
                }
            }
        }