Пример #1
0
        private GpxCopyright ReadGpxCopyright()
        {
            GpxCopyright copyright = new GpxCopyright();

            string elementName    = reader.Name;
            bool   isEmptyElement = reader.IsEmptyElement;

            while (reader.MoveToNextAttribute())
            {
                switch (reader.Name)
                {
                case "author":
                    copyright.Author = reader.Value;
                    break;
                }
            }

            if (isEmptyElement)
            {
                return(copyright);
            }

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:

                    switch (reader.Name)
                    {
                    case "year":
                        copyright.Year = reader.ReadElementContentAsInt();
                        break;

                    case "license":
                        copyright.Licence = reader.ReadElementContentAsString();
                        break;

                    default:
                        reader.SkipElement();
                        break;
                    }

                    break;

                case XmlNodeType.EndElement:
                    if (reader.Name != elementName)
                    {
                        throw new FormatException(reader.Name);
                    }
                    return(copyright);
                }
            }

            throw new FormatException(elementName);
        }
Пример #2
0
 private void WriteCopyright(string elementName, GpxCopyright copyright)
 {
     Writer_.WriteStartElement(elementName);
     Writer_.WriteAttributeString("author", copyright.Author);
     if (copyright.Year != null)
     {
         Writer_.WriteElementString("year", copyright.Year.Value.ToString());
     }
     if (copyright.Licence != null)
     {
         Writer_.WriteElementString("licence", copyright.Licence.ToString());
     }
     Writer_.WriteEndElement();
 }
Пример #3
0
        private GpxCopyright ReadGpxCopyright(XmlReader reader)
        {
            GpxCopyright copyright = new GpxCopyright();

            string elementName = reader.Name;
            bool isEmptyElement = reader.IsEmptyElement;

            while (reader.MoveToNextAttribute())
            {
                switch (reader.Name)
                {
                    case "author":
                        copyright.Author = reader.Value;
                        break;
                }
            }

            if (isEmptyElement) return copyright;

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                    case XmlNodeType.Element:

                        switch (reader.Name)
                        {
                            case "year":
                                copyright.Year = int.Parse(ReadContentAsString(reader));
                                break;
                            case "license":
                                copyright.Licence = new Uri(ReadContentAsString(reader));
                                break;
                            default:
                                throw new FormatException(reader.Name);
                        }

                        break;

                    case XmlNodeType.EndElement:
                        if (reader.Name != elementName) throw new FormatException(reader.Name);
                        return copyright;
                }
            }

            throw new FormatException(elementName);
        }
Пример #4
0
        private GpxCopyright ReadGpxCopyright()
        {
            GpxCopyright copyright = new GpxCopyright();

            string elementName = Reader_.Name;
            bool isEmptyElement = Reader_.IsEmptyElement;

            while (Reader_.MoveToNextAttribute())
            {
                switch (Reader_.Name)
                {
                    case "author":
                        copyright.Author = Reader_.Value;
                        break;
                }
            }

            if (isEmptyElement) return copyright;

            while (Reader_.Read())
            {
                switch (Reader_.NodeType)
                {
                    case XmlNodeType.Element:

                        switch (Reader_.Name)
                        {
                            case "year":
                                copyright.Year = ReadContentAsInt();
                                break;
                            case "license":
                                copyright.Licence = ReadContentAsString();
                                break;
                            default:
                                SkipElement();
                                break;
                        }

                        break;

                    case XmlNodeType.EndElement:
                        if (Reader_.Name != elementName) throw new FormatException(Reader_.Name);
                        return copyright;
                }
            }

            throw new FormatException(elementName);
        }
Пример #5
0
 private void WriteCopyright(string elementName, GpxCopyright copyright)
 {
     Writer_.WriteStartElement(elementName);
     Writer_.WriteAttributeString("author", copyright.Author);
     if (copyright.Year != default(int)) Writer_.WriteElementString("year", copyright.Year.ToString());
     if (copyright.Licence != null) Writer_.WriteElementString("licence", copyright.Licence.ToString());
     Writer_.WriteEndElement();
 }