/// <summary>
        /// Reads an XML Position From An Existing DOM
        /// </summary>
        /// <param name="rootnode">Node Containing the GML Position</param>
        public override void ReadXML(XmlNode rootnode)
        {
            if (rootnode.LocalName == "Polygon")
            {
                GMLLinearRing tempring;
                this.ReadXMLBase(rootnode);
                foreach (XmlNode childnode in rootnode.ChildNodes)
                {
                    if (string.IsNullOrEmpty(childnode.InnerText))
                    {
                        continue;
                    }

                    switch (childnode.LocalName)
                    {
                    case "exterior":
                        if (childnode.ChildNodes.Count != 1)
                        {
                            throw new ArgumentException("Unexpected Number of gml:exterior child nodes in GMLPolygon");
                        }

                        this.exterior.ReadXML(childnode.FirstChild);
                        break;

                    case "interior":
                        if (childnode.ChildNodes.Count != 1)
                        {
                            throw new ArgumentException("Unexpected Number of gml:interior child nodes in GMLPolygon");
                        }

                        tempring = new GMLLinearRing();
                        tempring.ReadXML(childnode.FirstChild);
                        this.interior.Add(tempring);
                        break;

                    case "#comment":
                        break;

                    default:
                        throw new ArgumentException("Unexpected Child Node Name: " + childnode.Name + " in GMLPolygon");
                    }
                }
            }
            else
            {
                throw new ArgumentException("Unexpected Node Name: " + rootnode.Name + " in GMLPolycon");
            }
        }
 /// <summary>
 /// Initializes a new instance of the GMLPolygon class
 /// Default Constructor - Initializes Objects
 /// </summary>
 public GMLPolygon()
 {
     this.exterior = new GMLLinearRing();
     this.interior = new List <GMLLinearRing>();
 }